我需要根据邮政编码获取地址

时间:2015-07-10 11:22:25

标签: php curl google-maps-api-3

我有邮政编码数据库现在我需要从谷歌或其他服务的每个邮政编码中获取地址,你能建议我这样做吗?

1 个答案:

答案 0 :(得分:0)

你所追求的是“地理编码”。

Google地图提供此服务,您可以从Google Developer页面阅读有关如何使用它的文档:

https://developers.google.com/maps/documentation/geocoding/

您可以致电API获取地址信息,以下是获取澳大利亚墨尔本(邮政编码3000)信息的示例:

https://maps.googleapis.com/maps/api/geocode/json?address=3000,Australia

然后,您需要获取正在查找的每个邮政编码的URL,并在结果上运行json_decode。之后,您可以从中提取所需的信息。

这是我掀起的一个简单例子:

<?php

// Get geocode information
function address_geocode_json($address)
{
    $geocode_url = 'http://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode($address);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $geocode_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    $content = curl_exec($ch);
    curl_close($ch);

    $result = ( $content ? json_decode( $content ) : false );

    return ( isset( $result->results ) ? $result->results : false );
}

// Get the postcode information-- you would use this within a loop
$postcode_information = address_geocode_json( '3000, Australia' );

// Here is the result structure
var_dump( $postcode_information );