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

Moa*_*oak 5 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);
    }
});
//....
Run Code Online (Sandbox Code Playgroud)

结果我得到了这样的东西

Head southwest on ???/??? toward ???/???
Turn left at ????
Continue onto ????
Turn right at ????
Slight left to stay on ????
Turn left at ???/???
Run Code Online (Sandbox Code Playgroud)

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

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

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

edit2 with http://maps.google.com/maps/api/js?sensor=false&language = cs我可以强制说明语言,但街道名称仍然是中文.使用地理编码器api我可以收到中文街道名称,这些中文翻译成英文/德文/法文(当德文/法文翻译丢失时会回退到英文)所以为什么街道名称被贴在中文上是没有意义的.这可能只是谷歌方面的一个缺陷/故意,但我有点怀疑.

有原因吗?

Tom*_*mik 6

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

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=cs">
Run Code Online (Sandbox Code Playgroud)

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

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

http://code.google.com/apis/maps/documentation/directions/
Run Code Online (Sandbox Code Playgroud)

结果是JSON文本.要轻松使用它,只需将其转换为对象就足够了.

region参数(无论是在地图DirectionRequest和路线API)不改变语言,它服务于其他目的.它会影响结果偏向某些区域(例如,'Toledo'的默认结果是美国俄亥俄州的城市,如果你想在西班牙使用该城市,则region=es用来偏向结果).