Как сделать данные GeoJSON недоступными для редактирования через leaflet.pm

#javascript #leaflet #draw #leaflet-geoman

#javascript #брошюра #рисовать #брошюра-geoman

Вопрос:

У меня есть файл geojson, и я получаю его с помощью ajax. но я хочу предотвратить редактирование геометрий, которые я загружаю во время запуска. Только те, которые добавлены с leaflet.pm должно быть доступно для редактирования. Как я могу это сделать?

leaflet.pm

Я использую geojson coordinate json. эти рисунки добавляются на карту при загрузке страницы.

{pmIgnored: true} после попытки удалить режим удаления, когда я нажимаю на один из статических рисунков, которые я добавил из geojson, удаляет их все. Как я могу это предотвратить?

 var geojsonData;
// addded geojson ajax
$.getJSON("geo.json", {
  async: false,
}, function (data) {
  geojsonData = L.geoJson(data, {
    pmIgnore: true, // ignore static shaped edited
    style: {
      weight: 20
    },
  }).addTo(map);
});
  

что я хочу сделать, так это никоим образом не удалять статические координаты при включенном режиме удаления

Ответ №1:

Примените pmIgnore параметр не к группе, а к каждому отдельному слою листовки. Сделайте это с помощью style и pointToLayer опций L.GeoJSON , например:

   geojsonData = L.geoJson(data, {
    style: {
      pmIgnore: true,
      weight: 20
    },
  })
  

Комментарии:

1. Спасибо! Это сработало отлично. Я пытался выяснить, как добавить их к отдельному слою, и не понимал, что могу сделать это таким образом.

Ответ №2:

Я Sumit, сопровождающий leaflet.pm

Я думаю, что была ошибка, связанная с игнорированием слоев через pmIgnore: true в режиме глобального удаления. Это должно быть исправлено в этом выпуске. Пожалуйста, протестируйте версию 2.0.3 или новее и дайте мне знать, работает ли она.

Если вы все еще сталкиваетесь с проблемами, не стесняйтесь сообщать об этом здесь с помощью JSFiddle, показывающего проблему, и я рад помочь / исправить это.

Комментарии:

1. Я не столкнулся с какими-либо проблемами в версии 2.0.3. Это работает очень хорошо.