如何使用PHP或使用PHP的网络服务从全球的邮政编码或邮政编码中查找城市和州?我尝试过Google Maps Ge编码器API,适用于美国和加拿大,但不适用于所有国家/地区的英国和墨西哥。我也使用了雅虎API,它比谷歌更好,但是对于一些邮政编码和邮政编码,它返回来自不同国家的结果。
如果我必须针对美国,英国,加拿大和墨西哥邮政编码获取城市和州/省,是否有人知道我可以使用哪个API或数据库?
答案 0 :(得分:4)
嗯,不完全确定这是你想要的,但我正在做类似的事情。我一直在使用以下免费网络服务。用户输入要在Web服务呼叫中使用的国家/地区和邮政编码。
文档: www.geonames.org/export/web-services.html
用户需要输入国家/地区和邮政编码。要获取国家/地区列表: http://api.geonames.org/countryInfo?username=demo **使用您的注册ID注册并替换演示。
使用从上述服务和邮政编码中选择的国家/地区代码,请致电: http://api.geonames.org/postalCodeLookupJSON?postalcode=23454&country=US&username=demo
希望这有帮助。
答案 1 :(得分: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++;
}
答案 2 :(得分:0)
这是一个只做
的网络服务https://www.mashape.com/vanitysoft/uk-boundaries-io
..只是它允许通过单一或结合英国邮政编码(例如ZE1 0AE),部门,区域,城市和病房边界获取googleMaps ...查询的GeoJson
例如英国地区"曼彻斯特" ... / boundary / uk?district =曼彻斯特将为您提供以下GeoJson(该地区的所有行业界限......您可以将此用于美国邮政编码: https://www.mashape.com/vanitysoft/boundaries-io