Javascript 同一位置(即右上方)谷歌地图控件的更改顺序
我需要重新排列GoogleMap(v3,3.4)API中的默认控件 一切都准备就绪并正常工作,但当我将mapTypeControl、zoomControl、streetViewControl和panControl添加到同一个ControlPosition(即google.maps.ControlPosition.RIGHT_TOP)时,我无法定义它们的渲染顺序 mapTypeControl的默认值为TOP_RIGHT,但将其更改为RIGHT_TOP(上述其他控件的默认值)会将其添加到此位置的底部: 以下是地图选项的代码(无论添加了什么OSM层):Javascript 同一位置(即右上方)谷歌地图控件的更改顺序,javascript,google-maps,Javascript,Google Maps,我需要重新排列GoogleMap(v3,3.4)API中的默认控件 一切都准备就绪并正常工作,但当我将mapTypeControl、zoomControl、streetViewControl和panControl添加到同一个ControlPosition(即google.maps.ControlPosition.RIGHT_TOP)时,我无法定义它们的渲染顺序 mapTypeControl的默认值为TOP_RIGHT,但将其更改为RIGHT_TOP(上述其他控件的默认值)会将其添加到此位置的底部
我需要mapTypeControl作为第一个要渲染的元素(streetViewControl上方)。你知道怎么做吗?不幸的是,根据这一页,我没有真正的解决方案 通过更改DOM中的索引,可以将用户定义的控件置于默认控件之前。缩放控件的索引比地图/卫星控件的索引低,这可能是相同的问题吗?
不确定你将如何改变索引,但这可能是找到解决方案的途径
哦,如果你找到了解决方法,请把你的解决方案贴在这里。可能会派上用场。此代码在google代码编辑器中运行良好@ 最后,解决方案是使用
TOP\u RIGHT
而不是RIGHT\u TOP
此外,与大多数其他属性一样,可以通过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/0的上方或下方,但我无法更新默认控件(特别是panControl)的索引,这几乎是默认布局。我仍然无法获取平移工具上方的mapTypeControl。如果你想举一个这样的例子,那就太完美了。如果你去操场,用代码粘贴,然后按run,你应该在右上角看到地图类型选择,它比所有其他控件都重要。。。你想要一个屏幕截图吗?虽然Jay提出的黑客攻击在可能的应用程序中是有限的(因为你只能通过将所有控件分成两组来设置顺序),但它确实有效并且可能完成任务:)。谢谢Dave,我不认为这是一个黑客攻击!为什么我没有得到50美元的赏金?!?!我告诉你这是个阴谋!哦,我知道你做了什么。这种方法对我不起作用,因为我有自定义控件,它们将map类型控件推到左侧。我认为这个问题最好的答案是谷歌控件不能定制。
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
}
});
}