Я использую 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 не имеет стиля и выглядит следующим образом:
Причина, по которой я предопределяю этот слой, - это lzy-load файл JSON. Регулярно мы можем определить стиль, как показано ниже:
L.geoJSON(myLines, {
style: myStyle
}).addTo(map);
Теперь мой вопрос: как определить стиль для предопределенного слоя?
Просто предопределите слой без данных...
var geoJsonLayer1 = L.geoJSON(null, {
style: myStyle
}).addTo(map);
// Later on…
geoJsonLayer1.addData(response.json());
Кстати, ваш скриншот показывает маркеры (для функций типа "Point"
) с отсутствующим изображением значка. В этом случае вместо опции style
для векторных фигур (например, полигонов, строк и т.д.) Вы должны использовать параметр pointToLayer
.