我有一个谷歌地图,右下角有一些控件(其他 3 个角落已经被占用,所以这些都需要在同一个角落)。我是这样设置的:
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.SATELLITE],
position: google.maps.ControlPosition.RIGHT_BOTTOM
},
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL,
position: google.maps.ControlPosition.RIGHT_BOTTOM
},
streetViewControlOptions: {
position: google.maps.ControlPosition.RIGHT_BOTTOM
}
这会产生以下结果:
...看起来很傻,所以我尝试将 mapTypeControl 切换到
BOTTOM_RIGHT
位置:理想情况下,这就是我想要的(与第一个相同,但 mapTypeControl 在底部):
我已经深入研究了 API 文档,虽然看起来有一种方法可以控制自定义控件的顺序,但我看不到重新排列原生控件的方法。这可以做到吗?如果不可能像我的上一个示例那样做到这一点,是否至少有一种更好的方法来安排控件,使它们都不会像拇指酸痛一样突出?
最佳答案
根据the ControlPosition docs Controls that are added first are positioned closer to the edge of the map.
对于右下位置Elements are positioned on the right, above bottom-right elements, and flow upwards.
.
然而,这似乎与你发生的事情相矛盾。由于您只是将所有控件作为 MapOptions 规范的一部分应用,我想知道它们是否只是意味着这在添加自定义控件时适用,正如开发人员指南的另一部分提到的那样(正如您已经说过的)。
也许您可以创建自己的自定义控件,这些控件实际上只是 StreetView/MapType/Zoom 控件的扩展?但是它们看起来不像您可以仅实例化任何这些控件的实例...如果您这样做会得到什么console.log(map.controls)
?
关于google-maps - 在 Google map 上重新排序控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26868381/