Bing地图v8 MapTypeId不匹配视图
问题描述:
我有一张地图,禁用街景视图,因此用户无法放大,并可能看到蓝色突出显示,使其在缩放时单击地图时不小心触发街景太多了。但是,我希望他们能够在我提供的对话框上使用按钮,以便他们在可用的情况下查看引脚上的位置。Bing地图v8 MapTypeId不匹配视图
我的问题是我得到了错误,因为地图停止支持tryLocationToPixel,所以在街景视图中我的位置测试代码抛出了错误。问题是这些部分已经被下面的代码所保护。
if(!propertyMap || propertyMap.getMapTypeId() !== Microsoft.MapTypeId.road)
return;
在进一步的检查,而目测确认我在街景用的console.log我可以告诉大家,getMapTypeId()仍然返回“R”的道路,即使观点已被转换为街景。我使用以下代码将视图转换为街景。
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
});
任何方法来检测地图目前在街景与否?目前,我添加了一个try-catch来隐藏错误,以防止它打破其他事情,但这不是一个理想的解决方案。
注意:maptypedchanged事件不适用于编程方式更改的视图,因此这也不是有效的解决方案。
答
它可能会返回“r”,因为街边尚未完全加载。它不会返回“x”,直到街道真正可见。如果streetide不可用,它将回落到道路上。因此,地图不会更改它返回的地图类型ID,直到加载街边时(如果加载它)。
也就是说,如果您禁用了街道,然后以编程方式加载它,它将始终返回“r”,因为街道禁用。您可以在代码中忽略它并覆盖它,但用户无法自己进入街道。基本上,您所描述的场景不受支持。
是的,我只是启用街边,并会看看是否有任何投诉,如果是这样只是完全删除功能。更简单的解决方案,只是不理想。 – user2927848