在Google地图上重新排序控件

时间:2014-11-11 15:28:57

标签: 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文档进行了挖掘,虽然看起来有一种控制自定义控件顺序的方法,但我还没有找到重新安排本机控件的方法。可以这样做吗?如果它不可能像我上一个例子那样做,那么至少有一种更好的方法来安排控件,这样它们就不会像拇指一样伸出来吗?

1 个答案:

答案 0 :(得分:0)

根据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),你会得到什么?