我在代码中使用Bing映射,我使用的是https://dev.virtualearth.net/REST/v1/Locations/
在loadMap()函数中,我正在将对象简化为VEMap。它在IE和Chrome中运行得很好,但在火狐浏览器中,它却给了"VEmap is not defined"错误。可能的问题是什么。我该怎么解决这个问题?
Div块
<div id='map' style="position: relative; height: 240px;z-index:0;">我的代码
function loadMap()
{
map = new VEMap('map');
mapCenter= new VELatLong(51.8756, -97.9956)
}发布于 2015-04-14 16:16:27
看起来你在尝试使用必应地图的6.3版本。如果这是一个新的开发项目--使用Bing地图的version 7,那么6.3版已经接近生命的尽头(已经宣布了)。
至于您的问题,可能是时间问题,或者是不正确的脚本引用。对于当前的代码,页面的头部应该有一个脚本引用,如下所示:
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.3"></script>如果你没有这个,那么这很可能是你的问题。如果您在页面底部有此功能,那么它很可能是在加载映射脚本之前调用loadMap函数的。你可以做几件不同的事情来处理这件事。一种是确保映射脚本是loade,方法是在加载映射函数中签入定义了VEMap,如果没有等待,那么尝试再次加载映射,如下所示:
function loadMap()
{
if(typeof(VEMap) === 'undefined'){
setTimeout(loadMap, 150);
return;
}
map = new VEMap('map');
map.SetCredentials("BingMapsKey");
mapCenter= new VELatLong(51.8756, -97.9956)
}尽管如此,你应该使用必应地图的v7,因为它速度更快,功能更多,是必应地图开发人员使用的主要地图控件,而且还没有接近生命的尽头。如果您有一个需要迁移到v7的大型应用程序,您可以在这里找到一个指南:Map
或者,您可以在这里找到V7的文档和资源:
https://msdn.microsoft.com/en-us/library/gg427610.aspx
https://www.bingmapsportal.com/ISDK/AjaxV7
https://bingmapsv7modules.codeplex.com/
http://blogs.msdn.com/b/rbrundritt/archive/2014/09/04/the-art-of-intellisense-three-ways-to-use-intellisense-with-bing-maps-apis.aspx
https://stackoverflow.com/questions/29624289
复制相似问题