在使用Leafletjs in Angular2,http.get
从URL调用JSON时,由于预先定义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图层没有任何样式,其外观如下:
我预定义该层的原因是,我正在延迟加载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
选项。关于javascript - Angular2-Leafletjs:定义L.geoJSON()。addTo(myMap)的样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44414222/