我正在开发一个谷歌地图应用程序。我正在 GMap 上绘制一个多边形并获取它所覆盖的区域。我需要找出覆盖区域内有多少个邮政编码。如何继续使用谷歌地图 API?有什么建议吗?
3 回答
显然为时已晚:) 但会提供一个严肃的答案,当你也有一份日常工作时,这可能需要一些时间。注意:Dr. Molles fusiontable 仅覆盖美国所有邮政编码的 <65% 左右。正如我评论的那样,它非常减少,因此对于为本地分销商查找邮政编码可能不是那么好。
承诺的答案:
请参阅此工作演示,该演示提取美国地图上任何多边形的所有邮政编码-> http://bit.ly/1cW1am6
我发现这个邮政编码数据库 - > http://www.boutell.com/zipcodes/包含所有美国邮政编码沿其居中的纬度 - 前面提到的http://federalgovernmentzipcodes.us/缺少 1000 个邮政编码和很多纬度-信息丢失。
放大,通过单击并点击搜索创建一个多边形:
代码是这样工作的:
- 通过 ajax 将多边形作为 [lat,lng] 对传递给服务器
- 创建一个描述边界的初步正方形
- 搜索广场内的所有邮政编码
- 使用多边形中的点算法来优化搜索
- 将多边形内的邮政编码送回
在谷歌地图下方有一个包含完整演示的 zip 文件的链接,即完整的源代码和数据库转储(以及原始 CSV 文件)。我曾计划详细描述代码,但这个问题已经有了一个可以接受的答案——而且我已经在这个演示上花费了很多时间。注意:该演示最终会在某一天从服务器中删除。
正如 david strachan 所说,您需要每个邮政编码的几何形状,这里有这样一个数据库:https ://www.google.com/fusiontables/DataSource?docid=1AxB511DayCdtmyBuYOIPHIe_WM9iG87Q3jKh6EQ#rows:id=1
使用支持地理空间查询的数据库,并通过使用ST_CONTAINS
和ST_查询数据库INTERSECTS
注意:链接的数据库是一个FusionTable,它会给你几何图形,但是你必须将这些数据存储在另一个数据库中,因为FusionTables不支持Polygons的空间条件
我认为这就是您需要的:美国邮政编码边界 API: https ://www.mashape.com/vanitysoft/boundaries-io
上面的 API 按邮政编码、城市和州显示美国边界(GeoJson)。您应该以编程方式使用 API 来处理大型结果。
例如: