【问题标题】:GMaps api Geocode strange behaviorGMaps api地理编码奇怪的行为
【发布时间】:2011-08-27 06:41:37
【问题描述】:

我正在使用 gmaps apiv3 网络服务对 latlng 夫妇进行地理编码。这很简单,但我对某些数据有一种奇怪的行为。

方程:

http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&region=fr&latlng=46.16141,-1.149797

接下来我用导航器(firefox / chrome)打开 url,在formatted_address 行,值是:

<formatted_address>57-79 Rue des Merciers, 17000 La Rochelle, France</formatted_address>

但是当我通过 PHP 获取 xml 文件时

$xml = simplexml_load_file($url);
var_dump($xml)

结果:

public 'formatted_address' => string '57-79 Rue des Merciers, 17000 Rochelle, France' (length=46)

“Rochelle”之前的“La”这个词消失了……这是我的问题。这不是一个独特的案例(我可以发布更多示例)。

我也试试file_get_contents, curl, wget ...同样的结果

【问题讨论】:

    标签: php xml google-maps


    【解决方案1】:

    这是因为格式化的街道地址可识别区域设置,并且会响应浏览器的 accept-language 标头,这可能是 fr-FR

    如果你对伦敦的一个职位进行编码,你会在法语浏览器中获得Londres,在英语浏览器中获得London,在芬兰语浏览器中获得Lontoo,等等。

    使用language parameter 强制语言。

    http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&
    region=fr&latlng=46.16141,-1.149797&language=fr
    

    【讨论】:

    • 我试过 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1 ');但还不够。我要在标题上找到关于接受语言的信息。
    • @Kakawait 查看我的更新,我找到了覆盖它的参数。它被命名为language
    • 是的,谢谢我有语言选项它工作正常:') 是愚蠢的问题嗨
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2016-09-05
    相关资源
    最近更新 更多