我正在使用 gmaps apiv3 webservice 与 latlng 对进行地理编码。这很简单,但我对某些数据有奇怪的行为。
方程式:
http://maps.googleapis.com/maps/api/geocode/xml?sensor=false®ion=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
...相同的结果
最佳答案
这是因为格式化的街道地址可识别区域设置,并对浏览器的 accept-language
header (可能是 fr-FR
)作出 react 。
如果您对伦敦的位置进行编码,则在法语浏览器中会得到 Londres
,在英语浏览器中会得到 London
,Lontoo
> 芬兰语等。
使用language
parameter来强制语言。
http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&
region=fr&latlng=46.16141,-1.149797&language=fr
关于php - GMaps api 地理编码奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031939/