显示一个地图:

使用Virtual Earth地图控件的第一步是在你的网站上显示一个地图。

现实默认地图:

1. 新建html页面命名为:HTMLPageDefaultMap.htm。

   1:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   2:   
   3:  <html xmlns="http://www.w3.org/1999/xhtml">
   4:  <head>
   5:      <title></title>
   6:  </head>
   7:  <body>
   8:   
   9:  </body>
  10:  </html>

2. 在header配置节中,添加一个META元素以将charset属性设置为utf-8。

   1:  <head>
   2:      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   3:      <title></title>
   4:  </head>

注意:建议在你的网页中使用UTF-8。

3. 同样是在header配置节中,添加一个指向地图控件的引用。

   1:  <head>
   2:      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   3:      <script charset="UTF-8" type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us">
   4:      </script>
   5:      <title></title>
   6:  </head>

4. 在页面的body中,添加一个Div元素来容纳地图。地图的大小由Div的高度和宽度定义。地图的位置使用position,top,left属性进行配置。你可以直接设置他们的值,或者在样式表中定义。

   1:  .map {
   2:     position: absolute;
   3:     top: 20;
   4:     left: 10;
   5:     width: 400px;
   6:     height: 400px;
   7:     border:#555555 2px solid;
   8:  }
   1:  <head>
   2:      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   3:      <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
   4:      <script charset="UTF-8" type="text/javascript" 
                   src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us">
   5:      </script>
   6:      <title></title>
   7:  </head>
   8:  <body>
   9:      <!--<div id='myMap' style="position:absolute; width:400px; height:400px;"></div>-->
  10:      <div id="myMap" class="map"></div>
  11:  </body>

注意:如果不定义宽度,默认宽度为600px。默认高度为400px。为了跨浏览器的兼容性,你应该总是定义position属性。如果你在地图的Div上使用一个百分比的宽度和高度,它将采用父级容器的百分比来定义。

5. 创建一个VEMap类的实例,并调用VEMap.LoadMap方法。

   1:  <head>
   2:      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   3:      <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
   4:      <script charset="UTF-8" type="text/javascript" 
                   src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us">
   5:      </script>
   6:      <script type="text/javascript">
   7:          function GetMap() {
   8:              var map = new VEMap('myMap');
   9:              map.LoadMap();
  10:          }
  11:      </script>
  12:      <title></title>
  13:  </head>
  14:  <body onload="GetMap();">
  15:      <!--<div id='myMap' style="position:absolute; width:400px; height:400px;"></div>-->
  16:      <div id="myMap" class="map"></div>
  17:  </body>

注意:大多数情况下,在你调用VEMap方法或尝试访问VEMap属性前,你必须调用LoadMap方法。

image

当加载时自定义地图:

当你首次加载时,你还可以定义位置,缩放级别,和地图样式。可以使用VEMap.LoadMap方法来传递位置、缩放级别,地图样式,是否锁住地图,地图模式,是否显示地图模式选项以及使用多少缓冲区。

   1:  <script type="text/javascript">
   2:          function GetMap() {
   3:  //            var map = new VEMap('myMap');
   4:  //            map.LoadMap();
   5:              var map = new VEMap('myMap');
   6:              map.LoadMap(new VELatLong(47.6, -122.33, 0, VEAltitudeMode.RelativeToGround)
                             , 10
                             , VEMapStyle.Road
                             , false
                             , VEMapMode.Mode2D
                             , true
                             , 1);
   7:          }
   8:      </script>

image 

案例:

一个完整的包含显示一个地图所必须的元素的网页。

   1:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   2:  <html>
   3:     <head>
   4:        <title></title>
   5:        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   6:   
   7:        <script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2"></script>
   8:   
   9:        <script type="text/javascript">
  10:           var map = null;
  11:   
  12:           var LA = new VELatLong(34.0540, -118.2370);
  13:   
  14:           var pinPoint = null;
  15:           var pinPixel = null;
  16:                    
  17:           function GetMap()
  18:           {
  19:              map = new VEMap('myMap');
  20:              map.LoadMap(LA, 14, VEMapStyle.Road, false, VEMapMode.Mode2D, true, 1);
  21:   
  22:              AddPin();
  23:           }
  24:   
  25:           function getInfo()
  26:           {
  27:              var info;
  28:   
  29:              if (map.IsBirdseyeAvailable())
  30:              {
  31:                  var be = map.GetBirdseyeScene();
  32:   
  33:                  info  = "ID: "          + be.GetID() + "\n";
  34:                  info += "orientation: " + be.GetOrientation()+ "\n";
  35:                  info += "height: "      + be.GetHeight() + "\n";
  36:                  info += "width: "       + be.GetWidth() + "\n";
  37:   
  38:                  var pixel = be.LatLongToPixel(map.GetCenter(), map.GetZoomLevel());
  39:   
  40:                  info += "LatLongToPixel: " + pixel.x + ", " + pixel.y + "\n";
  41:   
  42:                  // Check to see if the current birdseye view contains the pushpin pixel point.
  43:                  info += "contains pixel " + pinPixel.x + ", " + pinPixel.y + ": " + 
  44:                          be.ContainsPixel(pinPixel.x, pinPixel.y, map.GetZoomLevel()) + "\n";
  45:                  
  46:                  // Check to see if the current view contains the pushpin LatLong.
  47:                  info += "contains latlong " + pinPoint + ": " + be.ContainsLatLong(pinPoint) + "\n";
  48:                  
  49:                  // This method may return null, depending on the selected view and map style.
  50:                  info += "latlong: " + map.PixelToLatLong(pixel);
  51:   
  52:                  alert(info);
  53:              }
  54:              else
  55:              {
  56:                  var center = map.GetCenter();
  57:   
  58:                  info  = "Zoom level:\t" + map.GetZoomLevel() + "\n";
  59:                  info += "Latitude:\t"   + center.Latitude    + "\n";
  60:                  info += "Longitude:\t"  + center.Longitude;
  61:   
  62:                  alert(info);
  63:              }
  64:           }
  65:           
  66:           function AddPin()
  67:           {
  68:              // Add a new pushpin to the center of the map.
  69:              pinPoint = map.GetCenter();
  70:              pinPixel = map.LatLongToPixel(pinPoint);
  71:              map.AddPushpin(pinPoint);
  72:           }
  73:        </script>
  74:     </head>
  75:     <body onload="GetMap();">
  76:        <div id='myMap' style="position:relative; width:400px; height:400px;"></div>
  77:         <input id="btnGetInfo" type="button" value="Get Scene Information" name="getinfo" onclick="getInfo();">
  78:         <br/>
  79:          (zoom out 5 clicks to get latitude/longitude and zoom level)
  80:     </body>
  81:  </html>

image

image

posted on 2010-01-13 14:08  zhangdong  阅读(657)  评论(0编辑  收藏  举报