Добавление свойств к слою листовка, которые станут параметрами geojson

Предположим, что я нарисую фигуру на карте mapbox и сделаю это на draw: crated event:

e.layer.properties = {};
 e.layer.properties.myId = 'This is myId';

Если я делаю a featureGroup.toGeoJSON(), функции geojson имеют пустой объект свойств. Есть ли способ настроить слой листовки, чтобы при его преобразовании в geoJson он установил определенные свойства?

2 ответа

Вы можете либо изменить источник листовки, либо написать свою собственную функцию для обработки слоев и установки свойств, которые вы ищете.


Собственно, трюк состоит только в том, чтобы определить слой feature с его type (должен быть "Feature") и properties (использовать последнюю для записи любой необходимой информации).

map.on('draw:created', function (event) {
 var layer = event.layer,
 feature = layer.feature = layer.feature || {}; // Initialize feature
 feature.type = feature.type || "Feature"; // Initialize feature.type
 var props = feature.properties = feature.properties || {}; // Initialize feature.properties
 props.myId = 'This is myId';
 drawnItems.addLayer(layer); // whatever you want to do with the created layer
});

См. также Листовка Ничья, не использующая свойства при преобразовании FeatureGroup в GeoJson и обновить свойства geojson, чтобы использовать ее с листом

licensed under cc by-sa 3.0 with attribution.