2

一位当地的房地产经纪人想要将 Google 地图添加到他的网站以显示他的列表。然而,他希望网站访问者能够在地图上绘制任意多边形,单击一个按钮,然后在这些范围内显示他的所有房屋,而不是仅仅为他的所有属性显示地图标记。

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

4

2 回答 2

4

我认为没有必要迁移到 PostGIS。

  • 第一个机会是您的客户通过地址(123 fooview street)通过 MLS 数据库获取列表。将该列表更新为 kml 文件
  • 使用谷歌地图教程此地图工具绘制多边形
  • 使用这个网站(地图内提供的js)你可以做多边形中的点(如果你的任何地址在多边形边界内,则匹配)。我认为他们在不止一个应用程序中这样做。

编辑

在谷歌地图中做多边形点的另一种方法

于 2010-07-21T12:41:47.320 回答
1

我认为这不会像您想象的那样需要 GIS 巫术。我将分三个步骤来解决这个问题:

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

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

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

如果您的区域太大而无法将所有列表与任意区域进行比较,请根据州/县/市/您可用的任何数据进行一些预过滤。

希望这会有所帮助,-Chase

于 2010-07-21T03:01:16.877 回答