gpt4 book ai didi

javascript - Leaflet:单击时将标记置于前面

转载 作者:行者123 更新时间:2023-12-02 22:28:29 24 4
gpt4 key购买 nike

有没有一种方法可以将标记置于前面? ZoomMarker 是标记的详细信息,当单击详细信息时,(最大缩放为 11,因此标记彼此更接近,标签无法读取) 它将平移,但由于最大缩放为11、它看不到哪里有那么多标记。 (这是一张传单大风 map ,这就是为什么最大缩放只有11)

$("#mapContainer").on("click",".zoomMarker",function(){
var zoom;
var zoomValueIn;
var no = $(this).attr("mapNo");
var deviceID = $(this).attr("deviceID");

var events = findMapNo(no).eventData[deviceID].events;
findMapNo(no).map.setZoom(19);

if( events.length>0 ){
var eventsIndex = findMapNo(no).eventData[deviceID].events.length-1;
var temp_content = createPopupContent(deviceID, eventsIndex, no);
var lat = events[events.length-1][4];
var lng = events[events.length-1][3];
var latLng = new L.latLng(lat, lng);

findMapNo(no).map.setZoom(19);
var Oldzoom = findMapNo(no).map.getZoom();

popup = L.popup({
permanent: true,
autoPan: false,
minWidth: 200,
closeOnClick: true,
minHeight: 200,
offset: [0, -12]})
.setLatLng(latLng)
.setContent(temp_content);

if(Oldzoom == Oldzoom){
findMapNo(no).map.removeLayer(markersCluster);
findMapNo(no).map.addLayer(markersLayer);
findMapNo(no).map.panTo(latLng);
//should bring to front the marker
if(findMapNo(no).map.hasLayer(markersLayer)){
findMapNo(no).map.openPopup(popup);
}
}

findMapNo(no).map.on("zoomend", function (e) {
zoom = this.getZoom();
var diff = Oldzoom - zoom;
if(diff > 0 || diff < 0){
if(diff > 0){
findMapNo(no).map.closePopup(popup);
}else{
if(zoom == zoom){
if(diff < 0){
diff = diff - 1;
}else if(diff > 0){
diff = diff + 1;
}else if(diff == 0){
//should bring to front the marker
findMapNo(no).map.panTo(latLng);
findMapNo(no).map.openPopup(popup);
}
}
Oldzoom = zoom;
//should bring to front the marker
findMapNo(no).map.removeLayer(markersCluster);
}
findMapNo(no).map.removeLayer(markersLayer);
findMapNo(no).map.addLayer(markersCluster);
}

Oldzoom = zoom;
});
}else{
toaster("Marker No Location","warning");
}
});

最佳答案

您可以通过将鼠标悬停在标记出现在前面的方式来使用选项riseOnHover

var marker = L.marker([lat,lng], {riseOnHover: true});      
marker.addTo(map);

我也有同样的问题。我读到标记没有 BringToFront() 选项,因为它们是从北到南引导的。北部的标记位于顶部

关于javascript - Leaflet:单击时将标记置于前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58989116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com