Leaflet 用于显示鼠标悬停事件文本的传单框架

Leaflet 用于显示鼠标悬停事件文本的传单框架,leaflet,Leaflet,我正在使用传单框架为地图添加标记,并在地图上显示它们。我想在将鼠标悬停在标记上后显示一些文本。我编写了将所有标记添加到数组中的代码,然后在getallMarkers函数中获取所有标记,以在标记事件的鼠标上方显示文本。它适用于 ({ "echo" : function(cmp,event,helper) { var action = cmp.get("c.getLatLang"); action.setCallback(this, function(res

我正在使用传单框架为地图添加标记,并在地图上显示它们。我想在将鼠标悬停在标记上后显示一些文本。我编写了将所有标记添加到数组中的代码,然后在
getallMarkers
函数中获取所有标记,以在标记事件的鼠标上方显示文本。它适用于

({
    "echo" : function(cmp,event,helper) {
        var action = cmp.get("c.getLatLang");

        action.setCallback(this, function(response) {
        var state = response.getState();
        if (state === "SUCCESS") {
            alert("From server: >>" + response.getReturnValue());
            var strLatLng = response.getReturnValue();
            var pos = strLatLng.indexOf(';');
                if (pos == 0)
                {
                    alert('Inside POS is zero');
                    strLatLng = strLatLng.substring(1,strLatLng.length);
                    alert('AFTER cut latlang is>>' + strLatLng + '<<<');
                }
                //alert('String value is>>'+ strLatLng + '<<');
            var firstPairPos = strLatLng.indexOf(';');
            var firstPair = strLatLng.substring(0,firstPairPos);
            var value1 = firstPair.split('#');
            var allpairs = strLatLng.split(';');
            alert('ALLPAIRS array contains>>>' + allpairs + '<<');
                //alert("FIrst PAir is:>>" + value1[0] + '<<' + "value2 is>>" + value1[1]);
                var map;
                var arrMarkers=[];
                var lat = value1[1];
                var lang = value1[2];
                alert ("after first pair:: >>" + lat + ">>" + lang + "<<");
                var map = new L.Map('map');
                //map = L.map('map').setView([lat, lang], 6);
                map.setView([lat,lang], 6);

                L.tileLayer('https://api.tomtom.com/map/1/tile/basic/main/{z}/{x}/{y}.png?key={apiKey}', {
                apiKey: 'trv87gvquv8yyfr4nrwgsdzc',
                maxZoom: 18}).addTo(map);


                for (i=0;i<allpairs.length;i++)
                {
                    var j=0,k=0;
                    var newpair = allpairs[i].split('#');
                    var text = newpair[0];
                    var lat1 = newpair[1];
                    var lng1 = newpair[2];
                    alert('lat1 lang1 is allpairs loop>>'+ lat1 + '<<'+ lng1 + '<< text is>>' + text);
                    var title = text;

                     var marker = L.marker([lat1, lng1],'showtext');
                     //marker.on('mouseover',getallmarkers);
                     marker.addTo(map).bindPopup(title);
                     marker.on('mouseover',getallmarkers);
                   // arrMarkers.push(marker);

                    //map.addlayer(popup);
                    //L.marker([lat1, lng1]).addTo(map).bindPopup(title);
                    //L.marker([lat1, lng1],"this is marker title").addTo(map).bindPopup(title);

                }
            function getallmarkers()
            {
            for (l=0;arrMarkers.length>0;l++)
            {
               alert('Inside arrmarkers');
               //var markernew = arrMarkers[l];
               alert('arr markers is >>' + arrMarkers[l] + '<<');
               arrMarkers[l].on('mouseover', function(e){arrMarkers[l].openPopup();});
            }
            }
              //map.on('click', onMapClick);

            }
            else if (state === "ERROR") {

                var errors = response.getError();
                if (errors) {
                    if (errors[0] && errors[0].message) {
                        console.log("Error message: " +
                                 errors[0].message);
                    }
                } else {
                    console.log("Unknown error");
                }
            }
        });

        function onMapClick(e)
        {
                    alert("You clicked the map at ABTEST>>" + e.latlng);
                    var out = e.latlng;
                    alert("Lat Lang on out is>>" + out + "<<");
                    var lat = 51.11732;
                    var lang = 6.78955;

                    var action = cmp.get("c.getNearestVehicles");
                    alert('after getnearestvehicles call');
                    //action.setParams({"strlat":"51117320","strlang":"6789550"});
                    //alert('after setparams call');
            //

                    action.setCallback(this, function(a){
                        alert('INSIDE SETCALLBACK ACTION MAP CLICK');
                        var strLatLang1 = a.getReturnValue();
                       alert("STR LAT LANG1 is>>>" + strLatLang1 + '<<<');

                    });
                    if(callback)
                    {
                    action.setCallback(this, callback)
                    }
            //$A.enqueueAction(action);
                   //helper.callserver();
        }
        $A.enqueueAction(action);
    }
})
({
“echo”:函数(cmp、事件、帮助器){
var action=cmp.get(“c.getLatLang”);
action.setCallback(此,函数(响应){
var state=response.getState();
如果(状态==“成功”){
警报(“来自服务器:>>”+response.getReturnValue());
var strLatLng=response.getReturnValue();
var pos=strlatng.indexOf(“;”);
如果(位置==0)
{
警报(“内部POS为零”);
strLatLng=strLatLng.substring(1,strLatLng.length);

alert('AFTER cut latlang是>>'+strLatLng+'+allpairs+'>'+lat1+'>'+arrMarkers[l]+'嗯,我想你正在寻找的插件是。它是一个成熟的插件,具有多年开发的不引人注目的标签。标签很容易与这样的代码绑定

L.marker([-37.7772, 175.2606]).bindLabel('Look revealing label!').addTo(map);
演示站点位于

传单弹出窗口有点大,在地图上占据了更多的空间,但理论上它们可以与一些代码一起使用,比如

myFeatureGroup.on('mouseover',function(ev) {
  ev.layer.openPopup()
})

我正在将所有标记添加到标记数组中,我想为所有标记调用鼠标上方的openPopup事件。popup不会在地图上打开popup会为1个标记打开。但当我将所有标记放入一个数组中并尝试为所有标记打开popup时,它不起作用。传单弹出窗口一次只打开一个。如果您希望同时为多个标记显示标签时间…传单.Label是一种方法。我想一次打开一个弹出窗口,但我要说的是,弹出窗口仅显示一个标记。其他标记不显示。我正在将所有标记添加到for循环内的数组中,并在mouseover事件中尝试调用函数getallmarkers