2016-12-17 3 views
0

Как показывать названия городов (а также дороги и природные резервы, если это возможно) на английском языке во всех странах на карте Google, отображаемой с помощью API Карт Google V3?Отображать названия городов на английском языке независимо от местоположения с помощью API Карт Google

До этого момента, я был в состоянии частично достичь моего результата путем добавления параметра language=en, что дает результат, представленный на рисунке ниже:

Google Maps with added parameters sensor and language

Это получает меня половину пути. То, что я хотел бы достичь, - полностью скрыть неанглийские имена и отображать только названия городов на английском языке (например, для отображения Münich вместо München).

Возможно ли это? Если да, то я был бы очень признателен, если бы кто-нибудь мог привести меня к решению.

ответ

0

Использование Это:

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
     center: { 
      lat: -33.8688, 
      lng: 151.2195 
     }, 
     zoom: 13 
    }); 
    var input = /** @type {!HTMLInputElement} */ (
     document.getElementById('pac-input')); 

    var types = document.getElementById('type-selector'); 
    map.controls[google.maps.ControlPosition.TOP_LEFT].push(input); 
    map.controls[google.maps.ControlPosition.TOP_LEFT].push(types); 

    var autocomplete = new google.maps.places.Autocomplete(input); 
    autocomplete.bindTo('bounds', map); 

    var infowindow = new google.maps.InfoWindow(); 
    var marker = new google.maps.Marker({ 
     map: map, 
     anchorPoint: new google.maps.Point(0, -29) 
    }); 

    autocomplete.addListener('place_changed', function() { 
     infowindow.close(); 
     marker.setVisible(false); 
     var place = autocomplete.getPlace(); 
     if (!place.geometry) { 
      window.alert("Autocomplete's returned place contains no geometry"); 
      return; 
     } 

     // If the place has a geometry, then present it on a map. 
     if (place.geometry.viewport) { 
      map.fitBounds(place.geometry.viewport); 
     } else { 
      map.setCenter(place.geometry.location); 
      map.setZoom(17); // Why 17? Because it looks good. 
     } 
     marker.setIcon(/** @type {google.maps.Icon} */ ({ 
      url: place.icon, 
      size: new google.maps.Size(71, 71), 
      origin: new google.maps.Point(0, 0), 
      anchor: new google.maps.Point(17, 34), 
      scaledSize: new google.maps.Size(35, 35) 
     })); 
     marker.setPosition(place.geometry.location); 
     marker.setVisible(true); 

     var address = ''; 
     if (place.address_components) { 
      address = [ 
       (place.address_components[0] && place.address_components[0].short_name || ''), (place.address_components[1] && place.address_components[1].short_name || ''), (place.address_components[2] && place.address_components[2].short_name || '') 
      ].join(' '); 
     } 

     infowindow.setContent('<div><strong>' + place.name + '</strong><br>' + address); 
     infowindow.open(map, marker); 
    }); 
+0

Спасибо Анил! Я не могу понять, как ваше решение связано с моим вопросом. Я не хочу использовать ввод для автозаполнения, добавлять дополнительные маркеры или использовать InfoWindows. Не могли бы вы еще немного объяснить, чего я не вижу? – Wilhelmw

+0

Эй, вы можете отправить свой код. –

+0

Эй, @ anil-samal! Как вы, вероятно, понимаете, большая часть кода избыточна для примера (например, только показ ярлыков на разных уровнях масштабирования, пользовательские стили, способы создания маркеров и т. Д.). Следовательно, здесь я укажу код для инициирования объекта карты. – Wilhelmw

Смежные вопросы