代码之家  ›  专栏  ›  技术社区  ›  Yuri Gadow

按经纬度查找电话区号

  •  8
  • Yuri Gadow  · 技术社区  · 14 年前

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

    例如,丹佛科罗拉多州的区号为303和720。在39.739-104.985,在1号保姆。所以假设39.739,-104.985,1,我想回去[303720]。

    需要解析为数据库的库、Web服务、数据库或原始数据(例如形状点的网页)都很好,全球覆盖率越高越好,但仅NANP1将是一个很大的帮助。

    请注意,我已经使用了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查询的同一个数据库)。

    此外,我还发现了一些信息,这些信息意味着Teleatlas具有区号边界地图,ESRI包括带有Arcgis副本的区号形状文件。Maponics似乎有可用的数据:在 http://www.usnaviguide.com/areacode.htm .

    2 回复  |  直到 9 年前
        1
  •  5
  •   KeithS    14 年前

    真的。您肯定需要某种预先存在的点数据库。我的第一个想法是 ZIPList5 Geocode . 它包括每个活动的美国邮政编码的lat-long数据,因此您可以将这些数据放入一个db表中,对其进行索引,并根据您可以访问的任何地理信息进行搜索。你可以花40美元买一本,企业级的使用费是100美元。唯一的问题是,这个数据库只有每个邮政编码的“主要”区号,所以有多个邮政编码的地铁区域(达拉斯、芝加哥、纽约)不会显示所有这些区号。

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

    还有一件事要看的是NANPA,它管理开始时的区号分配。我相信他们有一个更全面的可下载数据库,但我能找到的唯一免费的公共访问是这个搜索页面,它将找到任何城市的区号与20万人口。您可以将lat/long数据转换为城市和州,然后点击此搜索页面: NANPA City Query

        2
  •  3
  •   Ervin Ruci    9 年前

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

    <TimeZone>America/Denver</TimeZone>
    <AreaCode>720,303</AreaCode