Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 同一位置(即右上方)谷歌地图控件的更改顺序_Javascript_Google Maps - Fatal编程技术网

Javascript 同一位置(即右上方)谷歌地图控件的更改顺序

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(上述其他控件的默认值)会将其添加到此位置的底部

我需要重新排列GoogleMap(v3,3.4)API中的默认控件

一切都准备就绪并正常工作,但当我将mapTypeControl、zoomControl、streetViewControl和panControl添加到同一个ControlPosition(即google.maps.ControlPosition.RIGHT_TOP)时,我无法定义它们的渲染顺序

mapTypeControl的默认值为TOP_RIGHT,但将其更改为RIGHT_TOP(上述其他控件的默认值)会将其添加到此位置的底部:

以下是地图选项的代码(无论添加了什么OSM层):


我需要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 
      } 
   });
}