Есть ли способ отредактировать существующие данные геойсон на лист-карте - PullRequest
1 голос
/ 02 мая 2019

Я хочу сделать поддержку редактирования для отображаемых в данный момент слоев многоугольника геойсон на листовой карте.Когда кнопка редактирования нажата, она дает мне

Uncaught TypeError: Невозможно прочитать свойство 'lat' с нулевым значением

Вот мой код:

const leafletGeoJSON = new L.GeoJSON(arr, {
  style(feature: any) {
    const temp = getColor(feature.properties.id);
    return {
      color: temp,
      fillColor: temp
    };
  },
  onEachFeature(feature, layer) {
    layer.bindTooltip(feature.properties.description);
  }
});

leafletGeoJSON.eachLayer(layer => {
  reactRef.leafletElement.addLayer(layer);
});

Я использую листовку-розыгрыш

1 Ответ

0 голосов
/ 02 мая 2019

Я, наконец, нашел основную причину, потому что мы используем Multipolyon на БД, я просто отрисовываю, как есть, но на самом деле листовка не поддерживает MultiPolygon. Я изменил структуру данных на Polygon, и теперь все работает нормально.

Ключевым моментом здесь является опция featureGroup.Это сообщает плагину, что FeatureGroup содержит слои, которые должны быть редактируемыми.FeatureGroup может содержать 0 или более объектов с типами геометрии Point, LineString и Polygon.Leaflet.draw не работает с мультигеометрическими функциями, такими как MultiPoint, MultiLineString, MultiPolygon или GeometryCollection.Если вам нужно добавить мультигеометрические объекты в плагин рисования, преобразуйте их в FeatureCollection немультигеометрии (Точки, Линии Строки или Полигоны).

https://leaflet.github.io/Leaflet.draw/docs/leaflet-draw-latest.html#l-draw-feature

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...