Ответ 1
Так что мне просто нужно было сделать что-то подобное, и вам нужно было добавить 2 файла geojson и по-разному их стиль. То, что вы хотите сделать, это инициализировать карту, а затем добавить 2 разных слоя. В основном задан стиль для обоих. Ниже мой код с заметками. Я фактически использовал эту функцию Angular в сервисе и вернул обещание.
Настройте параметры своей карты.
var mapOptions = {
zoom: 4,
scrollwheel: false,
center: new google.maps.LatLng(40.00, -98),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
Установите карту в переменную.
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
Инициализировать 2 переменную, которая будет принимать слои. Я сделал состояние и графство.
var countyLayer = new google.maps.Data();
var stateLayer = new google.maps.Data();
Затем загрузите файлы GeoJson для каждого слоя.
countyLayer.loadGeoJson('counties.json');
stateLayer.loadGeoJson('states.json');
После этого задайте стиль для каждого слоя.
stateLayer.setStyle({
strokeColor: 'red',
strokeWeight: 5
});
countyLayer.setStyle({
strokeColor: 'black',
strokeWeight: 1
});
Последний шаг - установить слой на карту.
countyLayer.setMap(map);
stateLayer.setMap(map);
После этого я вернул обещание, но вы можете просто вернуть объект карты. Означает ли это/помогает ответить на ваш вопрос?
Кроме того, в пределах каждой функции setStyle() вы можете добавить динамическое стилирование через функции. Например, добавьте функцию fillColor, которая изменит цвет на основе данных в файле GeoJson.