@arcgis/core -计算两点之间的距离

161
5
12-04-2022 05:48 am
MosheLevi
通过
新的因素

嗨,我在Angular框架中使用@arcgis/core包。

我想用这个包计算每个点的lat和lng 2点之间的距离。

我想我需要的是这个链接.但我不知道如何将其转换为ESM方法。

我猜我需要像下面这样导入包,但我不知道如何从那里继续。

任何帮助都将不胜感激。

注意,我不需要绘制Map。我只需要计算一下。

进口 作为 GeometryService “@arcgis /核心/几何”
进口 “@arcgis /核心/几何点”
进口 地图 “@arcgis /核心/地图”
进口 SpatialReference “@arcgis /核心/几何/ SpatialReference”
进口 DistanceParameters “@arcgis /核心/ rest /支持/ DistanceParameters”
0荣誉
5回复
ReneRubalcava
通过
经常贡献者II
0荣誉
MosheLevi
通过
新的因素

首先非常感谢您的回复!


实际上,我需要计算一个驾车或步行(路由)的距离。
据我所知,这个距离函数计算平面距离。

很抱歉我没有提前解释清楚

0荣誉
MosheLevi
通过
新的因素

经过更多的搜索,我发现了这个页面女巫似乎正合我意。

我只是不明白这是什么

portalItem: {id“69569 b47b1e445b8a42ec12feab41ce9”

我尝试将此替换为停止列表(这是我实际需要的),如下所示:

常量 停止 = (
停止 ({ 几何 纬度 32.180763 经度 34.929558 }}),
停止 ({ 几何 纬度 31.9339 经度 34.8878 }})
];
常量 routeLayer RouteLayer ({
停止
// portalItem: {
// id: "69569b47b1e445b8a42ec12feab41ce9"
/ /}
});
然后,' routeLayer routeInfo'为空。
我错过了什么?
0荣誉
BlakeTerhune
通过 常规赛MVP
常规赛MVP

portalItem id是Portal for ArcGIS中的项目routeLayer,看起来好像你可以从停止创建它。

//路由最少需要两站。const stops = [new Stop({geometry: {latitude: 32.180763,经度:34.929558}}),new Stop({geometry: {latitude: 31.9339,经度:34.8878}})];//创建路由层并分配站点只有解决的路由层才会被渲染。const routeLayer = new routeLayer ({stops});
0荣誉
ReneRubalcava
通过
经常贡献者II

一旦你创建了路由层,你需要调用solve方法来获取你的路由和特征

https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-RouteLayer.html#solve

然后你可以得到routeInfo,它会有一个你可以使用的totalDistance值

https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-RouteInfo.html总…

0荣誉