9

寻找一种方法来获取给定纬度和经度的电话区号列表(如果需要,还有给定的国际代码。)注意,我不是在谈论国际拨号前缀,而是其中的区号。

例如,科罗拉多州丹佛市的区号为 303 和 720。它位于 39.739 -104.985 并且位于 NANP 1 中。所以给定 39.739,-104.985,1 我想返回 [303,720]。

库、Web 服务、DB 或需要解析为 DB 的原始数据(例如,形状点的网页)都很好,并且全球覆盖范围越广越好,但只有 NANP 1 会有很大帮助。

请注意,我已经使用 MaxMind 并且可以将 lat-lng 转换为假 IP 并将其用作查找键,但 MaxMind 只声称美国区号(无论它们是真正的意思是美国还是实际上我没有测试过的 NANP)并且似乎只有 1每个位置(例如,丹佛只有 303 个。)所以这是一种可能性,只是不是很好。


更新我找到了一些更相关的信息,但没有明确的解决方案,所以我在这里列出而不是在答案中:

我能够找到两个美国数据库http://www.area-codes.com/area-code-database.asphttp://www.nationalnanpa.com/area_codes/index.html(页面下方 50%, MS Access 文件。)前者包括 lat/lng,价格为 450 美元,后者需要最近邻匹配,正如 KeithS 所说(这可能与他发现的 NANPA City Query 的数据库相同。)

此外,我发现暗示 Teleatlas 具有区域代码边界地图的信息,并且 ESRI 包含带有 ArcGIS 副本的区域代码形状文件。Maponics 似乎有可用的数据:在http://www.usnaviguide.com/areacode.htm上有一个 Maponics 数据的 Google Maps 实现。

4

2 回答 2

6

哇。您肯定需要某种预先存在的积分数据库。我的第一个想法是ZIPList5 Geocode。它包括每个有效的美国邮政编码的经纬度数据,因此您可以将这些数据放入数据库表中,从其中索引地狱,并根据您可以访问的任何地理信息进行搜索。您可以花 40 美元购买一份,企业级使用只需 100 美元。唯一的问题是,这个数据库只有每个邮政编码的“主要”区号,因此有多个邮政编码的都会区(达拉斯、芝加哥、纽约)不会显示所有邮政编码。

您可以使用我找到的一些免费数据尝试双管齐下的方法:对于给定的纬度和经度,对USGS 地理名称信息系统中的数据进行最近邻搜索;它包括关于每个人类居住中心的信息,以及每个命名的地标特征,以及它们中心的纬度/经度坐标。您现在已将纬度/经度点映射到最近的城镇/城市、邮政编码、县和州。现在,您可以将其与此美国区号列表进行比较, 以查找与来自 USGS 的任何或所有识别信息相匹配的区号。这一切都是免费的,最终会为您提供所需的东西,但您可能需要做一些工作才能将两组数据“按摩”成您可以有效交叉引用的东西,和/或您需要实现一个好的“搜索引擎”,它可以准确地找到最近邻的命名点,然后找到与名称匹配的位置的区号。

还有一件事是 NANPA,它首先管理区号分配。我确信他们有一个更全面的可下载数据库,但我能找到的唯一免费公共访问是这个搜索页面,它可以找到任何人口超过 2 万的城市的区号。您可以将您的纬度/经度数据转换为城市和州,然后点击此搜索页面:NANPA City Query

于 2010-10-28T23:08:23.427 回答
2

这是一个选项: http ://geocoder.ca/39.739,-104.985?geoit=xml

<TimeZone>America/Denver</TimeZone>
<AreaCode>720,303</AreaCode
于 2015-11-23T22:12:59.590 回答