Слой листовки с точками и полигонами - PullRequest
1 голос
/ 22 апреля 2020

У меня есть этот код для добавления слоя geo JSON на карту. Данные содержат как Точки, так и Полигоны, и я хочу, чтобы оба типа обновляли свои цвета.

var AgentLayer = L.geoJSON().addTo(Lmap)

var geojsonMarkerOptions = {
    radius: 2,
    fillColor: "#ff7800",
    color: "#000",
    weight: 1,
    opacity: 1,
    fillOpacity: 0.8
  }

this.render = function (data) {
    AgentLayer.remove()
    console.log(data)
    AgentLayer = L.geoJSON(data, {
        // style: function (feature) {
        //   return {color: feature.properties.color};
        // }
      pointToLayer: function (feature, latlang) {
        return L.circleMarker(latlang, {radius:feature.properties.radius, color: feature.properties.color});
      }
    }).addTo(Lmap)
  }

Все объекты прорисованы, но Полигоны берут синий цвет по умолчанию, а не тот, который у них есть на самом деле. назначены. Очки обновляются правильно. Три закомментированные строки с style обновляют цвет полигонов (а не точек), только если у меня нет трех pointToLayer линий.

Возможно ли обрабатывать оба обновления цвета в одном и том же слой (потому что данные смешиваются с точками и полигонами)?

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

1 Ответ

1 голос
/ 23 апреля 2020

Я подозреваю, что это просто опечатка:

AgentLayer = L.geoJSON(data, {
      style: function (feature) {
           return {color: feature.properties.color};
      }, // probably misses the comma to separate the object properties
      pointToLayer: function (feature, latlang) {
        return L.circleMarker(latlang, {
          radius:feature.properties.radius,
          color: feature.properties.color
        });
      }
    }).addTo(Lmap)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...