函数http://help.arcgis.com/en/webapi/javascript/arcgis/jsapi/#namespace_geometry/esri.geometry.getLength应该计算点之间的距离。

当我试图计算点与点之间的距离为100米时

p1=new esri.geometry.Point(3997030.6690969253, 7444299.320646087, new esri.SpatialReference({ wkid: 102113 }));
Object
p2=new esri.geometry.Point(3996951.455397143, 7444142.154020177, new esri.SpatialReference({ wkid: 102113 }));
Object
esri.geometry.getLength(p1, p2)
176.00045037719127


我得到176,这是错误的。投影是Web墨卡托(WKID 102113)。

最佳答案

看起来它只是在计算两个点(3997030,7444299)和(3996951,7444142)之间的简单欧氏图距离。

a^2 + b^2 = c^2
where a = (3997031 - 3996951) and b = (7444299 - 7444142)
c = 176


所以176是地图距离,您想要的是真实世界的地面距离。您可能必须使用GeometryService来完成此操作,我认为JavaScript不能自己完成。这是ESRI的示例:https://developers.arcgis.com/javascript/jssamples/util_distance.html

关于javascript - esri.geometry.getLength为什么工作不正确?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14625600/

10-10 14:06