Angular2-Leafletjs: определение стиля для L.geoJSON (). AddTo (myMap)

1

Я использую Leafletjs в Angular2, http.get чтобы вызывать JSON из URL-адреса, но я не могу определить стиль для функций, добавленных в карту из-за предопределения слоя geoJSON:

  // Add an empty layer to the map
  var geoJsonLayer1 = L.geoJSON().addTo(myMap);

  // Retrieve the geojson file
  http.get(myJsonURL)
  .map((response: Response) => {
      geoJsonLayer1.addData(response.json());
  }).subscribe();

Слой geoJSON не имеет стиля и выглядит следующим образом:

Изображение 174551

Причина, по которой я предопределяю этот слой, - это lzy-load файл JSON. Регулярно мы можем определить стиль, как показано ниже:

L.geoJSON(myLines, {
    style: myStyle
}).addTo(map);

Теперь мой вопрос: как определить стиль для предопределенного слоя?

Теги:
angular
leaflet
geojson

1 ответ

0

Просто предопределите слой без данных...

var geoJsonLayer1 = L.geoJSON(null, {
  style: myStyle
}).addTo(map);

// Later on…
geoJsonLayer1.addData(response.json());

Кстати, ваш скриншот показывает маркеры (для функций типа "Point") с отсутствующим изображением значка. В этом случае вместо опции style для векторных фигур (например, полигонов, строк и т.д.) Вы должны использовать параметр pointToLayer.

  • 0
    Спасибо за ваш комментарий. Я попытался определить нулевой слой и указать стиль, но, к сожалению, это не сработало в Angular2. Что касается pointToLayer, в этом конкретном примере набор данных был точечным, но это мог быть многоугольник или полилиния.
  • 0
    Я не вижу, как Angular изменит поведение Leaflet. Если вы можете предоставить MCVE и в идеале живой пример, который воспроизводит вашу проблему, можно было бы увидеть, что не так, иначе я боюсь, что мало что можно сделать дальше.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню