如何构建世界地理位置列表及其相对地理层次?

时间:2011-07-25 18:10:00

标签: database geospatial

我想建立一个地理位置数据库,并希望能够识别位于其他位置的位置。例如,帝国大厦将有一个地理坐标,但我的数据库可以告诉我它落在曼哈顿,它位于纽约州的纽约市内等等。

我一直在看OpenStreetMap这似乎有一个相当不错的数据库但是我可以说,我需要创建一组代表每个区域的多边形结构,然后检测一个坐标是否在内部给定区域的多边形。有更好的方法可以做到这一点,还是有数据源已经计算了所有这些?

3 个答案:

答案 0 :(得分:3)

试试Yahoo! http://developer.yahoo.com/geo/geoplanet/data/

的GeoPlanet数据

它已经组织成一个层次结构,国家,管理部门和地方。

您还可以使用http://developer.yahoo.com/yql/console/上的YQL API的“地理”方法扩展数据

答案 1 :(得分:1)

您也可以查看Geonames数据库。虽然它没有使用分层方法进行分类,但您可以从中获取信息。

如果您真的想深入构建可以分析数据的地理数据库,请查看将数据加载到免费/开源PostgreSQL/PostGIS堆栈中。有了它,您实际上可以编写回答问题的SQL,例如"向我显示所有点[在一个城市/县/州边界]"或" [距Y位置X距离]"。

了解有关PostGIS的更多信息的好地方是BostonGIS网站,GIS.StackExchange页面,当然还有手册,但是他们已经阅读了这些内容......

答案 2 :(得分:0)

我非常确定 Google地图API的区域定义为多边形。我指的是地区,州,城市,邮政编码,或任何可以定义为“地区”的东西

你必须进行点击测试(谷歌地图可能已经有了这个功能)一个点,看它是否在多边形内。

你也可以使用GeoLocation函数的查找地址来查找一个点所在的区域,然后使用它。