寻找一种方法来获取给定纬度和经度的电话区号代码列表(如果需要,还有给定的国际代码。)注意,我不是在谈论国际拨号前缀,而是在其中的区号。
例如,丹佛科罗拉多州的区号为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文件。)前者包括450美元的lat / lng,后者需要最近邻居与KeithS谈论的匹配(它可能与他找到的NANPA City Query相同的数据库。)
此外,我发现信息暗示Teleatlas具有区号边界地图,并且ESRI包含带有ArcGIS副本的区号代码形状文件。 Maponics似乎有数据可用:在http://www.usnaviguide.com/areacode.htm有一个Google Maps实现的Maponics数据。
答案 0 :(得分:5)
哇。你肯定需要某种预先存在的积分数据库。我的第一个想法是ZIPList5 Geocode。它包括每个活动的美国邮政编码的纬度数据,因此您可以将这些数据投放到数据库表中,将其编入索引,并搜索您可以访问的任何地理信息。您可以花40美元购买一份,企业级使用价格为100美元。唯一的问题是这个数据库只有每个邮政编码的“主要”区号,所以有多个(达拉斯,芝加哥,纽约)的都市区域不会显示所有这些。
您可以尝试使用我发现的一些免费数据进行双管齐下的方法:对于给定的纬度和经度,在USGS Geographic Names Information System中对数据进行最近邻搜索;它包括每个人类居住中心的信息,以及每个命名的地标特征,其中心的纬度/经度坐标。您现在将纬度/经度点映射到最近的城镇/城市,邮政编码,县和州。现在,您可以将其与此U.S. Area Codes列表进行比较,以查找与USGS中的任何或所有识别信息匹配的区号。这一切都是免费的,最终会得到你所需要的,但是你可能需要做一些工作来“按摩”这两组数据,你可以有效地交叉引用,和/或你需要实现一个良好的“搜索引擎”,准确找到最近邻点命名点,然后找到与名称匹配的位置的区号。
另外还有一件事是NANPA,它负责管理区域代码分配。我确信他们有一个更全面的可下载数据库,但我能找到的唯一免费公共访问是这个搜索页面,它可以找到任何城市的区域代码,其中有> 20k人。您可以将您的纬度/经度数据转换为城市和州,然后点击此搜索页面:NANPA City Query