gpt4 book ai didi

sql-server - 使用sql server跨陆地两点之间的距离

转载 作者:行者123 更新时间:2023-12-03 00:52:49 24 4
gpt4 key购买 nike

我希望计算 SQL Server 2008 内两点之间的最短距离,仅考虑陆地面积。

我使用地理数据类型和 STDistance() 来计算点 x 到点 y 的直线距离,但是有时会跨越大海,这是我试图避免的。

我还在我感兴趣的陆地边界周围创建了一个多边形。

我相信我需要结合这两种方法来确保 STDistance 始终保持在多边形内 - 除非有更简单的解决方案。

感谢您的建议

最佳答案

使用 STIntersects - http://msdn.microsoft.com/en-us/library/bb933899%28v=SQL.105%29.aspx找出线路的哪一部分在陆地上。

阅读您的评论后,您的要求是有道理的。不过我很确定 SQL Server 中没有内置的技术可以做到这一点。我假设你忽略了道路,只在陆地上采取像乌鸦飞一样的方法。

我认为做到这一点的唯一方法是将您的区域转换为栅格(网格单元)并执行成本路径分析。您可以将海域面积设置为非常高的成本,以便算法将绕着海域进行路由。有关技术的描述,请参阅此链接:

http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=cost_path

否则尝试实现下面的算法!

http://bit.ly/ckvciz

可能还有其他库可以执行此操作。或者,如何在两个城市之间使用新的 Google Directions API?然后您将获得实际的道路距离。

http://code.google.com/apis/maps/documentation/directions/

关于sql-server - 使用sql server跨陆地两点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2958386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com