2010-07-21 116 views
2

当地房地产经纪人想要将Google地图添加到他的网站上来显示他的房源。然而,他并不是只将地图标记显示给他的所有属性,而是希望网站访问者能够在地图上绘制任意多边形,单击一个按钮,然后在这些边界内显示他的所有房屋。谷歌地图:获取包含在用户绘制的多边形内的点?

我的理解是,这将采取一些GIS巫术。但在我开始研究PostGIS的复杂性之前,我想知道是否有更好的方法来做到这一点?该网站运行在一个标准的LAMP栈上,但我希望说服他转到Python/Nginx/PostgreSQL。

回答

4

我不认为有必要转移到PostGIS的。

  • 第一次机会是,您的客户通过MLS数据库通过地址(123 fooview street)获取列表。更新列表到KML文件
  • 使用Google maps tutorialthis map tool绘制使用this website(地图内提供JS)多边形
  • 你可以在多边形的点(匹配,如果任何一个地址是多边形范围内)。我认为他们在多个应用程序中执行此操作。

编辑

在谷歌做point-in-polygon的另一种方式映射

+0

谢谢。术语“指向多边形”是我需要研究来完成的。 – jamieb 2010-07-21 16:51:20

1

我认为这不会像你想象的那样需要尽可能多的GIS巫术。我会通过三个步骤来解决这个问题:

  1. 为每个列表生成一个纬度和经度坐标。您的数据库中可能已经有这些信息。如果你不这样做,有几个免费的工具可以做到这一点。我们在工作中编制了Google地图应用程序,该应用程序直接链接到我们的SQL后端基础架构,如果需要,我可以帮助您在应用程序中进行设置。

  2. 使用的GLatLng返回的任意点的坐标答辩感兴趣:http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng

  3. 使用一些数学创建点的区域(会更容易,如果你只让4分的任意形状),然后使用for循环将每个列表的纬度/长度对与该区域进行比较。

如果面积过大基于状态/县/市的所有目录来比较任意区域,做一些预过滤/任何数据您有可用。

希望这有助于 -Chase