2

函数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 Mercator (WKID 102113)。

4

1 回答 1

1

看起来它只是在计算两点 (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

于 2015-04-22T18:43:31.207 回答