Bing Maps V8 maptypeid与视图不匹配



我有一张我禁用街道视图的地图,以便用户无法放大,也许看到蓝色的亮点允许它们在缩放时单击地图时偶然触发街道视图太多了。但是,我希望他们能够在我提供的对话中使用按钮,以便他们在PIN上看到位置。

我的问题是,由于地图停止了支持的TryLocationTopixel,因此在街道视图中,我的代码会遇到错误。问题是这些部分已经受到以下代码的保护。

if(!propertyMap || propertyMap.getMapTypeId() !== Microsoft.MapTypeId.road)
    return;

在直观地确认我在街景上进行进一步检查时,我可以说getmaptypeid()仍在为公路返回" R",即使景色已转换为Streetview。我使用以下代码将视图转换为街道视图。

propertyMap.setView({ center: location, streetsideOptions: { locationToLookAt: location } });
propertyMap.setMapType(Microsoft.Maps.MapTypeId.streetside);

我的地图是如下创建的

var map = new Microsoft.Maps.Map('#compsMap',
    {
        credentials: $('#bing-key').text(),
        enableClickableLogo: false,
        enableSearchLogo: false,
        showCopyright: false,
        showDashboard: false,
        showMapTypeSelector: false,
        showScalebar: false,
        disableStreetside: true,
        streetsideOptions: { showCurrentAddress: false },
        zoom: 17
    });

有什么方法可以检测地图当前是否在Streetview中?目前,我添加了一个尝试键入以隐藏错误以防止其破坏其他事情,但这不是理想的解决方案。

注意:maptypedchanged事件对编程更改视图也不适用,因此也不是有效的解决方案。

它可能是返回的" r",因为街边尚未满载。直到真正可见的街道上,它将不会返回" X"。如果不可用的街道,它将退缩到道路上。因此,地图不会更改地图类型ID返回的地图类型ID,直到加载路边,如果加载。

也就是说,如果您已禁用了街道旁,然后通过编程加载它,它将始终返回" R",因为街边被禁用。您可以在代码中忽略它并覆盖它,但是用户无法自己进入街边。基本上,您所描述的情况不支持。

最新更新