我需要重新安排Google Map(v3,3.4)API中的默认控件。
一切都到位并且有效,但是当我添加 mapTypeControl , zoomControl , streetViewControl 和 panControl 到相同的 ControlPosition (即google.maps.ControlPosition.RIGHT_TOP),我无法定义它们的呈现顺序。
mapTypeControl 的默认值为TOP_RIGHT,但是将其更改为RIGHT_TOP(上面提到的其他默认值)会将其添加到此位置的底部:
这是地图选项的代码(永远不要添加OSM图层):
var mapOptions = {
zoom: 12,
center: def_center, // is set before this snippet
mapTypeControl: true,
mapTypeId: user_maptype, // is set before this snippet
mapTypeControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP,
mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.TERRAIN, "openstreetmap"]
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.DEFAULT,
position: google.maps.ControlPosition.RIGHT_TOP
},
streetViewControl: true,
streetViewControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
},
panControl: false,
panControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
},
scaleControl: false,
scaleControlOptions: {
position: google.maps.ControlPosition.BOTTOM_RIGHT
}
};
我需要将 mapTypeControl 作为第一个要渲染的元素(在streetViewControl之上)。知道怎么做吗?
答案 0 :(得分:6)
此代码在Google代码编辑器@ http://code.google.com/apis/ajax/playground/#control_position_v3
中正常运行最后解决方案是使用TOP_RIGHT
而不是RIGHT_TOP
此外,index
属性可以通过setAttribute
更改,就像大多数其他属性一样。
function initialize() {
var mapDiv = document.getElementById('map-canvas');
var map = new google.maps.Map(mapDiv, {
center: new google.maps.LatLng(37.4419, -122.1419),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.DEFAULT,
position: google.maps.ControlPosition.RIGHT_TOP
},
streetViewControl: true,
streetViewControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
},
panControl: false,
panControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
},
scaleControl: false,
scaleControlOptions: {
position: google.maps.ControlPosition.BOTTOM_RIGHT
}
});
}
答案 1 :(得分:1)
不幸的是,我确实没有解决方案,但是根据这个页面 Google Map API V3 Controls用户定义的控件可以通过更改DOM中的索引放在默认控件之前。这可能是同样的问题,变焦控制的指数低于地图/卫星控制吗? 不确定如何改变索引,但它可能是找到解决方案的途径。
哦,如果您确实知道如何解决它,请在此处粘贴您的解决方案。可能会派上用场。