如何在Leaflet上获得所有标记

gec*_*kob 5 leaflet

我有一个监听器,可以检测数据库上对象位置的变化.它将传递正在更改的对象的所有信息.

我想从当前地图中获取所有标记,并找到受影响的标记.找到后,更新位置.

但是,我仍在寻找从地图中获取所有标记的最佳方法,然后我可以更新位置.

var map = L.map('map').setView([37.78541,-122.40787], 13);
var markers = new L.FeatureGroup();
var mapLink =
    '<a href="http://openstreetmap.org">OpenStreetMap</a>';
L.tileLayer(
    'https://{s}.tiles.mapbox.com/v4/examples.map-i87786ca/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoiZ2Vja29iIiwiYSI6IndzVjRGN0kifQ.lToORsjE0lkt-VQ2SXOb-Q', {
        attribution: '&copy; ' + mapLink + ' Contributors',
        maxZoom: 18,
    }).addTo(map);

var marker = createCircleMarker([44.977368, -93.232659]);
marker._id = "69"; // Id of the marker
map.addLayer(marker);
var socket = io();

socket.on('update location', function(obj) {
     // Get all markers and find markers with attribute obj.name to 
     // update the location to [obj.lat,obj.lon]

});
Run Code Online (Sandbox Code Playgroud)

snk*_*his 10

eachLayer在L.map上使用方法.喜欢

map.eachLayer(function (layer) { 
    if (layer.options.name === 'XXXXX') {
        layer.setLatLng([newLat,newLon])
    } 
});
Run Code Online (Sandbox Code Playgroud)

http://leafletjs.com/reference-1.2.0.html#map-eachlayer上的文档

  • 此功能将仅检索您当前在屏幕中看到的传单对象.不是你目前没有看到的地图上的整个对象. (2认同)