如何使用php进行地理编码获取地点的经度和纬度坐标

时间:2016-04-18 14:02:57

标签: php google-maps geocoding

我想从给定地址($ street,$ barangay,$ city和$ province)使用php获取经度和纬度坐标。

3 个答案:

答案 0 :(得分:2)

您可以使用网址:

http://maps.googleapis.com/maps/api/geocode/json?address=YOUR_ADDRESS

它是免费的。

您将获得包含lat& amp;的json编码形式的数据。长

答案 1 :(得分:1)

您可以在此处使用Google Maps Geocoding API: https://developers.google.com/maps/documentation/geocoding/intro

它是免费的: - 每天2,500个免费要求 - 每秒10个请求

要使用Google地理编码API,请使用此库(MIT许可证): http://geocoder-php.org/

答案 2 :(得分:1)

以下是根据城镇,城市或国家/地区位置从Google Maps API获取纬度和经度值的PHP代码示例。请查看tutorialofficial documentation

<?php
$url = "http://maps.google.com/maps/api/geocode/json?address=West+Bridgford&sensor=false&region=UK";
$response = file_get_contents($url);
$response = json_decode($response, true);

//print_r($response);

$lat = $response['results'][0]['geometry']['location']['lat'];
$long = $response['results'][0]['geometry']['location']['lng'];

echo "latitude: " . $lat . " longitude: " . $long;
?>

http://maps.google.com/maps/api/geocode/json网址有3个参数:地址(您的主要位置),区域和传感器,用于指示请求是否来自带有位置传感器的设备。

您还可以查看此相关SO question。社群建议使用curl代替file_get_contents

$address = "India+Panchkula";
$url = "http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false&region=India";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response);
echo $lat = $response_a->results[0]->geometry->location->lat;
echo "<br />";
echo $long = $response_a->results[0]->geometry->location->lng;