Angular2-Leafletjs:为L.geoJSON()定义样式.addTo(myMap)

时间:2017-06-07 13:34:05

标签: javascript angular leaflet geojson

上午使用 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图层没有任何样式,如下所示:

enter image description here

我正在预定义图层的原因是,我懒得加载JSON文件。以常规方式,我们可以定义如下样式:

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

现在我的问题是,如何定义预定义图层的样式?

1 个答案:

答案 0 :(得分:0)

只需预定义没有数据的图层......

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

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

顺便说一下,您的屏幕截图看起来显示缺少图标图像的标记(适用于"Point"类型功能)。在这种情况下,您应该使用pointToLayer选项,而不是矢量形状的style选项(如多边形,线条等)。