1

我正面临这个奇怪的问题。bing map没有显示在我的页面上,因为所有控件甚至都正确pushpins显示。
我用谷歌搜索了很多,同样的功能在我的其他项目中运行良好

在此处输入图像描述

我怀疑对 dev.virtualearth.net 的引用有问题,或者我遗漏了一些东西

这是我的代码:ASCX(在动态生成的 aspx 的内容占位符内):

<script charset="UTF-8" type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=de-de">
</script>

<div>
       .
       .
       .
       <div id="bigMapContainer">
                <div id="eventMap">
                </div>
       </div>

</div>

后面的代码:

string script = @"
            function GetVEMap() {
               map = new VEMap('eventMap');
               map.SetDashboardSize(VEDashboardSize.Small);
               map.LoadMap();
               DisplayEventsOnMap();
            }

   function DisplayEventsOnMap() {
                var eventMapLayer = new VEShapeLayer();
                eventMapLayer.Id = 'eventMapLayer';
                var points = null;
                       .
                       .
                       .
                //Code to get the data for pin display etc
                       .
                       .
               map.AddShapeLayer(eventMapLayer);
               map.SetMapView(eventMapLayer.GetBoundingRectangle());
               map.SetZoomLevel(15);

              });
            }

            $(window).load(function() {
                       GetVEMap();
                      }
            );";

     ScriptManager.RegisterStartupScript(this, typeof(Page), "MapDisplay", script, true);

CSS:

   #bigMapContainer {display: block;}
   #eventMap { position: absolute; width: 550px height: 500px; }

我在母版页上添加了一些与地图无关但可能与我的地图实现冲突的参考(?)

<script type="text/javascript" src="/js/modernizr-2.0.6.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="/js/script.js"></script>
<script type="text/javascript" src="/js/superfish.js"></script>
<script type="text/javascript" src="/js/jquery.flexslider-min.js"></script>
<script type="text/javascript" src="/js/jquery.ui.totop.js"></script>
<script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="/js/jquery.responsivemenu.js"></script>
<script type="text/javascript" src="/js/client.js"></script>
<script type="text/javascript" src="/js/jquery-ui.js"></script>

非常感谢您的帮助。

4

2 回答 2

1

经过大量研究后,我发现问题出在 CSS 上。感谢@rbrunditt 的帮助

mapcontrol.csshttp://ecn.dev.virtualearth.net/mapcontrol/v6.3/css/bin/6.3.20091207154938.04/de/mapcontrol.css里面有一个地图容器的类——它具有使瓷砖显示.MSVE_Map的属性position:absolute出屏幕。

我已经覆盖了position:relative实际解决问题的类..

于 2014-09-05T04:20:08.663 回答
1

首先,您似乎指向的是几年前已弃用的 Virtual Earth 6.2,现在指向的是 v6.3。也就是说 v6.3 真的很旧,不推荐用于新的开发项目。如果这是一个新项目,您应该使用 Bing Maps V7,它是 Bing Maps 的最新和最好的版本(Virtual earth 在 2009 年更名为 Bing Maps)。V7 速度更快,功能更多,体积也更小。

假设这是一个刚刚开始出现问题的现有项目。查看您的代码,我立即注意到的一件事是加载地图时没有指定凭据。这是必需的。在你调用 LoadMap 方法之前,你应该有这样一行代码:

map.SetCredentials('YOUR_BING_MAPS_KEY');

如果您没有 Bing 地图密钥,您可以通过在 Bing 地图门户中创建一个 Bing 地图帐户来获得一个:http: //bingmapsportal.com以下是一些有关创建密钥的文档:http: //msdn.microsoft.com /en-us/library/ff428642.aspx

接下来,eventMap div,您为此指定了任何样式吗?它应该具有指定为 CSS 类或内联样式的位置、宽度和高度。如果没有这个,你会在某些浏览器中得到奇怪的渲染。

于 2014-09-02T16:31:54.983 回答