2017-10-14 187 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;