首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geocode不同结果

Geocode不同结果
EN

Stack Overflow用户
提问于 2019-09-19 15:32:38
回答 1查看 48关注 0票数 0

我有个有点奇怪的问题。我正在做一个项目,需要知道我的php脚本中两个位置之间的距离。您可以为google提供城市名称或邮政编码。

嘿应该很容易对吧?不对!

我试着用已知的邮政编码和我的城市来测试它。“汉诺威”和“30159”的距离应该在0左右,但奇怪的是,我跑了7200公里。(我计算两个和弦之间距离的代码是有效的,请相信我)

现在转到实际问题.

我的脚步:

  1. var_dump api请求的结果
  2. api请求的回显url
  3. 在浏览器中打开url并比较输出

这是我非常简单的代码。

代码语言:javascript
复制
$url = "https://maps.googleapis.com/maps/api/geocode/json?&address=".urlencode($ort)."&key=$google_api_key";
echo $url."<hr>";
$string = file_get_contents($url);
echo $string."<hr>";

这现在很奇怪。与php脚本相比,浏览器中的输出完全不同。

比较浏览器和脚本的输出(sry,我没有脚本输出的格式)

有没有人能向我解释和/或提供解决方案,使脚本的输出像浏览器的“所需”输出的邮政编码30159位于德国境内?

干杯,尼克斯瑞斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-16 12:54:29

好的,我想好了,如果有人有同样的问题,我想和大家分享我的解决方案。

代码语言:javascript
复制
$url = "https://maps.googleapis.com/maps/api/geocode/json?&address=".urlencode($ort)."&key=$google_api_key";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, ["Accept-Language: de-DE-1996"]); // important
$string = curl_exec($curl);
curl_close($curl);

当您进行ajax调用时,浏览器会自动传输您的语言,但是php函数没有。使用curl,您可以指定您的语言,这使得google报告是与您的区域最相关的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58014489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档