谷歌地理编码和邮政编码查找失败

Posted

技术标签:

【中文标题】谷歌地理编码和邮政编码查找失败【英文标题】:Google geocode and post code look up failure 【发布时间】:2015-01-27 16:17:23 【问题描述】:

我有一个网站,用户可以在其中发布他们的照片,然后添加一个邮政编码,这样您就可以看到这张照片的拍摄地点。我有可以通过插入邮政编码找到纬度和经度的功能:

function googlemaps($postcode)

   $search_code = urlencode($postcode);
   $url = 'http://maps.googleapis.com/maps/api/geocode/json?address=' . $search_code . '&sensor=true';
   $json = json_decode(file_get_contents($url));

   $lat = $json->results[0]->geometry->location->lat;
   $lng = $json->results[0]->geometry->location->lng;

   $url2 = '
   <a href="http://maps.google.com/maps?q=' . $lat . ',' . $lng . '" target="blank">
   <img src="http://maps.google.com/maps/api/staticmap?size=400x240&zoom=15&maptype=roadmap&sensor=false&markers=icon:|' . $lat . ',' . $lng . '">
   </a>
   <div class="show"></div>
   ';
   return $url2;

现在为了测试,我在 db 中使用不同的邮政编码制作了 10 条记录,但问题是当我输出所有带有位置的记录时,每次一些位置都是空白的,并且在刷新页面后它们会更改为某些原因(我的意思是如果位置 A 第一次是空白的,在重新加载后位置 A 会正常,但位置 B 会变为空白),空白是指他们不输出任何经纬度信息,我的图像如下所示:

这张图片的链接是:

<img src="https://maps.google.com/maps/api/staticmap?size=400x240&zoom=15&maptype=roadmap&sensor=false&markers=icon:,">

我相信该函数与该函数有关,当从 db 获取 10 条记录时,该函数无法快速获取信息?因为有时刷新页面后我可以显示所有位置,有时只显示 1 个位置。

【问题讨论】:

地理编码服务受配额和速率限制。听起来你正在击中其中之一。为您的代码添加错误检查。 好吧,如果有一些限制,那为什么有一次我会显示所有限制,有时只显示几个? 没有什么说限制必须是一致的。它们可以根据服务器的负载而变化。在代码中添加错误检查可能会回答这个问题。请注意,静态地图服务也有限制。 我明白了,我找到了一个解决方案,我将在这里发布它 【参考方案1】:

好吧,我找到了解决方案。

因为我在从 db 获取结果时使用了这个函数,所以它可能会遇到查找的限制或其他问题。

现在当用户发布他们的图像并输入他们的邮政编码时,我得到纬度和经度,我使用函数从邮政编码中提取纬度和经度,然后将结果插入到数据库中。

现在即使我从数据库中获取 10 个结果,因为我已经整理了所有位置,所以所有地图都显示没有问题。

【讨论】:

以上是关于谷歌地理编码和邮政编码查找失败的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中对谷歌地理编码 api 进行批量纬度/经度查找?

Google地理编码API无法识别某些邮政编码

我在哪里可以找到谷歌地理编码替代品? [关闭]

如何在信息窗口中显示我的地理编码地址?谷歌地图 API

谷歌反向地理编码 - 如何捕捉到最近的完整邮政编码

谷歌地图使城市无需使用地理编码器即可点击(适用于离线模式)