Javascript Angular2传单JS:定义L.geoJSON().addTo(myMap)的样式

Javascript Angular2传单JS:定义L.geoJSON().addTo(myMap)的样式,javascript,angular,leaflet,geojson,Javascript,Angular,Leaflet,Geojson,在am中,使用,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) => { geoJsonLa

在am中,使用
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层没有任何样式,如下所示:

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

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

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

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

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

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

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

顺便说一句,您的屏幕截图显示缺少图标图像的标记(用于
“点”
类型功能)。在这种情况下,不应使用矢量形状(如多边形、线串等)的
style
选项。

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

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

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

顺便说一句,您的屏幕截图显示缺少图标图像的标记(用于
“点”
类型功能)。在这种情况下,您应该使用该选项,而不是矢量形状(如多边形、线字符串等)的
style
选项。

谢谢您的评论。我曾试图定义一个空层并指定样式,但不幸的是,在Angular2中它没有以这种方式工作。关于pointToLayer,在这个特定的示例中,数据集是点,但它可以是多边形或多段线。我不认为角度会如何改变传单的行为。如果你能提供一个MCVE,最好是一个真实的例子来重现你的问题,那么就有可能看出问题出在哪里,否则恐怕没有什么可以做的了。我已经在github上进行了回购:。在这里你可以看到代码。在src/app/app.components.ts的第100行中,当您预定义lazyloading的图层时,您将面临此问题。请提供一个,我不会浏览您的全部代码。谢谢您的评论。我曾试图定义一个空层并指定样式,但不幸的是,在Angular2中它没有以这种方式工作。关于pointToLayer,在这个特定的示例中,数据集是点,但它可以是多边形或多段线。我不认为角度会如何改变传单的行为。如果你能提供一个MCVE,最好是一个真实的例子来重现你的问题,那么就有可能看出问题出在哪里,否则恐怕没有什么可以做的了。我已经在github上进行了回购:。在这里你可以看到代码。在src/app/app.components.ts的第100行中,当您为lazyloading预定义图层时,您将面临此问题。请提供一个,我不会详细介绍您的全部代码。