【问题标题】:Map Boundary Service Area System地图边界服务区系统
【发布时间】:2014-02-03 10:14:31
【问题描述】:

我目前有一个基于邮政编码的服务区系统,客户输入一个地址(邮政编码),它会返回他们服务区的可用服务时间(一个服务区可以有多个邮政编码),我现在需要做什么不是使用邮政编码来创建服务区我需要使用边界系统,我可以在地图上绘制多边形,当客户输入地址时,我们对其进行地理编码并与服务区进行比较并返回适当的服务时间,这样的系统会更准确,因为我现在遇到的问题是邮政编码边界的形状非常不同,并且不可能制作准确的服务时间图。我在想一个简单的方法来实现这一点时遇到了问题。

【问题讨论】:

  • See 使用php服务器端定位多边形中的点。也可以用javascript实现

标签: javascript google-maps google-maps-api-3 geolocation graph-algorithm


【解决方案1】:

让您开始: Google Maps tutorial

【讨论】:

  • 技术不是问题,我需要的是概念......我可以使用谷歌地图或mapquest或bing地图,我需要知道是否需要对服务区的地理位置等进行分组...
  • 我确信您可以在 Google 或 Bing 地图上绘制可点击的多边形。您只需要知道创建多边形的坐标列表。我曾经制作了一个 Windows 窗体应用程序,您可以在其中加载地图并单击不同的点以创建多边形,然后它将单击的坐标保存到数据库中。
  • 对于谷歌地图,您可以使用地图的“点击”事件来捕捉地图上的点击位置。 Google 有一个教程(滚动到访问 UI 事件中的参数):developers.google.com/maps/documentation/javascript/events
【解决方案2】:

在对该主题进行深入研究后,我找到了我想要的东西!,我可以使用光线投射算法在多边形内发现一个点(坐标),我可以从谷歌地图中轻松获得多边形的坐标,在本质上我要做的是:

  1. 制作一个 Google 地图区域选择器来构建多边形。
  2. 将多边形点坐标数组保存到数据库。(作为服务区域/区域)
  3. 地理代码客户地址并保存到数据库(第一次将从谷歌地图中提取并保存在数据库中以备将来使用)。 4.使用Ray-Casting算法循环遍历所有“多边形”,直到它返回true,我们就会知道地址属于哪个多边形,如果它返回false,那么我们知道我们不为那个区域提供服务。

参考资料:

Raycasting algorithm with GPS coordinates

http://rosettacode.org/wiki/Ray-casting_algorithm

【讨论】:

    猜你喜欢
    • 2011-04-28
    • 2011-03-19
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多