在Leaflet容器中显示GeoJSON属性时遇到问题

时间:2018-11-12 13:14:19

标签: javascript popup leaflet geojson

我正在尝试在传单地图中创建一个动态弹出窗口,并在其中放置了一个链接。当您单击链接时,我希望在页面上显示一个预定义的容器,该容器显示GeoJSON图层中的某些属性。

我设法使弹出窗口正常工作并链接了。容器也会出现,但是无论我尝试什么,容器中的文本都保持不变。

将弹出窗口绑定到的多边形图层如下所示:

var container = $('<div />');

  var poly = new L.GeoJSON.AJAX("polygons.geojson", {
     style: {"color": "red",
     "weight": 5,
     "opacity": 0.65},
     onEachFeature: function(feature, layer){
         container.on('click', '.smallPolygonLink', function() {
           if (feature.properties.attribute1 == 'value1') {
               alert("This is one message");
             }
             else if (feature.properties.attribute1 == 'value2'){
               alert("this is another message");
             }
       });
       }
       });

应该发生的是,容器应该根据值用两个字符串之一填充。以下代码似乎是弹出窗口的内容:

container.html("This is a link: <a href='#' class='smallPolygonLink'>Click me</a>.");
container.append($('<span class="bold">').text(" :)"))

上面所有代码的问题是,它会产生无限循环,并且消息不取决于属性的值。

希望可以为您提供帮助

0 个答案:

没有答案