Проброс в options свойств меток properties из файла geojson в js
Необходимо менять цвет меток через файл geoObjects.geojson и обновлять страницу html автоматически.
ymaps.ready(function () {
var map = new ymaps.Map('map', {
center: [30.448166334957177, 59.9220776628873],
zoom: 15,
controls: ['zoomControl']
}),
objectManager = new ymaps.ObjectManager();
map.controls.get('zoomControl').options.set({size: 'small'});
// Загружаем GeoJSON файл, экспортированный из Конструктора карт.
$.getJSON('geoObjects.geojson')
.done(function (geoJson) {
geoJson.features.forEach(function (obj) {
// Задаём контент балуна.
obj.properties.balloonContent = obj.properties.description;
// Задаём пресет для меток с полем iconCaption.
if (obj.properties.iconCaption) {
obj.options = {
preset: "islands#darkgreenCircleIcon"
}
}
});
// Добавляем описание объектов в формате JSON в менеджер объектов.
objectManager.add(geoJson);
// Добавляем объекты на карту.
map.geoObjects.add(objectManager);
});
{"type":"FeatureCollection","metadata":{"name":"geoObjects","creator":"Yandex Map Constructor"},"features":[{"type":"Feature","id":5,"geometry":{"type":"Point","coordinates":[30.444435038298835,59.92078156674039]},"properties":{"description":"1:1:1:1:1:1:0:0:0:0:0:0:0:0:0","iconCaption":"Бадаева, 7/2","iconContent":"5","marker-color":"#ed4543"}}]}
Ответы (1 шт):
Автор решения: YaSupport
→ Ссылка
Формат geojson Конструктора несколько отличается от такового у геообъектов JS API. Потому необходимо выполнять преобразование, показанное в нашем примере.
Там же, где вы задаёте в коде пресет для меток, нужно пробрасывать в options нужные элементы properties файла Конструктора:
obj.options.set({
fillColor: obj.properties.get('fill'),
fillOpacity: obj.properties.get('fill-opacity'),
strokeColor: obj.properties.get('stroke'),
strokeWidth: obj.properties.get('stroke-width'),
strokeOpacity: obj.properties.get('stroke-opacity')
});