gpt4 book ai didi

google-maps - Google Maps API 3 fitBounds 填充 - 确保标记不会被覆盖的控件遮挡

转载 作者:行者123 更新时间:2023-12-03 10:09:19 26 4
gpt4 key购买 nike

我希望能够在调用 map.fitBounds() 后向 map View 添加填充。 ,因此无论 map 控件或滑动面板之类的东西在打开时会覆盖标记,所有标记都可见。传单上有 option to add padding to fitBounds ,但谷歌地图没有。

有时,最北端的标记部分隐藏在视口(viewport)上方。最西端的标记也经常位于缩放 slider 下方。使用 API 2,可以通过减少 map 视口(viewport)中的给定填充来形成虚拟视口(viewport),然后调用方法 showBounds()根据该虚拟视口(viewport)计算并执行缩放和居中:

map.showBounds(bounds, {top:30,right:10,left:50});

可以在 here 中找到 API 2 的一个工作示例。在 showBounds() 示例链接下。

我在 API V3 中找不到类似的功能,但希望有另一种方法可以实现。也许我可以捕获东北点和西南点,然后在包含它们之后添加假坐标以进一步扩展边界?

更新

( Codepen 如果下面的代码不起作用)

function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
draggable: true,
streetViewControl: false,
zoomControl: false
});

var marker1 = new google.maps.Marker({
position: {lat: 37, lng: -121},
map: map,
});

var marker2 = new google.maps.Marker({
position: {lat: 39.3, lng: -122},
map: map,
});

var bounds = new google.maps.LatLngBounds();
bounds.extend(marker1.position);
bounds.extend(marker2.position);
map.fitBounds(bounds);
}
#map {
height: 640px;
width: 360px;
}
#overlays {
position: absolute;
height: 50px;
width: 340px;
background: white;
margin: -80px 10px;
text-align: center;
line-height: 50px;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Simple markers</title>

</head>
<body>
<div id="map"></div>
<div id="overlays">Controls / Order pizza / ETA / etc.</div>

<script async defer
src="https://maps.googleapis.com/maps/api/js?&callback=initMap">
</script>
</body>
</html>


问题是这样的:

enter image description here

我已经尝试添加一个控件,如 Custom controls 中所述。 ,但 map 并不完全了解它 - 请参阅 this fiddle来自 Maps custom control example .其中一个标记仍被控件遮挡。

最佳答案

自 2017 年 6 月起,Maps JavaScript API 支持 fitBounds() 方法中的填充参数。

fitBounds(bounds:LatLngBounds|LatLngBoundsLiteral, padding?:number)
请参阅文档以获取更多详细信息
https://developers.google.com/maps/documentation/javascript/reference#Map

关于google-maps - Google Maps API 3 fitBounds 填充 - 确保标记不会被覆盖的控件遮挡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339365/

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