我目前有一个PHP脚本,允许用户输入英国邮政编码。
我想知道是否有办法从他们输入的邮政编码中获取地理位置。 (通过谷歌的API或什么?)
我尝试了http://code.google.com/apis/maps/documentation/geocoding/index.html但它需要一个完整的地址,而我只有一个邮政编码。
帮助将不胜感激,谢谢:) 彼得
答案 0 :(得分:5)
这是一个可下载的数据库,适用于所有具有纬度和经度的英国邮政编码。
以下是使用Google Map API对英国邮政编码进行地理编码的分步教程
http://www.tomanthony.co.uk/blog/geocoding-uk-postcodes-with-google-map-api/
答案 1 :(得分:5)
现在有一个免费的英国政府替代这里列出的其他选项。转到http://postcodes.io/查看API和示例
的详细信息答案 2 :(得分:3)
Ordnance Survey的开放式CodePoint邮政编码数据集为您提供了所有英国大陆邮政编码的数据集
https://www.ordnancesurvey.co.uk/oswebsite/products/code-point-open/index.html
然后您可以使用像这样的库
将它们转换为WGS84 Lat / Longhttp://www.jstott.me.uk/phpcoord/
答案 3 :(得分:2)
您可以查看Yahoo PlaceFinder API
下面是一个示例网址http://where.yahooapis.com/geocode?q=BL12DD&appid=[yourappidhere]
我过去曾经使用过它,发现它有些准确。
文档:http://developer.yahoo.com/geo/placefinder/
Heres来代码
<?php
$data = fetchPage("http://where.yahooapis.com/geocode?q=BL12DD&appid=%5Byourappidhere%5D&flags=J");
$yahooData = json_decode($data);
echo '<pre>'.print_r($yahooData, true).'</pre>';
echo '<br />Lat: ' . $yahooData->ResultSet->Results[0]->latitude;
function fetchPage($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
?>
答案 4 :(得分:0)
虽然已经回答: 这里是一个简单API的链接,允许通过单个或组合英国邮政编码(例如ZE1 0AE),部门,区域,城市和病房边界获取GeoJson for googlemaps..query