javascript - 传单计时器。每秒突出显示不同的城镇(多边形)

标签 javascript leaflet gis

我有一张使用 Leaflet 的包含 4 个城镇的 map 。 Mouseover 和 Mouseout 工作正常,但我想要一个计时器,每 5 或 10 秒自动轮流关注每个城镇。我试图在文档中找到一种方法来查找 map 上的所有多边形,然后无限循环到这些多边形中,但我无法单独访问它们以应用函数来突出显示和重置样式。

$.getJSON('./data/mymap.json', function (geojson) {
var geojsonLayer = new L.GeoJSON(geojson, {
    style: function () {
        return {
            color: 'blue'
        }
    },
    onEachFeature: function (feature, layer) {
        layer.on('mouseover', function () {
            this.setStyle({
                color: 'green'
            });
            document.getElementById("mapdetails").innerText = layer.feature.properties.name;
        });
        layer.on('mouseout', function () {
            geojsonLayer.resetStyle(this);
            document.getElementById("mapdetails").innerText = '';
        });
        layer.on('click', function () {
            mymap.fitBounds(arrayBounds);
        });
    }
}).addTo(mymap);

});

function highlightLayer(layerID) {
    mymap._layers['name'+layerID].setStyle(highlight); }

var highlight = {
    'color': '#333333',
    'weight': 2,
    'opacity': 1 };

$(document).ready(function() {

    var layerGroup = L.LayerGroup([polygon]);

    for (var i in this._layers) {
        if (this._layers[i].options.name == 'Mytown') {
            console.log('found');
        }
    }

最佳答案

您必须从 geojsonLayer 调用 everyLayer() 或 getLayers()。


var i = 0;
function highlightLayer(){
   setTimeout(function(){
      geojsonLayer.resetStyle(); //To clear style of all layers
      var layers =  geojsonLayer.getLayers();
      if(layers.length >= i){
         i = 0;
      }
      layers[i].setStyle(highlight);
      i++;
      highlightLayer(); //Restart Timer
   },1000);
}

关于javascript - 传单计时器。每秒突出显示不同的城镇(多边形),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60265609/

相关文章:

javascript - Leaflet路由控制新路由错误

r - 在ggplot2 map /geom_polygon中仅绘制外边界

javascript - 随机 Meme 命令 (discord.js v13)

javascript - 使用django从html格式下载图像到本地主机

javascript - Leaflet Marker Cluster覆盖路径选项

google-maps - Leafletjs map - map.invalidateSize 不起作用

c# - 如何通过 .NET 使用外部数据(XML、SQL Server)创建 MapInfo 选项卡文件

r - 将 ggplot map 导出到 KML 时出错

javascript - react onClick 不触发 es6

javascript - 下划线不会从 html 中消失