Leaflet: Наведите курсор мыши, добавив отфильтрованный гео json на карту (JavaScript) - PullRequest
0 голосов
/ 24 февраля 2020

Исходное условие

Я работаю над листовой картой JavaScript. В принципе, у меня есть два разных файла geo json: у меня есть несколько полигонов (переменная FailuresLayer), каждый из которых имеет свой уникальный идентификатор, и другой файл geo json (переменная Connections), представляющий строки, начинающиеся с полигонов (строки определены). по координатам). Кроме того, у гео json линий есть свойство, которое относится к соединяющемуся многоугольнику (называемому Levee_Failure).

Цель

Я хочу переместить Наведите курсор мыши на многоугольник, чтобы линейные объекты были добавлены на карту. Однако следует добавлять только те линейные объекты, где свойство Levee_Failure соответствует идентификатору многоугольника, в котором находится мышь. При перемещении мыши от многоугольника линии должны снова исчезнуть.

Текущее состояние

До сих пор мне удавалось создавать события наведения мыши и отключения мыши. Поэтому линии нарисованы при наведении мыши и удалены при наведении мыши. Код выглядит следующим образом:

function select(feature, layer) {
  var Connections = L.geoJson(Buildings2Levees, { style: LinesStyle });
  layer.on("mouseover", function() {
    Connections.addTo(map);
  });
  layer.on("mouseout", function() {
    map.removeLayer(Connections);
  });
}

var FailuresLayer = L.geoJson(LeveeWithHouses, {
  onEachFeature: select
}).addTo(map);

Однако я застрял в фильтрации строк (переменная Connection в коде выше). Насколько я понял, в определении переменной Connections должен быть фильтр. Что-то вроде

var Connections = L.geoJson(Buildings2Levees, {filter: filter} {style: LinesStyle});

Как отфильтровать те линии, свойства которых (feature.properties.Levee_Failure) совпадают со свойствами многоугольника, над которым я сейчас нахожу (feature2.properties.LF)?

...