Leaflet circleMarker всплывающее окно теперь показывает - PullRequest
0 голосов
/ 14 сентября 2018

Я не могу заставить CircleMarkers показывать связанные всплывающие окна в Leaflet.Вот что я делаю:

 var markerGroup;
 fetch("<FILE_NAME_REMOVED>").then(function(response){
           return response.text();
      }).then(function(text){

       var lines = text.split("\n");
       var markerArray = [];

        for (var i=1; i<lines.length; i++) {
          var parts = lines[i].split(",");
            if (typeof parts[2] !='undefined') {

              marker =  new L.CircleMarker([parts[3],parts[2]], {
                                             radius: 4,
                                             color: 'red',
                                             opacity: 0.95,
                                             weight: 1.2,
                                             dashArray: "2,3",
                                             fillOpacity: 0.2
          }).bindPopup("I am at " + parts[0] + "," + parts[1]);
             markerArray.push(marker);
         };
       }

       markerGroup = L.featureGroup(markerArray).addTo(map);
          map.fitBounds(markerGroup.getBounds());
         }).catch(function(err){
            console.log(err);
       });

Всплывающие окна просто не отображаются - на самом деле, когда я нажимаю на круги, карта просто увеличивается. Если я заменю L.CircleMarker просто L.Marker, хотяработает нормально, но на самом деле мне нужны круги.

Я даже пытался добавить функцию маркера при нажатии, но ничего не вышло.

Может кто-нибудь помочь?Я использую листовку 1.3.4.

РЕДАКТИРОВАТЬ:

Я не упомянул (потому что я не думал, что это имеет значение), что маркеры добавляются в последнюю очередькарта, но карта также имеет слой geoJson.Я заметил (случайно), что всплывающие окна очень хорошо отображаются в области карты, не покрытой слоем geoJson.Это странно для меня, потому что слой geojson установлен обратно с самого начала:

         var datalayer;
          $.getJSON("<FILE_NAME_REMOVED>",function(data){
              datalayer = L.geoJson(data ,{
                     onEachFeature: function(feature, featureLayer) {

                       featureLayer.setStyle({fillColor: 'white'});
                       featureLayer.setStyle({weight:1});
                       featureLayer.setStyle({fillOpacity:0.1});
                       featureLayer.bringToBack();
                    }
                   }).addTo(map);
                map.fitBounds(datalayer.getBounds());
          });
...