如何从英国邮政编码获取地理位置

时间:2012-01-31 14:31:39

标签: php google-maps-api-3 geolocation postal-code

我目前有一个PHP脚本,允许用户输入英国邮政编码。

我想知道是否有办法从他们输入的邮政编码中获取地理位置。 (通过谷歌的API或什么?)

我尝试了http://code.google.com/apis/maps/documentation/geocoding/index.html但它需要一个完整的地址,而我只有一个邮政编码。

帮助将不胜感激,谢谢:) 彼得

5 个答案:

答案 0 :(得分:5)

这是一个可下载的数据库,适用于所有具有纬度和经度的英国邮政编码。

http://wikileaks.org/wiki/UK_government_database_of_all_1,841,177_post_codes_together_with_precise_geographic_coordinates_and_other_information,_8_Jul_2009

以下是使用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 / Long
http://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

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

query by uk postal