如何刷新Bing地图AJAX

How to refresh Bing Maps AJAX?

本文关键字:Bing 地图 AJAX 刷新 何刷新      更新时间:2023-09-26

我创建了Bing Maps AJAX控件,并使用始终相同的值对其进行初始化:lat、lng和zoom级别。这是默认的航空地图类型和最大缩放级别。每次我得到以下图像:

http://i50.tinypic.com/acturr.jpg

没有记录刷新当前区域的方法(或者没有),所以我每次都应该用鼠标缩小和放大,这很烦人。对于谷歌地图,我发现了一个有用的技巧:

google.maps.event.trigger(this.map, 'resize');

必应地图AJAX API有类似的东西吗?

我最近在Bing地图AJAX V7:上遇到了类似的问题

在某些浏览器上(主要在Chrome上),如果视口中没有地图(必须滚动才能到达),则它的初始化不正确。我已经向MSDN报告了这个问题,但没有得到任何有用的答案:https://social.msdn.microsoft.com/Forums/en-US/439c33bc-a1ed-4e74-a019-f7fecb809030/scroll-issue-on-chrome-with-ajax-v7-control

为了解决这个问题,我使用了两件事:

  • 首先,我必须找到一种方法来强制刷新Bing地图(在互联网上没有找到任何解决方案,也没有找到对象方法)。经过大量测试,我想出了一个解决方案:

    map.setMapType(Microsoft.Maps.MapTypeId.mercator);
    setTimeout(function(){map.setMapType(Microsoft.Maps.MapTypeId.auto);}, 1)
    

    事实上,将视口更改为"mercator",然后返回到另一个视口会迫使地图刷新(setTimeout使操作异步)

  • 然后,我添加了一个lib,当元素进入视口时会触发一个事件,以便在每次地图进入视口时触发强制刷新