如何使用google maps api v3旋转地图方向

时间:2012-08-16 10:18:37

标签: javascript jquery google-maps-api-3

非常简短的问题 - 因为我在google maps api V3文档中找不到答案

我正在寻找一个控件,它允许我控制/修改api贴图的方向,以便北方不在顶部。

这可能吗?如果是这样,怎么样?

由于

6 个答案:

答案 0 :(得分:7)

您可以使用45 degree imaginery执行此操作,但它仅适用于特定位置。

答案 1 :(得分:3)

OpenLayers是一个免费,轻量级且非常完整的javascript映射API。只需看看他们的示例页面,它看起来很棒(旋转示例:https://openlayers.org/en/latest/examples/rotation.html)。

OpenLayers也可以显示Google地图图块,然后可以旋转https://gis.stackexchange.com/a/277606/114599

答案 2 :(得分:2)

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

旋转地图的唯一方法是:

  1. mapTypeId是satellitehybrid
  2. 将缩放设置为高值(约18或更高)
  3. 通过设置tilt: 45启用地图倾斜功能。通过将地图倾斜45度,此参数将地图显示从2D地图视图更改为类似3D的视图。
  4. heading参数设置为您想要的旋转(0度,90度,180度和270度)。这仅在启用tilt时有效。
  5. 地图上的可见区域是支持地图倾斜操作的地方(这些位置有4个方向(北,南,东和西)有4个不同的卫星图像。并非地图上的所有地方都有这4个图像因此并非地图上的所有地方都可以旋转。

  6. 
        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

答案 3 :(得分:1)

作为一种变通方法,您可以使用CSS transform:rotate()

来旋转其包装器div

*您需要禁用默认值,因为内部的每个元素也将被旋转

答案 4 :(得分:0)

Google地图不会这样做。不幸的是,它总是要面向北方。

我似乎记得OpenStreetMaps确实在旋转,我正在寻找确认这种怀疑的东西。会在几个回复你。

答案 5 :(得分:0)

在 Google Map Javascript API 的Beta 版本中,如果您使用新的矢量地图格式。

  • 先创建a new MapId
  • 在您的 API 脚本标签中使用 v=beta
    <script
    src="https://maps.googleapis.com/maps/api/js?key=API_KEY&v=beta&callback=initMap">
    </script>
    
  • 在初始化地图时包括航向和倾斜属性,也包括 MapId
  • 如果使用 Chrome,请记得在设置中启用在可用时使用硬件加速

可以在here找到完整说明。