编程语言
首页 > 编程语言> > php-Google Maps API在有效请求中返回“无效请求”

php-Google Maps API在有效请求中返回“无效请求”

作者:互联网

我正在尝试对我的数据库的地址进行地理编码.我大约有200个地址,其中一半地址就像一个咒语..我确实将Google Maps请求放在一个循环中,并且它起作用了.大约有100个地址返回了“ INVALID REQUEST”消息.我回显了请求url,并将其放在浏览器中,并返回“状态:确定”和所有数据.为什么我的脚本返回无效请求,而另一个浏览器选项卡返回确定?

那就是我使用的功能:

function getLatLon($strasse, $plz) {
    $inhalt = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?address='.$strasse.',+'.$plz.'&sensor=true');

    $geo['lat'] = $inhalt->result->geometry->location->lat;
    $geo['lon'] = $inhalt->result->geometry->location->lng;

    return $geo;
}

明确的请求网址如下所示:
http://maps.googleapis.com/maps/api/geocode/xml?address=Dreik%C3%B6nigstra%C3%9Fe+12,+Erlangen&sensor=true

如果有人可以帮助我或检测到错误,那将是非常棒的:)
问候,
菲利普

解决方法:

我很确定该错误是由您发送的未编码德语字符引起的.当您通过浏览器执行操作时,URL将自动编码,但不会通过PHP脚本自动编码.

为此使用rawurlencode

$inhalt = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?'.
                              'address='.rawurlencode($strasse).',+'.
                              rawurlencode($plz).'&sensor=true');

标签:reverse-geocoding,google-maps,google-api,php
来源: https://codeday.me/bug/20191122/2060790.html