寻找一种方法来获取给定纬度和经度的电话区号列表(如有必要,还提供给定的国际码。)注意,我不是在谈论国际拨号前缀,而是在其中的区号。
例如,丹佛科罗拉多州被区号303和720覆盖。它位于39.739 -104.985且位于NANP 1中。因此给定39.739,-104.985,1我想找回[303,720]。
图书馆,Web服务,数据库或需要解析为数据库的原始数据(例如形状点的网页)都很好,覆盖范围越广越好,但仅NANP 1会提供很大帮助。
请注意,我已经使用了MaxMind,并且可以将lat-lng转换为假IP并将其用作查找关键字,但是MaxMind仅声明美国区号(无论它们是真正的美国还是我未测试过的NANP),似乎只有1个。每个位置(例如,丹佛只有303个位置)。因此这是一种可能性,但不是一个很好的选择。
更新:我发现了一些更相关的信息,但没有确定的解决方案,因此我将其列出在这里,而不是在一个答案中:
我能够找到两个美国数据库http://www.area-codes.com/area-code-database.asp和http://www.nationalnanpa.com/area_codes/index.html(页面下方50%,MS Access文件。)前者包括lat/lng,价格为450美元,而后者则需要与KeithS谈论的最近邻匹配(可能是同一数据库他发现的NANPA城市查询的基础。)
此外,我发现了一些信息,这些信息暗示Teleatlas具有区域代码边界图,并且ESRI包括具有ArcGIS副本的区域代码形状文件。 Maponics似乎有可用数据:http://www.usnaviguide.com/areacode.htm上有Maponics数据的Google Maps实现。
最佳答案
哇。您肯定需要某种预先存在的点数据库。我的第一个念头是ZIPList5 Geocode。它包含每个事件的美国邮政编码的经纬度数据,因此您可以将此数据扔到数据库表中,对其进行索引,然后根据您有权访问的任何地理信息进行搜索。您可以以40美元的价格购买一份副本,以100美元的价格购买企业级版本。唯一的问题是,该数据库的每个邮政编码都只有“主要”区号,因此拥有多个区(达拉斯,芝加哥,纽约市)的都会区不会全部显示。
您可以尝试对我发现的一些免费数据采用两管齐下的方法:对于给定的经度和纬度,对USGS Geographic Names Information System中的数据进行最近邻搜索;它包含有关每个人类居住中心和每个命名地标特征的信息,并带有其中心的经/纬度坐标。现在,您已将纬度/经度点映射到最近的城镇/城市,邮政编码,县和州。现在,您可以将其与U.S. Area Codes列表进行比较,以查找与来自USGS的任何或所有标识信息匹配的区号。这一切都是免费的,最终将为您提供所需的东西,但是您可能需要做一些工作才能将这两组数据“按摩”为可以有效地交叉引用的内容,并且/或者您需要实现一个良好的“搜索引擎”,该引擎将准确地找到最近的命名点,然后找到与名称匹配的位置的区号。
还有另一件事要看的是NANPA,它首先管理区号分配。我确信他们有一个更全面的可下载数据库,但是我能找到的唯一免费公共(public)访问是该搜索页面,它将为任何人口超过2万的城市找到区号。您可以将经/纬度数据转换为城市和州,然后点击此搜索页面:NANPA City Query