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

Database 如何建立世界地理位置及其相对地理层次的列表?,database,geospatial,Database,Geospatial,我想建立一个地理位置数据库,并希望能够识别属于其他位置的位置。例如,帝国大厦将有一个地理坐标,但我的数据库可以告诉我它位于曼哈顿,曼哈顿位于纽约市,纽约州等等 我一直在寻找一个似乎有相当不错的数据库,但据我所知,我需要创建一组表示每个区域的多边形结构,然后检测坐标是否落在给定区域的多边形内。是否有更好的方法来实现这一点,或者是否有一个已经计算了所有这些的数据源?我很确定google maps API将区域定义为多边形。说到地区,我指的是州、市、邮政编码,或者任何可以定义为“地区”的东西 您必须点

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

我一直在寻找一个似乎有相当不错的数据库,但据我所知,我需要创建一组表示每个区域的多边形结构,然后检测坐标是否落在给定区域的多边形内。是否有更好的方法来实现这一点,或者是否有一个已经计算了所有这些的数据源?

我很确定google maps API将区域定义为多边形。说到地区,我指的是州、市、邮政编码,或者任何可以定义为“地区”的东西

您必须点击test(谷歌地图可能已经有了这个功能)一个点来查看它是否在多边形内


您还可以使用“按地理位置查找地址”功能查找点所在的区域,然后直接使用它。

试试Yahoo!地球行星数据

它已经组织成一个等级结构、国家、行政部门和地方


您还可以使用YQL API的“Geo”方法扩展数据,网址为

,您也可以查看数据库。虽然没有使用分层方法对其进行分类,但您可能会从中获得信息

如果你真的想深入构建一个地理数据库,在那里你可以分析数据,看看如何将你的数据加载到免费/开源的堆栈中。这样,您就可以编写SQL来回答诸如“显示所有点[在城市/县/州边界内]”或“[在距离Y位置X的距离内]”之类的问题


了解PostGIS更多信息的好地方是网站、页面,当然还有手册,但谁还会阅读这些内容呢?

如果有这样一个数据库,它将因其复杂性而被紧紧保存,或者会很昂贵。如果你不根据多边形来做,你还指望它怎么做呢?我不是这方面的专家,我不认为我什么都想到了,所以问题就来了!你要么使用自己的多边形层次结构,要么使用现有的反向地理编码解决方案(反正在内部使用多边形)。有趣的是,我的查询量将远远超过它们的速率限制。我需要一个自制的解决方案。内森-你知道你可以下载数据离线使用,对吗?阅读@Chaoley回复中的第一个链接。你也可以参考这个问题来获取想法:谢谢链接-不过我的查询会很快达到他们的费率限制。我想需要自己托管和处理数据。你多久会得到一次新地址?一个地点所在的城市不会经常改变。随着时间的推移分散加载查询,最终只需偶尔点击即可。这是假设您将结果存储在您的端。我不一定要查找地址。我有大量关于任意事物的主题,每个主题都有一个地理坐标。它可能位于曼哈顿中部,也可能位于亚马孙丛林中。此外,我不能分散查询,因为有太多的查询要做。是为了我的业务,它为客户提供了一吨预先分析的数据。@Nathan,我的意思是,你多久会查询一次以前没有查询过的位置(地址或不地址)?如果不经常,为什么不将结果缓存在您自己的数据库中呢?可能非常普遍。每天有成千上万的查询。啊,链接到Geonames DB和GIS.StackExchange的链接很棒,谢谢。另外,我可能会使用MongoDB,它也有地理功能