在DB上创建新记录时从谷歌API获取地理数据

时间:2010-10-13 08:06:05

标签: mysql web-services google-api

我有一个实体,其中一个成员是实际城市,国家是“创建” - 用户只给我lat,长坐标,我需要使用谷歌API反转地理编码坐标到城市,国家。

我的问题 - 获取该信息的最佳方式是什么?在记录创建过程中使用第三方Web服务是否足够安全?有哪些常见的方法呢?

1 个答案:

答案 0 :(得分:1)

这当然足够安全。唯一的问题是响应时间(因为您将同步调用远程Web服务),但如果您只在每次插入时执行此操作,我认为这不会是一个大问题。

Google地理编码API will return results in XML format,因此您只需调用Web服务URL并从响应中提取所需信息。

以下是反向地理编码结果示例:

http://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=false

你没有说你正在使用哪种语言,但我假设PHP-这是解析响应并使用SimpleXML显示地址的一个非常基本的例子:

$lat = 40.714224;
$lng = -73.961452;

$xml = simplexml_load_file("http://maps.googleapis.com/maps/api/geocode/xml?latlng=" . $lat . "," . $lng . "&sensor=false");

foreach($xml->result as $result)
{
    foreach($result->address_component as $addresscomponent)
    {
        echo $addresscomponent->long_name . ' ';
    }

    echo '<br />';
}