//....
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我可以收到中文街道名称,这些中文翻译成英文/德文/法文(当德文/法文翻译丢失时会回退到英文)所以为什么街道名称被贴在中文上是没有意义的。这可能只是谷歌方面的一个缺陷/故意,但我有点怀疑。
是否有原因
答案 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
来偏置结果。)