@arcgis/core -找出两点之间的距离

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

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

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

我想我需要像这个链接。但我不知道如何将其转化为ESM方法。

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

任何帮助都将不胜感激。

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

进口 作为 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
通过 常规赛贡献者
常规赛贡献者

portalItem id是ArcGIS的Portal中的项routeLayer,看起来好像你可以从站点创建它。

//路由至少需要两个站点。const stops = [new Stop({geometry: {latitude: 32.180763, longitude: 34.929558}), new Stop({geometry: {latitude: 31.9339, longitude: 34.8878})];//创建路由层并指定站点。只有解出的路由层才会被渲染。const routeLayer = new routeLayer({停止});
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荣誉