【问题标题】:Why does esri.geometry.getLength work wrong?为什么 esri.geometry.getLength 工作错误?
【发布时间】:2013-01-31 12:16:28
【问题描述】:

函数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)。

【问题讨论】:

  • 如果是使用底图,先添加,可以试试wkid 102100吗?

标签: javascript geometry gis arcgis


【解决方案1】:

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

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

所以 176 是 map 距离,你想要的是真实世界的 ground 距离。您可能必须使用 GeometryService 来完成此操作,我认为 Javascript 无法自行完成。这是 ESRI 的示例:https://developers.arcgis.com/javascript/jssamples/util_distance.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 2020-11-04
    • 1970-01-01
    • 2020-11-25
    • 2014-09-15
    • 2021-03-19
    • 2011-04-09
    相关资源
    最近更新 更多