2016-12-23 2 views
1

Я использую API, предоставляемый Google map [v3] для проекта. Карта сильно стилена, и я не могу понять, как поместить раздел стиля моего скрипта во внешний файл JavaScript и вызвать его в моей функции.Google Map API v3, перемещение стиля карты в отдельный файл

map = new google.maps.Map(document.getElementById('map-canvas'), { 
center: {lat:40, lng: -97.7313421}, 
zoom: 3, 
clickable: true, 
styles: [ 
     { 
      "elementType": "geometry", 
      "stylers": [ 
      { 
       "color": "#212121" 
      } 
      ] 
     }, .... 

Чтобы быть ясным, я хочу, чтобы раздел стиля массива находился где-то в другом месте.

+2

Вы можете добавить jsFiddle с кодом карты? –

+0

К сожалению, я не могу дать вам свой код, потому что он содержит ключ API моей компании и файл JSON для загрузки данных только в нашей интрасети, но я дублировал стиль на этом: [codepen] (http://codepen.io/ BastienAustin/pen/zoQvYp). Как вы можете, стиль довольно длинный. –

ответ

3

Plunkr code put together.

Поместите исходный массив стиль в одном файле (здесь styles.js) и использовать JQuery GET, чтобы вытащить этот файл в переменную включить эту в свой Google Map Style.

... 
function initMap() { 
    var mapStyle = ''; 

    $.get('styles.js', function(data) { 
     if (data) { 
     mapStyle = JSON.parse(data); 
     map_options = { 
      zoom: 10, 
      center: {lat: 42.9456, lng: -122.2}, 
      styles: mapStyle 
     } 

     map_document = document.getElementById('map') 
     map = new google.maps.Map(map_document,map_options); 
     loadMarkers() 
     } 
    }); 
} 

google.maps.event.addDomListener(window, 'load', initMap); 

Если файл styles.js содержат стиль именно так, как вы пишете это нормально:

[ 
    { 
     "elementType": "geometry", 
     "stylers": [ 
      { 
       "color": "#212121" 
      } 
     ] 
    }, 
... 
] 
+1

Спасибо, ты классный. Отлично работает ! –

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