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

时间:2016-07-26 16:42:32

标签: rotation maps bing-maps bing

我正在从Bing Maps V7升级到V8,从JS旋转地图不再有用了。我一直在试用这段代码:

map.setView( { heading:90 } );

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

这是一篇关于如何在V7中执行此操作的文章: https://alastaira.wordpress.com/2012/03/28/rotating-bing-maps/

2 个答案:

答案 0 :(得分:1)

Bing Maps V8目前还没有Birdseye。在接下来的几个月里,V8将引入新的鸟眼体验。这种新体验有很多新的图像,使用与旧鸟眼体验不同的格式。鉴于V7中的图像非常陈旧并且是DSAT的主要观点,因此决定推迟向V8添加birdseye,直到下一次体验和数据可用。

答案 1 :(得分:1)

我做了一些研究,两个未记载的事情发生了变化。

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

    var options = this.map.getOptions();

    options.heading = 90;

    map.setView(options);

  2. 现在需要手动指定标题和其他更改字段以反映任何更改。

    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,以便实际应用新标题。