正在使用 Leafletjs in Angular2 、http.get
从 URL 调用 JSON,但由于预定义了 geoJSON 图层,我无法为添加到 map 的要素定义样式:
// 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());
顺便说一句,您的屏幕截图看起来显示缺少图标图像的标记(对于“点”类型功能)。在这种情况下,您应该使用 pointToLayer
而不是矢量形状(如多边形、线串等)的 style
选项。选项。
关于javascript - Angular2-Leafletjs : Defining style for L. geoJSON().addTo(myMap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414222/