如何在Google Maps API V3中检索英语结果

时间:2011-03-18 11:44:28

标签: localization google-maps-api-3

//....
directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(map);
directionsService = new google.maps.DirectionsService();
var request = {
    origin : new google.maps.LatLng(origin.lat, origin.lng),
    destination : new google.maps.LatLng(destination.lat, destination.lng),
    travelMode : google.maps.DirectionsTravelMode.DRIVING,
    unitSystem : google.maps.DirectionsUnitSystem.METRIC,
    region: 'de'
    };
directionsService.route(request, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(result);
    }
});
//....

结果我得到了这样的东西

Head southwest on 吳江路/吴江路 toward 泰兴路/泰興路
Turn left at 茂名北路
Continue onto 茂名南路
Turn right at 淮海中路
Slight left to stay on 淮海中路
Turn left at 华山路/華山路

我的浏览器上的说明是英文,法国同事法国火狐上的法文,街道名称是中文,我以为我要求提供德语信息region: 'de'

现在好了,也许中国的街道没有德语,但设置区域为gb,en,甚至zh似乎什么都不做。 我真的希望文本只是一种语言,最好是英语。

编辑我很确定街道名称是英文版,因为当我使用地理编码器时,结果是英文的,例如Shimen Road (No.1)

使用http://maps.google.com/maps/api/js?sensor=false& language = cs

edit2 我可以强制使用某种语言,但街道名称仍然是中文。使用地理编码器api我可以收到中文街道名称,这些中文翻译成英文/德文/法文(当德文/法文翻译丢失时会回退到英文)所以为什么街道名称被贴在中文上是没有意义的。这可能只是谷歌方面的一个缺陷/故意,但我有点怀疑。

是否有原因

1 个答案:

答案 0 :(得分:6)

DirectionRequest没有指定语言的参数。根据地图使用的语言区分语言。该语言被指定为language标记中的可选<script>参数,例如

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=cs">

或如果参数不存在,则使用浏览器的首选语言。

如果您想为方向结果和地图使用不同的语言,可以使用Google Directions API:

http://code.google.com/apis/maps/documentation/directions/

结果是JSON文本。要轻松使用它,只需将其转换为对象即可。

region参数(在地图的DirectionRequest和Directions API中)都不会更改语言,它可用于其他目的。它会影响某些区域的偏向结果(例如,'Toledo'的默认结果是美国俄亥俄州的城市,如果您想在西班牙使用该城市,请使用region=es来偏置结果。)