如何使用Google Maps API V3旋转地图方向

20

非常简短的问题 - 因为我在谷歌地图API V3文档中找不到答案

我正在寻找一个控件,允许我控制/修改API地图的方向,使北方不在顶部。

是否可能?如果是,如何实现?

谢谢


1
谷歌地图没有提供这个功能。谷歌地球可以做到,但那是完全不同的事情。 - SDC
1
是的 - 我用谷歌地球看到了那个,但正如你所说,这是另一回事。 - user1051849
你好,正如Google Earth API页面所述:注意:Google Earth API已于2014年12月12日停用。该API将在2016年底关闭,并在此日期之前继续在支持的浏览器上运行。 - Drako
8个回答

6
你可以使用45度影像实现此功能,但它仅适用于特定位置。

5

4
作为一种解决方法,您可以使用CSS transform: rotate()旋转其包装div。
*您需要禁用disableDefaultUI,因为内部的每个元素也会被旋转。

3

目前,Google Maps API没有旋转地图的选项(我希望这个功能能尽快加入)。

你唯一可以旋转地图的办法是:

  1. mapTypeId 设置为 satellitehybrid
  2. 将地图缩放设置为高值(大约18或更高)。
  3. 通过设置 tilt: 45 来启用地图倾斜。此参数将使地图以45度倾斜,从2D地图视图变成类似3D的视图。
  4. heading 参数设置为所需的旋转角度(0、90、180和270度)。这只有在启用了 tilt 参数时才有效。
  5. 地图上可见的区域支持地图倾斜操作(这些位置有4张不同方向(北、南、东、西)的卫星图片)。并非地图上的所有地方都有这4张图片,因此并非所有地点都可以旋转。


    function initMap() {
      map = new google.maps.Map(document.getElementById('map'), {
        center: { lat: 45.518, lng: -122.672 }, // try to put different location and rotation may not work
        zoom: 18, // use a smaller zoom level and rotation may not work
        mapTypeId: 'satellite', // use TERRAIN or ROADMAP and rotation will not work
        heading: 90,
        tilt: 45
      });
    }

更多信息请参见:https://developers.google.com/maps/documentation/javascript/examples/aerial-rotation


0
在Google地图Javascript API的Beta版本中,如果您使用新的矢量地图格式,倾斜方向(作为方向)都得到支持。
  • 首先创建一个新的MapId
  • 在API脚本标签中使用v=beta
    <script
    src="https://maps.googleapis.com/maps/api/js?key=API_KEY&v=beta&callback=initMap">
    </script>
    
  • 在初始化地图时包括heading和tilt属性,同时也要包括MapId
  • 如果使用Chrome,请记得在设置中启用使用可用的硬件加速

完整指令可以在这里找到。


我想知道创建和设置mapId的用途是什么。为什么没有它就不能工作? - JavaLearner

0

Google Maps无法实现这一点。不幸的是,它总是面向北方。

我似乎记得OpenStreetMaps可以转动,我正在寻找一些东西来证实这个猜测。稍后会和你联系。


0

Google Maps(公共网络版本)确实可以像Google Earth一样在任何位置使用CTRL +单击来执行此操作。 但是API版本不支持该功能。

请参见屏幕截图:https://ibb.co/VBn6Cjv


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接