Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Javascript 使用层支持将阵列中的标记添加到传单中的标记聚类中_Javascript_Arrays_Multidimensional Array_Leaflet - Fatal编程技术网

Javascript 使用层支持将阵列中的标记添加到传单中的标记聚类中

Javascript 使用层支持将阵列中的标记添加到传单中的标记聚类中,javascript,arrays,multidimensional-array,leaflet,Javascript,Arrays,Multidimensional Array,Leaflet,我正在尝试使用包含纬度、经度、弹出信息和图层定义的多维数组填充传单地图。问题是,其中两个标记应转到第1层,另外两个标记应转到第2层。就其本身而言,所有四个标记都属于这两个层。谢谢你的帮助 var layer1 = new L.LayerGroup(); var layer2 = new L.LayerGroup(); var map = L.map('map', { minZoom: 3, maxZoom: 9, layers: [layer1, layer2] }); L.tileLaye

我正在尝试使用包含纬度、经度、弹出信息和图层定义的多维数组填充传单地图。问题是,其中两个标记应转到第1层,另外两个标记应转到第2层。就其本身而言,所有四个标记都属于这两个层。谢谢你的帮助

var layer1 = new L.LayerGroup();
var layer2 = new L.LayerGroup();

var map = L.map('map', {
minZoom: 3,
maxZoom: 9,
layers: [layer1, layer2]
});

L.tileLayer('http://{s}.www.toolserver.org/tiles/bw-mapnik/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'}).addTo(map);

var overlays = {
"layer1": layer1,
"layer2": layer2
};

L.control.layers(null, overlays).addTo(map);

var markersList = [];
var markersList = [
[41.15,-8.61,'popup1','layer1'],
[41.15,-8.61,'popup2','layer1'],
[41.15,-8.31,'popup3','layer2'],
[41.15,-8.31,'popup4','layer2']
];

var markers = new L.MarkerClusterGroup();

for (var i = 0; i < markersList.length; i++) {
markers.addLayer(new L.marker([markersList[i][0], markersList[i][1]]).bindPopup(markersList[i][2]));
markers.addTo(this[markersList[i][3]]);
};
var layer1=新的L.LayerGroup();
var layer2=新的L.LayerGroup();
var map=L.map('map'{
minZoom:3,
最大缩放:9,
图层:[图层1,图层2]
});
L.tileLayer('http://{s}.www.toolserver.org/tiles/bw mapnik/{z}/{x}/{y}.png'{
属性:“©;贡献者,”}).addTo(映射);
变量覆盖={
“layer1”:layer1,
“第二层”:第二层
};
L.控制。图层(空,覆盖)。添加到(地图);
var-markersList=[];
变量标记列表=[
[41.15,-8.61,'popup1','layer1',],
[41.15,-8.61,'popup2','layer1',],
[41.15,-8.31,'popup3','layer2',],
[41.15,-8.31,'popup4','layer2']
];
var markers=新的L.MarkerClusterGroup();
对于(变量i=0;i
MarkerClusterGroup仅支持添加标记,不支持添加图层组。如果您想通过layercontrol实现这一点,您应该使用两个MarkerCluster,以便可以切换它们。代码:

var tileLayer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  'attribution': 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors'
});

var markersList = [
  [41.15, -8.61, 'popup1', 'cluster1'],
  [41.15, -8.61, 'popup2', 'cluster1'],
  [41.15, -8.31, 'popup3', 'cluster2'],
  [41.15, -8.31, 'popup4', 'cluster2']
];

var cluster1 = new L.MarkerClusterGroup();
var cluster2 = new L.MarkerClusterGroup();

for (var i = 0; i < markersList.length; i++) {
  this[markersList[i][3]].addLayer(new L.marker([markersList[i][0], markersList[i][1]]).bindPopup(markersList[i][2]));
};

var map = new L.Map('map', {
  'center': [0, 0],
  'zoom': 1,
  'layers': [tileLayer, cluster1, cluster2]
});

var overlays = {
  "Cluster 1": cluster1,
  "Cluster 2": cluster2
};

L.control.layers(null, overlays).addTo(map);
var tileLayer=newl.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
“属性”:“地图数据©贡献者”
});
变量标记列表=[
[41.15,-8.61,'popup1','cluster1'],
[41.15,-8.61,'popup2','cluster1'],
[41.15,-8.31,'popup3','cluster2'],
[41.15,-8.31,'popup4','cluster2']
];
var cluster1=新的L.MarkerClusterGroup();
var cluster2=新的L.MarkerClusterGroup();
对于(变量i=0;i
关于Plunker的示例: