我有一张地图,我正在禁用街景,因此用户无法放大并可能会看到蓝色高光,这使得他们在放大太多时单击地图时会意外触发街景。但是,我希望他们能够在我提供的对话框上使用按钮,以便他们可以看到引脚上的位置(如果有)。
我的问题是,由于地图停止支持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事件不适用于以编程方式更改的视图,因此也不是有效的解决方案。
答案 0 :(得分:0)
很可能会回归" r"因为街边还没有满载。它不会返回" x"直到街边实际可见。如果街边不可用,它将回溯到道路。因此,如果加载了街边,地图不会更改它返回的地图类型ID。
那就是说,如果你已禁用街边,然后以编程方式加载它,它将始终返回" r"因为街边是残疾人士。您可以在代码中忽略它并覆盖它,但用户无法自己进入街边。基本上,不支持您描述的场景。