Nic*_*ckH 17 gis algorithm google-maps geocoding google-maps-api-3
我有一个看似棘手的挑战,试图通过海路从一个海港到另一个海港.最终的目标是将其作为折线在Google(或Bing)地图上绘制.
路径需要:
所以,我的第一个想法是获取世界各地海岸线的数据.这样的东西可以在这里找到.不幸的是,它不完整.OpenStreetMap显示了这些数据,并且缺少加勒比海岛屿等海岸线.
我还考虑过地理编码(不够可靠,加上我会烧掉数千个试图绘制路线的请求)
我的下一个想法是以某种方式使用谷歌地图并测试一个点是否为蓝色.GMaps.NET是一个出色的.NET Mapping组件,它允许我通过创建它渲染的位图并测试像素的颜色来实现这一点.
第一个问题是该命中测试的准确性仅与我测试的图像的分辨率图像一样好.对于彼此靠近的端口,这对于更远的端口来说是好的,精度会受到影响.
第二个问题,假设我使用某种"蓝色像素测试"方法,是什么算法适合寻找路线.在A*算法看起来很有希望,但我不知道如何从正在路径"出"推到靠近海岸.也不是如何降低折线的复杂性.
所以... 任何输入:想法,想法,链接,示例代码等都是受欢迎的.谢谢.
(我应该补充一点,这是一个旅游网站.准确性不是太重要,我不是指导运输或任何东西)
第二个问题,假设我使用某种“蓝色像素测试”方法,什么算法适合寻找路线。A* 算法看起来很有希望,但我不确定如何将路径从实体“推出”到海岸附近。也不知道如何降低折线的复杂性。
首先创建世界的二值海洋图像(白色:是海,黑色:不是海),然后腐蚀该图像。侵蚀后的所有白点均可通航。当然,忽略一两个奇怪的沙洲。
正如您可能猜到的那样,这种方法揭示了寻路中的一个核心问题:大多数船只必须非常靠近陆地才能到达港口,这违反了导航规则。然而,这可以通过在与给定港口相邻的最近的可航行海点开始导航来解决。
| 归档时间: |
|
| 查看次数: |
3996 次 |
| 最近记录: |