我有查询这样显示latlong:
Latitude : <?=$post_search['lat'];?>
Long Latitude : <?=$post_search['long'];?>
样本结果:
Latitude : -7.966620399999998
Long Latitude : 112.63263210000002
如何创建一个函数来显示基于查询的地址:
<?=$post_search['lat'];?>
<?=$post_search['long'];?>
我的代码使用此库:see in pastebin
答案 0 :(得分:0)
我不知道你的图书馆。但它只是没有任何库。 您应该使用googleapis地理编码。
这是简单的查询
http://maps.googleapis.com/maps/api/geocode/json?latlng=44.4647452,7.3553838&sensor=true
您需要在请求中设置lat
lng
并在请求解析json之后运行此命令。
php的例子:
const GOOGLE_MAPS_URL = 'http://maps.googleapis.com/maps/api/geocode/json';
function getUrlLatLng( $latLng) {
$queryString = http_build_query(['latlng' => $latLng,'sensor'=> true]);
return GOOGLE_MAPS_URL . '?' . $queryString;
}
function getData($lat, $lng) {
$latLng = implode(',',[$lat, $lng]);
$url = getUrlLatLng($latLng);
return json_decode(file_get_contents($url));
}
function parseAddress($result) {
return ($result[0]->formatted_address); //this parse address ass field you need;
}
function getAddress($lat, $lng) {
$address = (array)@getData($lat, $lng);
if(empty((array)@$address['results'])) {
throw new Exception('Not result');
}
return $address['results'];
}
function getFullAddress($lat, $lng) {
$address = getAddress($lat, $lng);
return parseAddress($address);
}
$result = getFullAddress(-7.966620399999998, 112.63263210000002);
echo $result;