2

如何使用 PHP 的 API 或 Web 服务从世界各地的邮政编码中查找城市和州?我已经尝试过 Google Maps Ge coder API,它适用于美国和加拿大,但不适用于所有国家的英国和墨西哥。我也为此使用了 Yahoo API,它比 Google 工作得更好,但针对一些邮政编码和邮政编码,它返回来自不同国家的结果。

如果我必须针对美国、英国、加拿大和墨西哥的邮政编码获取城市和州/省,有人知道我可以使用哪个 API 或数据库吗?

4

3 回答 3

4

好吧,不完全确定这是您要寻找的东西,但我正在做类似的事情。我一直在使用以下免费网络服务。用户输入要在 Web 服务调用中使用的国家和邮政编码。

文档:www.geonames.org/export/web-services.html

用户需要输入国家和邮政编码。要获取国家/地区列表: http ://api.geonames.org/countryInfo?username= demo ** 注册并用您的注册 ID 替换 demo。

使用从上述服务中选择的国家代码和邮政编码,调用: http ://api.geonames.org/postalCodeLookupJSON?postalcode=23454&country=US&username=demo

希望这可以帮助。

于 2011-09-09T15:52:25.040 回答
2
  $doc = new DOMDocument();
  $url = 'http://maps.googleapis.com/maps/api/geocode/xml?address='.$_GET['Zip'].'@&sensor=true';
  $doc->load($url);
  $result = $doc->getElementsByTagName( "address_component" );
  $i=0;
  foreach( $result as $address_component )
  {
      $short_names = $address_component->getElementsByTagName( "long_name" );
      $short_name = $short_names->item(0)->nodeValue;
      if($i==1)
      {
        echo  $city=$short_name;
         break;  
      }
      $i++;

  }
于 2013-04-11T12:02:55.997 回答
0

这是一个可以做到这一点的网络服务

https://www.mashape.com/vanitysoft/uk-boundaries-io

..只是它允许通过单个或组合英国邮政编码(例如 ZE1 0AE)、部门、地区、城市和病房边界来获取用于 googleMaps 的 GeoJson。

例如,英国地区“曼彻斯特”.../boundary/uk?district=Manchester 将为您提供以下 GeoJson(该地区的所有部门边界...

您可以将其用于美国邮政编码: https ://www.mashape.com/vanitysoft/boundaries-io

在此处输入图像描述

于 2015-08-22T22:38:30.760 回答