PHP 地址的纬度经度

2024-01-14

我的网站上有一个表单,用户可以在其中输入某个地点的地址。当他们提交表单时,我将此位置转换为纬度/经度并将其存储在 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(使用前将#替换为@)

PHP 地址的纬度经度 的相关文章

随机推荐