当地房地产经纪人想要将谷歌地图添加到他的网站上,以显示他的列表。但是,他希望网站访问者能够在地图上绘制任意多边形,单击按钮,然后在这些边界内显示他所有的房屋,而不是仅仅向他的所有属性显示地图标记。
我的理解是这将采取一些GIS伏都教。但在我开始研究PostGIS的复杂性之前,我想知道是否有更好的方法来做到这一点?该网站运行在一个标准的LAMP堆栈上,但我希望说服他转移到Python / Nginx / PostgreSQL。
答案 0 :(得分:4)
我认为没有必要转移到PostGIS。
修改强>
在Google地图中执行point-in-polygon的另一种方法
答案 1 :(得分:1)
我认为这不会像你想象的那样需要那么多的GIS伏都教。我会分三步来处理这个问题:
为每个商家信息生成纬度和经度坐标。您可能已在数据库中拥有此信息。如果不这样做,可以使用几种免费工具。我们已经在工作中编写了一个Google地图应用程序,它直接链接到我们的SQL后端基础架构,如果需要,我可以帮助您在应用程序中进行设置。
使用GLatLng返回受访者感兴趣的任意点的坐标:http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng
使用一些数学来创建点的区域(如果您只允许4个点用于任意形状,则会更容易),然后使用for循环将每个列表的纬度/长度对与区域进行比较。 / p>
如果您的区域太大而无法将所有列表与任意区域进行比较,请根据州/县/城市/您可用的任何数据进行一些预过滤。
希望这有帮助, -Chase