【问题标题】:how to get google address from longitude and latitude in php如何从php中的经度和纬度获取google地址
【发布时间】:2019-04-08 13:55:13
【问题描述】:

我正在尝试从经度和纬度获取谷歌地址。我试过了,但是不行

<?php 
$sql_query  = "SELECT * FROM `user_History` where uid = '$id'";
$stmt = $dbh->query($sql_query);
$i = 1;
while($row = $stmt->fetch( PDO::FETCH_ASSOC))
{
extract($row);              
?>
<td><?php  echo getaddress($row['lat'],$row['lon']); ?></td>
<?php }  ?>

我的功能是:

 <?php
 function getaddress($lat,$lng)
 {
 $url = 'http://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 "no";
 }
 }

?>

我的 google map api 密钥在这里:

<script src="http://maps.googleapis.com/maps/api/js?key=mykey1776135765176371&callback=initMap" type="text/javascript"></script>

它不工作。返回

【问题讨论】:

  • 你应该只反转一次地理编码并存储结果
  • 但我需要的不仅仅是数据库的结果
  • 这有什么不同?多次反向地理编码没有意义
  • 插入时获取地址并存储。
  • “它不工作” - 那么到目前为止你做了什么来调试这个?您是否删除了 @ 以查看尝试对该 URL 发出 HTTP 请求是否遇到任何一般问题?您是否对认为之后应该包含 JSON 的变量进行了调试输出?您是否检查过尝试解码此 JSON 可能引发的错误?为什么所有这些事情还没有发生?

标签: javascript php google-maps google-maps-api-3


【解决方案1】:

在您的 api 中,您缺少 api 密钥。 根据谷歌文档,您必须指定 api 密钥。

此处示例:

http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false'&key=YOUR_API_KEY

【讨论】:

  • 解析错误:语法错误,第 27 行的 F:\xampp\htdocs\jaikbioapp\search.php 中出现意外的“=”
  • print_r($json);....我得到了错误............{ "error_message" : "您已超出此 API 的每日请求配额. 我们建议在 Google Developers Console 中注册一个密钥:console.developers.google.com/apis/credentials?project=_", "results" : [], "status" : "OVER_QUERY_LIMIT" }
  • 错误不言自明:您已超出此 API 的每日请求配额
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
相关资源
最近更新 更多