上午使用 Leafletjs in Angular2 ,http.get
从网址调用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);
现在我的问题是,如何定义预定义图层的样式?
答案 0 :(得分:0)
只需预定义没有数据的图层......
var geoJsonLayer1 = L.geoJSON(null, {
style: myStyle
}).addTo(map);
// Later on…
geoJsonLayer1.addData(response.json());
顺便说一下,您的屏幕截图看起来显示缺少图标图像的标记(适用于"Point"
类型功能)。在这种情况下,您应该使用pointToLayer
选项,而不是矢量形状的style
选项(如多边形,线条等)。