Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Leaflet 如何获得传单上的所有标记_Leaflet - Fatal编程技术网

Leaflet 如何获得传单上的所有标记

Leaflet 如何获得传单上的所有标记,leaflet,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&

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

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

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]

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

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]

});
var-map=L.map('map').setView([37.78541,-122.40787],13);
var markers=新的L.FeatureGroup();
var映射链接=
'';
蒂莱耶(
'https://{s}.tiles.mapbox.com/v4/examples.map-i87786ca/{z}/{x}/{y}.png?access_-token=pk.eyj1ijoiz2vja29iiiiwiysi6indzvjrgn0kiq.lToORsjE0lkt-vq2skob-Q'{
属性:'©;'+mapLink+'Contributors',
maxZoom:18,
}).addTo(地图);
var marker=createCircleMarker([44.977368,-93.232659]);
标记器。_id=“69”//标记的Id
添加图层(标记);
var socket=io();
socket.on('update location',函数(obj){
//获取所有标记并查找属性为obj.name to的标记
//将位置更新为[obj.lat,obj.lon]
});

在L.map上使用
每层方法。像

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

位于的文档,无需使用
map.eachLayer
即可添加选项;地图中的所有图层都内部存储在
map.\u layers

使用


迭代所有层元素。不仅仅是当前可见的传单。

此功能将仅检索您当前在屏幕中看到的传单对象。不是地图上当前看不到的全部对象。