Javascript 传单。标签未显示在标记上
我有一组geoJSON点,它们有相应的标签Javascript 传单。标签未显示在标记上,javascript,google-maps,google-maps-markers,z-index,leaflet,Javascript,Google Maps,Google Maps Markers,Z Index,Leaflet,我有一组geoJSON点,它们有相应的标签 var points = L.geoJson (null, { onEachFeature: function (feature, layer) { layer.options.riseOnHover=true; //tried adding this layer.options.riseOffset=9999; //as well as this layer.bindLabel(feature.
var points = L.geoJson (null, {
onEachFeature: function (feature, layer) {
layer.options.riseOnHover=true; //tried adding this
layer.options.riseOffset=9999; //as well as this
layer.bindLabel(feature.properties["name"], {className: 'map-label'});
L.setOptions(layer, {riseOnHover: true}); //this as well
}
});
这是通过JSON文件中的每个特性并创建点集的代码。现在,向地图添加标记的实际功能如下所示:
var addJsonMarkers = function() {
map.removeLayer(markers);
points.clearLayers();
markers = new L.layerGroup();
points.addData(dataJson);
markers.addLayer(points);
map.addLayer(markers);
return false;
};
我遇到的问题是,无论我尝试添加什么(你可以看到我的评论),标签总是在标记后面,这不是预期的行为
我想把标签贴在上面。我尝试手动更改map label
类中的z-index
,以及使用riseOnHover
的众多解决方案,这似乎是解决此问题的方法,但标签仍然落后。有人看到我做错了什么吗
可以看到完整的代码看看bringToFront()和bringToBack()方法,为标记创建一个组函数并将其返回,同时使用标签执行相反的操作。或者,如果您没有找到解决方案,可以添加L.info以显示信息。看看这里,也许这会有所帮助:
将您的代码也张贴到某个地方,以便我可以查看。在
bindable
选项中指定popupane
为pane
:
layer.bindLabel(
feature.properties["name"],
{
className: 'map-label',
pane:'popupPane'
}
);
在传单中,Popupane高于markerPane,因此您的标签将显示在标记的顶部
有一个用于传单的小文档。带有选项说明的标签
还要检查这个jsfiddle:您需要查看标签附着到地图的哪个窗格,并将其移动到标记上方的一个窗格。您还可以查看标记的{optimized:false}(如果有)。它被附加到
传单标记窗格
,作为div中所有标记列表的最后一个元素。感谢您的回答。你可以在这里看一下我的代码:我不太熟悉如何做更高级的事情,比如为标记和标签创建组函数,因为我依赖于这个小册子.label插件及其bindLabel()
函数,所以我不确定在后台实际做了什么。试着评论一下:layer.on({单击:highlightFeature});仍然是一样的。但是,我需要那个监听器,因为当点击标记时,我会在右角弹出一个很好的信息,其中包含一些内容。
只是一个占位符。您是否尝试移动css窗格顺序?查看传单。csw移动窗格顺序是什么意思?这样做了。我在文档中忽略了这个选项点击并在错误的位置搜索解决方案。谢谢!只是确认options.pane='popupane';解决方案。我在传单JS 0.7.3和0.7.5中没有这个问题,但当我切换到传单JS 1.0.0-beta时,它困扰着我。通过JS和/或CSS摆弄zIndex根本不起作用。但是使用options.pane确实起作用。