- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试添加一些具有特定样式和弹出窗口的标记,但如果我使用 PointToLayer 函数,则不会调用 onEachFeature。所以我无法添加弹出窗口。
如果我只使用 onEachFeature,我可以使用 console.log(feature)
但我无法显示标记。如果我使用 pointToLayer,则不会调用 onEachFeature。
var json_chambre = L.geoJson(response, {
pointToLayer: function(feature, latlng) {
var markerCh = L.circleMarker(latlng, {
radius: 5,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
});
chambre_pit.addLayer(markerCh);
},
onEachFeature: function(feature, layer) {
console.log(feature);
}
});
没有错误,只是我不能同时弹出窗口和样式。
最佳答案
让我引用Leaflet reference for the pointToLayer
callback option :
A
Function
defining how GeoJSON points spawn Leaflet layers. It is internally called when data is added, passing the GeoJSON point feature and itsLatLng
. The default is to spawn a defaultMarker
:function(geoJsonPoint, latlng) {
return L.marker(latlng);
}
注意到它和你的代码有什么不同吗? pointToLayer
回调返回 L.Marker
的实例,并将其添加到 L.GeoJson
实例中(它是 L.LayerGroup
的子类)。
由于您不返回标记(或图层)实例,L.GeoJson
实例最终为空,并且 onEachFeature
循环遍历总共零个要素+层对。
另请注意,您不需要在 onEachFeature
步骤附加弹出窗口,即:
var json_chambre = L.geoJson(response, {
pointToLayer: function(feature, latlng) {
var markerCh = L.circleMarker(latlng, {
radius: 5,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
});
markerCh.bindPopup(feature.properties.label); // Or whatever
return markerCh; // And do return the marker so it gets added to json_chambre.
}
});
关于javascript - onEachFeature 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56751345/
我正在尝试添加一些具有特定样式和弹出窗口的标记,但如果我使用 PointToLayer 函数,则不会调用 onEachFeature。所以我无法添加弹出窗口。 如果我只使用 onEachFeature
我想调用应用于每个国家/地区图层的 onEachFeature 之外的函数。 我要声明的函数是Leaflet点击层上的PopUp(示例:如果单击France层,则调用函数showflag作为sweet
我正在尝试将两个功能组合到一个图层上,但无法同时使用它们。一个是突出显示光标悬停的区域,另一个是在弹出窗口中获取信息。我使用本指南来突出显示:http://leafletjs.com/examples
我是 javaScript 和 Leaflet 的新手,可能我做错了什么,但我想不通。我有 map 和六底。每次用户按下不同的底部时, map 中的标记都会更改以显示不同的数据。到目前为止,一切都很好
我正在尝试将鼠标悬停事件添加到我的 map :目的是当我将鼠标悬停在 map 上时,在 map 外的表格中显示一些多边形属性。但这似乎不起作用。有任何想法吗?我的 JS 知识很差,我认为它可能适用于这
我当前的代码仅根据此 json 文件中的数据绑定(bind)标记 {"type": "FeatureCollection", "features": [{ "geometry": {"type
我尝试通过 function onEachFeature 访问每个 feature 的 _leaflet_id。它总是返回 undefined,当它用于: function onEachFeature
我有一个可用的 geojson 多边形 map ,其中 leaflet.js 。当用户单击多边形时,我使用 onEachFeature onclick 进行超链接。 如何在 attribute = 0
我已经创建了 map 并将其与我的 geojson api 连接。基本上我希望将每个标记弹出窗口与 ng-click 链接起来。像这样放置简单的 html 是行不通的,因为我必须编译它: layer.
我当前遇到的问题是我有多个包含形状文件的tileLayer。每个图 block 层代表基于某些变量的不同数据集,并相应地改变颜色。 如果我创建三个单独的对象(L.shapefile(“”,{})...
我正在处理传单中的 geojson 数据。在他们的指南中 http://leafletjs.com/examples/geojson.html他们写道,有两种方法可以将 geojson 数据添加到 m
我在 Mapbox 中使用此函数与 geoJson 来使用 simplestyle 中的样式标记 var groupThree = new L.LayerGroup(); L.geoJson(laye
我是一名优秀的程序员,十分优秀!