Bing maps v8 MapTypeId 与视图不匹配
Bing maps v8 MapTypeId does not match view
我有一张地图,我在其中禁用了街景视图,因此用户无法放大并且可能会看到蓝色高亮显示,从而允许他们在放大太多时单击地图时意外触发街景视图。但是,我希望他们能够在我提供的对话中使用一个按钮,这样他们就可以看到图钉上的位置(如果可用)。
我的问题是,由于地图停止支持 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 事件也不适用于以编程方式更改的视图,因此这也不是有效的解决方案。
可能 return "r" 因为路边还没有完全加载。它不会 return "x" 直到街边真正可见。如果街边不可用,它将回退到道路。因此,地图不会更改地图类型 ID returns,直到加载街边(如果加载的话)。
就是说,如果您禁用了街道,然后以编程方式加载它,它将始终 return "r" 因为街道被禁用。您可以在代码中忽略它并覆盖它,但用户无法自己进入街边。基本上不支持你描述的场景
我有一张地图,我在其中禁用了街景视图,因此用户无法放大并且可能会看到蓝色高亮显示,从而允许他们在放大太多时单击地图时意外触发街景视图。但是,我希望他们能够在我提供的对话中使用一个按钮,这样他们就可以看到图钉上的位置(如果可用)。
我的问题是,由于地图停止支持 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 事件也不适用于以编程方式更改的视图,因此这也不是有效的解决方案。
可能 return "r" 因为路边还没有完全加载。它不会 return "x" 直到街边真正可见。如果街边不可用,它将回退到道路。因此,地图不会更改地图类型 ID returns,直到加载街边(如果加载的话)。
就是说,如果您禁用了街道,然后以编程方式加载它,它将始终 return "r" 因为街道被禁用。您可以在代码中忽略它并覆盖它,但用户无法自己进入街边。基本上不支持你描述的场景