19

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

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

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

谢谢

4

6 回答 6

6

您可以使用45 度想象来做到这一点,但它仅适用于特定位置。

于 2012-08-16T12:10:08.867 回答
4

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

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

于 2014-01-31T09:03:55.407 回答
4

作为一种解决方法,您可以使用 CSS 转换来旋转其包装器 div:rotate()

*你需要禁用DefaultUI,因为里面的每个元素也会被旋转

于 2015-08-13T16:37:08.740 回答
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 个方向(北、南、东、西)。并非地图上的所有地方都有这 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

于 2018-02-07T15:05:49.350 回答
0

谷歌地图不这样做。不幸的是,它总是要面对北方。

我似乎确实记得 OpenStreetMaps 确实在旋转,我正在寻找一些东西来证实这种怀疑。过几天会回复你的。

于 2012-08-16T11:42:53.627 回答
0

在Google Map Javascript API的Beta版中,如果您使用新的矢量地图格式,则支持倾斜航向(关于方向)。

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

完整的说明可以在这里找到。

于 2021-07-07T19:40:23.553 回答