我的网站上有一个表单,用户可以在其中输入某个地点的地址。当他们提交表单时,我将此位置转换为纬度/经度并将其存储在 MySQL 数据库中。我正在使用 Google 的地理编码服务进行此转换。问题是我找不到类或服务来将该纬度/经度转换回地址,据我所知,Google 的地理编码服务是单向转换。我意识到我可以将物理地址存储在数据库中,但随着时间的推移,当它可以以更简单的格式存储时,这就会浪费空间。有谁知道从纬度/经度转换为地址的类/服务,或者如果我错了并且我可以使用谷歌的地理编码系统?我过去几天一直在寻找答案,但找不到任何东西。感谢您的帮助!
将地理坐标转换为地址称为反向地理编码。在此脚本中,我们使用 Google 地图 API,因为它免费、快速且不需要 API 密钥。
Google 反向地理编码的速率限制为每个 IP 每天 2500 次 API 调用。
用于反向地理编码的 PHP 函数
<?
function getaddress($lat,$lng)
{
$url = 'https://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false';
$json = @file_get_contents($url);
$data=json_decode($json);
$status = $data->status;
if($status=="OK")
{
return $data->results[0]->formatted_address;
}
else
{
return false;
}
}
?>
在 getaddress() 函数中传递纬度和经度。成功时它将返回地址字符串,否则返回布尔值 false。
Example
<?php
$lat= 26.754347; //latitude
$lng= 81.001640; //longitude
$address= getaddress($lat,$lng);
if($address)
{
echo $address;
}
else
{
echo "Not found";
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)