如何通过代码获取经度和纬度

时间:2015-07-29 10:07:38

标签: javascript php

我被要求找到特定地点的经度和纬度。用户将提供该位置的地址。我怎样才能获得经度和纬度?非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

您需要执行所谓的地理编码,才能将地址​​文本转换为一对纬度/经度坐标。通常,为此提供的良好服务有某种配额或付费订阅模式,但您可以在以下位置找到一些免费的API:

http://www.programmableweb.com/news/7-free-geocoding-apis-google-bing-yahoo-and-mapquest/2012/06/21

由于我提供了关键术语:地理编码,因此您的Google工作将会找到其他提供商。许多人都有Javascript,PHP,C#和其他实现示例来帮助您入门。

答案 1 :(得分:1)

我使用google api从我的项目中的地址获取地理坐标:

class Google
{
    private function __construct() { }

    public static function getGoogleJson($address)
    {
        $apiLink = 'http://maps.google.com/maps/api/geocode/json?sensor=false&language=ru&address=' . urlencode($address);

        $tmp = @json_decode(file_get_contents($apiLink));

        if (!$tmp) {
            return new stdClass;
        } else {
            return $tmp;
        }
    }

    public static function getGeoByAddress($address)
    {
        $addr = self::getGoogleJson($address);

        if (isset($addr->results[0]->geometry->location)) {
            return (array)$addr->results[0]->geometry->location;
        } else {
            return ['lat' => 0, 'lng' => 0];
        }
    }
}

(ACHTUNG!谷歌每天使用此api有一些限制)