首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >火狐中没有定义VEmap

火狐中没有定义VEmap
EN

Stack Overflow用户
提问于 2015-04-14 09:53:52
回答 1查看 1.3K关注 0票数 0

我在代码中使用Bing映射,我使用的是https://dev.virtualearth.net/REST/v1/Locations/

在loadMap()函数中,我正在将对象简化为VEMap。它在IE和Chrome中运行得很好,但在火狐浏览器中,它却给了"VEmap is not defined"错误。可能的问题是什么。我该怎么解决这个问题?

Div块

代码语言:javascript
复制
<div id='map' style="position: relative; height: 240px;z-index:0;">

我的代码

代码语言:javascript
复制
function loadMap()
{ 
map = new VEMap('map');
mapCenter= new VELatLong(51.8756, -97.9956)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-14 16:16:27

看起来你在尝试使用必应地图的6.3版本。如果这是一个新的开发项目--使用Bing地图的version 7,那么6.3版已经接近生命的尽头(已经宣布了)。

至于您的问题,可能是时间问题,或者是不正确的脚本引用。对于当前的代码,页面的头部应该有一个脚本引用,如下所示:

代码语言:javascript
复制
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.3"></script>

如果你没有这个,那么这很可能是你的问题。如果您在页面底部有此功能,那么它很可能是在加载映射脚本之前调用loadMap函数的。你可以做几件不同的事情来处理这件事。一种是确保映射脚本是loade,方法是在加载映射函数中签入定义了VEMap,如果没有等待,那么尝试再次加载映射,如下所示:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29624289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档