gpt4 book ai didi

javascript - 如何设置 map 缩放以覆盖所有标记可见标记?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:49 25 4
gpt4 key购买 nike

我创建了一个带有标记的 map ,这些标记从 mongodb 集合中获取 latlongs 数据。我已将中心设置为特定位置并将缩放级别设置为 5,但我希望 map 应根据标记的位置放大或缩小.所以我不必在中心给出任何特定位置。请帮忙。

代码如下 -

 <div class="page-content">
<div id="tab-general">
<div id="map" style="height: 500px; width: 100%;">

</div>
</div>
</div>

<script type="text/javascript">
//LOAD DATA FROM MONGO
data= <%-JSON.stringify(data)%>

</script>
<script type="text/javascript">

var LatLngs = [];
for (j=0;j<data.length;j++){

LatLngs[j] = [data[j].latitude, data[j].longitude, data[j].time, data[j].name];

}

var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(23.2500, 77.4170),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
});

var infowindow = new google.maps.InfoWindow();

var marker, i ,ext;


for (i = 0; i < LatLngs.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(LatLngs[i][0], LatLngs[i][1]),
map: map
});

google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent("Time - "+LatLngs[i][2]+"<br>User Name -"+LatLngs[i][3]);
infowindow.open(map, marker);
}
})(marker, i));
}

谢谢,

直径

最佳答案

您要做的是创建一个 LatLngBounds 对象。添加每个标记时,您会扩展边界以包括该标记的位置。添加所有标记后,您可以更新 map 以适应这些边界,它会自动调整其缩放比例,以便所有标记都可见。

var bounds = new google.maps.LatLngBounds();

for (i = 0; i < LatLngs.length; i++) {
position = new google.maps.LatLng(LatLngs[i][0], LatLngs[i][1]);

marker = new google.maps.Marker({
position: position,
map: map
});

bounds.extend(position)
}

map.fitBounds(bounds);

关于javascript - 如何设置 map 缩放以覆盖所有标记可见标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32859884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com