google-maps - 在 Google map 上重新排序控件

标签 google-maps google-maps-api-3

我有一个谷歌地图,右下角有一些控件(其他 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/

相关文章:

javascript - 使用谷歌地图javascript api v3的具有独特信息窗口的多个标记

Android Google Maps V2 - 指示屏幕上当前 VisibleRegion 之外是否有标记

google-maps - 地理编码API超出查询限制

Clusterer 中底部带有框形状的 Android map 自定义信息窗口

php - 用 php 显示谷歌地图标记

javascript - 如何在不与谷歌地图重叠的情况下对标记进行聚类?

javascript - 谷歌地图 : How to avoid google map usage limit of 25000 maps load per day

javascript - 从我的数据库加载谷歌地图标记

google-maps-api-3 - Google map v3 可拖动标记

google-maps - Google map javascript API - 应用 KML 层后 map 对象重新居中。我该如何防止这种情况?