Как получить результаты на английском языке в Google Maps API V3 - PullRequest
5 голосов
/ 18 марта 2011
//....
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 华山路/華山路

Инструкции на английском языке в моем браузере и на французском для моих французских коллег Французский Firefox, названия улиц китайские, я думал, что запросил информацию на немецком region: 'de'

Теперь хорошо, возможно, китайские улицы не доступны на немецком языке, но установка региона на gb, en, даже zh, похоже, ничего не делает. Мне бы очень хотелось, чтобы текст был только на одном языке, предпочтительно на английском.

edit Я уверен, что названия улиц доступны на английском языке, потому что при использовании геокодера результаты отображаются на английском языке, например, Shimen Road (No.1)

edit2 с помощью http://maps.google.com/maps/api/js?sensor=false& language = cs Я могу принудительно ввести инструкции в язык, но названия улиц все равно застряли на китайском языке. Используя геокодер api, я могу получить китайские названия улиц, которые переведены на китайский язык на английский / немецкий / французский (с отступлением на английский, если отсутствуют переводы на немецкий / французский языки), поэтому, почему указание названий улиц на китайском языке застряло, не имеет смысла. Это может быть просто недостаток / преднамеренное на стороне Google, но я в этом сомневаюсь.

Есть ли причина

1 Ответ

6 голосов
/ 18 марта 2011

В 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, так и в API направлений) не меняет язык, он служит другим целям. Это влияет на результаты, которые будут смещены в сторону какого-либо региона (например, результатом по умолчанию для «Толедо» является город в штате Огайо, США, если вы хотите использовать его в Испании, используйте region=es, чтобы сместить результаты).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...