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