由神秘到简单 教你在网页中添加微软地图(6)

发表于:2007-06-30来源:作者:点击数: 标签:
本文一开始我就提到可以从http://virtualearth.msn.com/js/MapControl.js页面找到我们所需要的Virtual Earth Map Control,这里我们同样需要另外一个包含其他control的脚本文件,这个文件可以在http://virtualearth.msn.com/js/ve.js下载到。 同样如果你需要
    
    本文一开始我就提到可以从http://virtualearth.msn.com/js/MapControl.js页面找到我们所需要的Virtual Earth Map Control,这里我们同样需要另外一个包含其他control的脚本文件,这个文件可以在http://virtualearth.msn.com/js/ve.js下载到。
  
    同样如果你需要在你自己的站点使用这个脚本,你必须将这个脚本文件拷贝到你自己的站点。如果你从VirtualEarth站点直接使用这个脚本,用户将会收到安全警告,也可能会根本都看不见这个control。
  
    你必须引进这个脚本:
  
  <script src="/ViaVirtualEarth/Portals/0/VE.js"></script>
  
    这里要说明的是其他的窗口部件假设你的页面上的map control是命名地图。
  
    罗盘控制
  
    第一个我们将要增加的是罗盘control。它提供了在地图上进行漫游的各种方式。它是通过一个图像代表的,最后使用一个透明的gif图像以免其覆盖所需要的地图。你可以自己创建或者使用本例中的图片。
  
    在OnPageLoad方法里你可以通过创建一个文档元素VE_Compass并设置它的元素属性来创建和摆放罗盘control。
  
    最好的方式就是将其单独作为一个方法,从OnPageLoad方法里进行调用。
  
  function CreateCompass()
  {
   var el=document.createElement("div");
   el.id="VE_Compass";
   el.style.background="url(images/compass.gif)";
   el.onmousedown=VE_Compass._MouseDown;
   el.onmouseup=VE_Compass._MouseUp;
   el.onmousemove=VE_Compass._MouseMove;
   el.style.position="absolute";
   el.style.top = 100;
   el.style.left = 15;
   el.style.zIndex=31;
   el.style.width = 93;
   el.style.height = 91;
   VE_Compass.element=el;
   document.body.appendChild(el);
  }
  function OnPageLoad(){ CreateCompass(); ...
  
    页面此时会显示一个罗盘在地图左上角,你可以用它来漫游整个地图。
  
    地图比例尺组件
  
    地图比例尺组件提供了对地图显示的比例的调整功能,这在估算距离的时候比较有用。组件是由2行的一个表格来表示的。在代码里必须正确的定义表格和行的名称,这些名称可以被其他的VE.js文件中的代码使用以在地图变化的时候更新比例尺
  
    首先在HTML中增加一个表格:
  
  <table id="VE_MapScale" cellpadding="0" cellspacing="0" unselectable="on">
  <tr>
   <td
    <div id="VE_MapScaleLabel" unselectable="on"> </div>
   </td>
  </tr>
  <tr>
   <td>
    <div id="VE_MapScaleBar" unselectable="on"> </div>
   </td>
  </tr>
  </table>
  
    然后增加一些样式来定义最终的比例尺的显示:
  
  #VE_MapScale
  {
   position: absolute;
   width: 150px;
   height: 18px;
   padding: 0;
   margin: 0;
   z-index: 31;
  }
  
  #VE_MapScaleLabel
  {
   height: 22px;
   font-family: Verdana;
   font-size: 12pt;
   color: black;
   overflow: hidden;
  }
  
  #VE_MapScaleBar
  {
   width: 150px;
   height: 5px;
   background: green;
   overflow: hidden;
  }
  
    增加如下的代码在OnPageLoad方法里,以在地图上摆放比例尺,并且显示初始的比例大小:
  
  PositionElement(document.getElementById("VE_MapScale"), 300, 550, 150, 18);
  UpdateMapScale();
  
    最后当每次缩放的时候,比例尺都会需要被更新。在OnPageLoad函数中,我们增加对此事件进行处理的代码。我们需要增加一个对更新比例尺的调用。
  
  map.onEndZoom=function(e){ document.getElementById("info").innerHTML = ’Latitude = ’ + e.latitude + ’, Longitude = ’ + e.longitude+’), Zoom=’ + e.zoomLevel; UpdateMapScale();}
  
  
  
  

原文转自:http://www.ltesting.net