ArcGIS Server - 比较路线

发布于 2024-07-11 07:48:59 字数 304 浏览 4 评论 0原文

我有一个点列表,以及外部提供商通过这些点生成的路线。

我想使用这些相同的点和我自己的道路网络生成一条路线。

然后我希望能够检测两条路线之间是否存在显着差异。

一个建议是,对于这2条路线,我们找出它们经过哪些路段,并比较路段列表?

这是一个有效的方法吗? 我们如何获取给定路线的路段列表?

我使用的是带有 Java 5 和 Oracle 10g 的 ArcGis 服务器 9.3。 我通过 java api 使用 ST 函数和 NetworkAnalyst。

谢谢。

I've got a list of points, and a route that an external provider has generated through those points.

I would like to generate a route using those same point with my own road network.

Then I want to be able to detect if there is any significant difference between the two routes.

One suggestion is that for the 2 routes, we find out what road segments they travel across, and compare the list of road segments?

Is this a valid approach?
How do we go about getting the list of road segments given a route?

I am using ArcGis server 9.3 with Java 5 and Oracle 10g. I am using the ST functions and NetworkAnalyst via the java api.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱要勇敢去追 2024-07-18 07:49:03

使用您的点和道路网络计算路线。 然后将生成的路线缓冲到多边形中(缓冲半径应该是您的“公差”)。 然后使用多边形剪辑外部路线。 如果生成的折线非空,则偏差超出了您的容差范围。

此方法不考虑任何“重大”偏差,例如回溯、掉头或走附近的平行道路。

或者,您可以比较生成的“方向”并检查其中的偏差 - 特别是使用街道名称。 这使您无需检查每个路段。 如果道路名称有任何偏差,请检查每个部分的各个路段。

Calculate the route using your points and road network. Then buffer the resulting route into a polygon (the buffer radius should be your "tolerance"). Then clip the external route using your polygon. If the resulting polyline is non-empty, then there is a deviation outside of your tolerance.

This method does not acount for any "significant" deviations such as backtracking, U-Turns, or taking a nearby parallel road.

Alternatively, you can compare the resulting "directions" and check for deviations there--particuarly using street names. This saves you from checking every road segment. If you have any deviations in road names, then check the individual road segments of each section.

最好是你 2024-07-18 07:49:03

我刚刚在我的应用程序中实现了类似的东西。 我有一个来自 GPS 设备的纬度/经度坐标列表,需要根据该数据创建一条路线。

我首先将每个 GPS 位置与街道网络中的一个节点进行匹配。 然后,我删除了“连续重复”的节点,以过滤掉同一节点上的那些连续位置。 然后,我开始从第一个节点开始“行走”我的街道网络。 我检查了第一个节点和第二个节点,并检查了公共街道段。 如果我找到了,那就太好了。 如果没有,我会在两个节点之间创建一条最短路径并使用这些道路。 我继续这样做,直到检查完所有节点。 在此过程结束时,我得到了车辆行驶的路段列表以及行驶顺序。

不幸的是,我使用的是不同的地图、不同的编程语言和不同的数据库。 因此,共享代码对您根本没有帮助。 希望我上面描述的过程足以帮助您完成任务。

I've just implemented something similar in my application. I have a list of lat/long coordinates from a GPS device and needed to create a route based on this data.

I started by matching each GPS position with a node in my street network. I then removed 'consecutively duplicate' nodes to filter out those consecutive positions that are at the same node. Then, I started 'walking' through my street network, starting at the first node. I checked the first node and second node and checked for a common street segment. If I found one, great. If not, I create a shortest path between the 2 nodes and use those roads instead. I continue doing this until I've examined all the nodes. At the end of this process, I have a list of road segments that the vehicle traveled and the order in which they were traveled, too.

Unfortunately, I'm using a different map, different programming language, and different database. As such, sharing the code won't be helpful to you at all. Hopefully the process I described above will be enough help for you to accomplish your task.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文