88bifa必发娱乐(107)WebGIS中距离及面积度量的规律和实现以及坐标转换的粗略介绍

小说版权由小编李晓晖和网易共有,若转载请于显著处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

在这一章里大家将斟酌基础工具栏中其余三个常用工具:距离衡量工具盒面积度量工具。

距离度量工具需要贯彻如下效果:

a.通过鼠标点击,在地形图上校每种点击点连成线段进展表示

b.每一个线段处表示出此线段代表的骨子里距离

c.双击鼠标,甘休此轮度量,表示出装有线段总司长度

d.允许鼠标拖动地图

面积度量工具的急需与度量工具的要求大约相同,描述为下:

a.通过鼠标点击,在地图准将点击点连成面

b.双击鼠标,甘休此轮度量,表示出面包车型客车总面积

c.允许鼠标拖动地图

贰.从规律聊到

在实现上述要求时,大家第三得询问此成效涉及到的焦点原理,其实便是大家在初等几何中学过的相距公式和面积公式。

那边自身先交给一个模型示意图:

  88bifa必发娱乐 1                     

二.一相差换算公式

L(AB)= Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

二.二多边形面积换算公式

第二本身直接付出公式:

S(total)=Math.abs(0.5*(x1*y2-y1*x2+x2*y3-y2*x3+….+xn*y1-yn*x1)));

其一公式到底是怎么推导出来的吧?作者那里跟大家大约说下。

2.2.壹 用坐标点表示三角形面积

 88bifa必发娱乐 2

咱俩都通晓三角形中最通用的面积公式:S=一半*a*h。

在自作者前面包车型大巴小说(存款和储蓄进程判断两线重合点)里还波及过其余2个公式,Hellen公式:

S=Math.sqt((p*(p-a)*(p-b)*(p-c))),其中p=1/2*(a+b+c)。

那边我们一而再演绎Hellen公式,大家早已知道A(x一,y1),B(x二,y二),C(x三,y3)。则:

a=Math.sqt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)),b和c同理。

将用坐标点表示的a,b,c,p代入Hellen公式,大家能够得出面积在坐标系下的别的一个等同公式:

S= Math.abs(0.5*(x1*y2-y1*x2+x2*y3-y2*x3+x3*y1-y3*x1));

2.二.2 由三角形面积推导出多边形面积

如模型中,大家在多边形内部设定二个P(x0,y0)点,通过P点连接多边形中各端点,便可将大举形分割成(n-二)个三角形。

则多边形的面积变成了:

S(total)=S(PAB)+S(PBC)+S(PCD)+…+S(PNA);

将三角形的面积坐标公式代入,最后可以算出三个平衡掉了P点坐标的通用公式:

S(total)=Math.abs(0.5*(x1*y2-y1*x2+x2*y3-y2*x3+….+xn*y1-yn*x1)));

2.2.3注意

透过推导公式,大家得以看到,该公式对环状多边形的面积不算。

三.落实进程

3.1 具体步骤

相差量测和面积量测的落实情势上大约是相同的。

a.开头化三个参数,isDone为true,flag为false,isClick为false。

b.鼠标mouseDown时,首先判断done是不是为true,假诺是,则清掉地图阳节某个绘制。记录此时的startPoint,并且给定两个参数,isDone为false,flag为true,isClick为true。

c.鼠标mouseMove时,判断此时flag是不是为true。若是是true,则触发平移功效。如果是false,首先判断isDone是或不是为true,即使是,先对前边全部的点进展清空重绘,再判断isClick是不是为true,假诺是,则趁机鼠标移动实时绘制线段。

d.鼠标mouseUp时,记录此时的endpoint,能够由此startpoint和endpoint算出此时的线条长度。将flag变为false,即甘休活动作用。

e.鼠标doubleClick时,将isDone参数改为true,flag改为false,isClick改为false。算出全数进度中的总距离可能总面积。

三.二 注意难点

 因为此功效添参加了地图平移功用,所以在实时绘制时,尽管不理会很不难出现绘制点偏移难点。

 关于该偏移的诱惑,小编在前头两章做了相比较详细的表明,也提供了缓解方法,我们如若不是很精通,能够回头看看。

 在具体步骤中,小编提到mouseMove事件中有个清空重绘进程,正是为着幸免地图移动所照成的熏陶。同时,在每三个点的绘图时,一定要减去总偏移量。

叁.3功效呈现

此地分别交由距离量测和面积量测的七个职能图:

88bifa必发娱乐 3

  88bifa必发娱乐 4

4.越发钻探

如上,大家付出的公式,均是指向平面坐标的,即做过投影转换的坐标。要是,大家赢得的坐标是经纬度坐标,此公式还是能用么?

答案是不可能。所以大家得和谐做投影转换,将经纬度坐标转成平面坐标。那类转换公式,涉及的规律相比较复杂,代码的落成也相对困难。

现阶段,笔者接触过的变换有WGS84的,BeJing54的,XiAn80的以及一些地方和谐的地理坐标系,这当中还提到到4参数和7参数方法。具体的进度,在那一个系列的事后章节笔者再跟大家详细钻探。

而是,在精度须要不高的情形里,大家得以统1用Mecator(UTM)投影进行转换,并且选用四参数方法,将肆参数稳定即可。

5.总结

那1章里,我们留了贰个壮烈的标题,即坐标转换难点。该难题是3个相当的大的知识,可是大家能够壹般性精通并且接纳那上头的算法即可。在下1个章节里,小编将跟我们1起商讨基本成效中剩下的另外多少个效率,清空效用和地图定位成效。在下下章,大家将联合署名斟酌基本功用中所涉及到的可比难的二个作用,I查询作用,该意义的合理性达成和合理性展现均是急需细致研讨的。欢迎大家频频关切。

 

                                                             
 —–欢迎转发,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                          
假如您觉得本文确实帮忙了你,能够微信扫一扫,进行小额的打赏和鞭策,谢谢^_^

                                      88bifa必发娱乐 5

相关文章