Bing地图V8 - 如何在Bird's Eye视图中旋转地图?

问题描述:

我从Bing Maps V7升级到V8,并且从JS旋转地图不再有效。我一直在尝试使用这段代码:Bing地图V8 - 如何在Bird's Eye视图中旋转地图?

map.setView({ heading:90 }); 

如果我将地图库的源URL更改为V7,此方法可行。我发现“setView”功能和“标题”选项在V8中仍然存在。

下面是关于如何做到这一点在V7的文章: https://alastaira.wordpress.com/2012/03/28/rotating-bing-maps/

Bing地图V8目前没有鸟眼。在接下来的几个月内,V8引入了新的birdseye体验。这种新的体验有许多新的图像,它采用与旧birdseye体验不同的格式。鉴于V7中的图像非常陈旧,并且是DSAT的一个重点,因此决定暂缓添加birdseye到V8,直到获得下一次体验和数据。

+0

谢谢,但我想出了另一篇文章 - http://*.com/questions/38611054/no-more-birds-eye-view-in-the-bing-maps-v8-api/38614006 – SsjCosty

+0

更新:Birdseye于4月初在实验分支中添加到Bing Maps V8。它现在在主要发布分支中。此时,按钮不在地图类型下拉菜单中,因为团队正在等待,直到处理了更多新图像并在控件中可用。 – rbrundritt

我做了一些更多的研究,并且两件无证的事情都发生了变化。

  1. map.setView()不再响应完整选项对象。 实施例:

    var options = this.map.getOptions();

    options.heading = 90;

    map.setView(options);

现在需要的标题和其他改变的字段手动指定,以反映任何变化。

map.setView({heading: 90}); 
  1. map.setView({heading: xx})不再接受为有效是负值,因此,必须手动提交的标题值的任何顺时针转动,使得其对应于正航向值。
    因此,map.setView({heading: -90})以前足够聪明,知道它相当于map.setView({heading: 270}),但现在必须提交给API作为正值。
  2. 与第一个例子类似,我有一些遗留代码用于将地图重置为原始纬度/经度和标题,现在需要第二个setView()调用来更新。

    var options = this.map.getOptions(); 
    options.zoom = this.initialZoom; 
    options.center = new Microsoft.Maps.Location(this.lat, this.lon); 
    options.heading = this.heading = 0; 
    this.map.setView(options); 
    this.map.setView({heading: this.heading}); 
    

    必须再次调用setView以便实际应用新的标题。

开始=“2”>