2017-10-14 117 views
0

我有查詢地址,經緯度顯示是這樣的:節目從緯度和長緯度

Latitude : <?=$post_search['lat'];?> 
Long Latitude : <?=$post_search['long'];?> 

樣品結果:

Latitude : -7.966620399999998 
Long Latitude : 112.000002 

如何創建一個函數來顯示基於查詢的地址:

<?=$post_search['lat'];?> 
<?=$post_search['long'];?> 

我的代碼中使用這個庫:see in pastebin

+3

你的意思,你需要一個函數來LAT長值轉換爲實際地址字符串?如果是這樣,你可以看看[谷歌地圖反向地理編碼api](https://developers.google.com/maps/documentation/geocoding/intro#ReverseGeocoding) – davidchoo12

回答

0

我不知道你的圖書館。但它完全沒有任何圖書館。 您應該使用googleapis地理編碼。

它的簡單查詢

http://maps.googleapis.com/maps/api/geocode/json?latlng=44.4647452,7.3553838&sensor=true 

你需要設置你的要求latlng並運行此之後,要求你解析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.000002); 

echo $result;