Javascript 基于标记的中心单张图

Javascript 基于标记的中心单张图,javascript,html,leaflet,Javascript,Html,Leaflet,我在这方面是新手,但我找不到任何解决问题的有效方法。 我想根据标记将地图居中。我找到了很多例子,但都没有成功 有人能帮我吗 var startmarkers=[ [Paris',48.8581817,2.3454923,0'。/Paris/index.html',France'], [London',51.5097076,-0.1327514,1'。/London/index.html',UK'], [Amsterdam',52.3723963,4.8954506,2'./阿姆斯特丹/inde

我在这方面是新手,但我找不到任何解决问题的有效方法。 我想根据标记将地图居中。我找到了很多例子,但都没有成功

有人能帮我吗

var startmarkers=[
[Paris',48.8581817,2.3454923,0'。/Paris/index.html',France'],
[London',51.5097076,-0.1327514,1'。/London/index.html',UK'],
[Amsterdam',52.3723963,4.8954506,2'./阿姆斯特丹/index.html',荷兰'],
[布鲁塞尔,50.8455315,4.3554069,3'./布鲁塞尔/index.html,“比利时”],
];
var map=L.map('map').setView([49.2595092,3.5204334],6);
//var map=L.map('map').fitBounds(startmarkers.getBounds());--不起作用---
地图链接=
'';
蒂莱耶(
'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
属性:'©;'+mapLink+'Contributors',
maxZoom:18,
}).addTo(地图);
对于(变量i=0;i'+startmarkers[i][5])
.addTo(地图);
}

您需要一个数组,该数组只包含单个数组中每个标记的坐标(数组的
数组平面图
)。 然后,创建一个边界并传递
L.LatLngs
并最终拟合地图上的边界:

var-map=L.map('map').setView([49.2595092,3.5204334],6);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
属性:“©;贡献者”
}).addTo(地图);
var startmarkers=[
[Paris',48.8581817,2.3454923,0'。/Paris/index.html',France'],
[London',51.5097076,-0.1327514,1'。/London/index.html',UK'],
[Amsterdam',52.3723963,4.8954506,2'./阿姆斯特丹/index.html',荷兰'],
[布鲁塞尔,50.8455315,4.3554069,3'./布鲁塞尔/index.html,“比利时”],
];
地图链接=
'';
蒂莱耶(
'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
属性:'©;'+mapLink+'Contributors',
maxZoom:18,
}).addTo(地图);
设arrayOfMarkers=[];
for(设i=0;i'+startmarkers[i][5])
.addTo(地图);
arrayOfMarkers.push([startmarkers[i][1],startmarkers[i][2]))
}
控制台日志(arrayOfMarkers)
/*var arrayOfMarkers=[
[48.8581817, 2.3454923],
[51.5097076, -0.1327514],
[52.3723963, 4.8954506],
[50.8455315, 4.3554069],
] */
var bounds=新的L.LatLngBounds(arrayOfMarkers);
映射边界(bounds)

您需要一个数组,该数组只包含单个数组中每个标记的坐标(数组的
数组平面图
)。 然后,创建一个边界并传递
L.LatLngs
并最终拟合地图上的边界:

var-map=L.map('map').setView([49.2595092,3.5204334],6);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
属性:“©;贡献者”
}).addTo(地图);
var startmarkers=[
[Paris',48.8581817,2.3454923,0'。/Paris/index.html',France'],
[London',51.5097076,-0.1327514,1'。/London/index.html',UK'],
[Amsterdam',52.3723963,4.8954506,2'./阿姆斯特丹/index.html',荷兰'],
[布鲁塞尔,50.8455315,4.3554069,3'./布鲁塞尔/index.html,“比利时”],
];
地图链接=
'';
蒂莱耶(
'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
属性:'©;'+mapLink+'Contributors',
maxZoom:18,
}).addTo(地图);
设arrayOfMarkers=[];
for(设i=0;i'+startmarkers[i][5])
.addTo(地图);
arrayOfMarkers.push([startmarkers[i][1],startmarkers[i][2]))
}
控制台日志(arrayOfMarkers)
/*var arrayOfMarkers=[
[48.8581817, 2.3454923],
[51.5097076, -0.1327514],
[52.3723963, 4.8954506],
[50.8455315, 4.3554069],
] */
var bounds=新的L.LatLngBounds(arrayOfMarkers);
映射边界(bounds)


谢谢你的回复,这一条很有效。但是,有没有一种方法可以从数组“startmarkers”中创建只有经纬度的数组“arrayOfMarkers”?您可以执行类似于
var arrayOfMarkers=[[startmarkers[0][1],startmarkers[0][2],[startmarkers[1][1],startmarkers[1][2],…[startmarkers[n][1],startmarkers[n][2],]
,从startmarkers数组导出坐标并使用循环动态构造arrayOfMarkers数组。我尝试了这段代码,但似乎不起作用。有什么想法吗?对于(var n=0;nvar arrayOfMarkers=[[startmarkers]的事情[0][1]、startmarkers[0][2]、[startmarkers[1][1]、startmarkers[1][2]、…[startmarkers[n][1]、startmarkers[n][2]、]
,从startmarkers数组中导出坐标,并使用循环动态构造arrayOfMarkers数组。我尝试了此代码,但似乎不起作用。有什么想法吗(var n=0;n