<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"  
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
  <head> 
    <meta http-equiv="content-type" content="text/html; charset=gbk"/> 
    <title>goole地图调用</title> 
    <script src="http://ditu.google.cn/maps?file=api&amp;v=2&amp;key=abcdefg&sensor=true_or_false&amp;oe=gbk" 
            type="text/javascript"></script> 
   <script type="text/javascript"> 
var geocoder;
var map;
var address;
var erOptions;
var er;
var friends;
var dir;
function $(id){
 return document.getElementById(id);
 }
 
function initialize(){ 
      if (GBrowserIsCompatible()) { 
        map = new GMap2($("map")); 
geocoder = new GClientGeocoder();
map.addControl(new GSmallMapControl()); //滚动条var tinyIcon = new GIcon(G_DEFAULT_ICON); //创建图标对象
tinyIcon.iconAnchor = new GPoint(10, 30); 
erOptions = { icon:tinyIcon,color:"blue"}; 

address= $("home").value;
geocoder.getLatLng(address,callback_home);friends=$("friend").value.split(",");
for(var i=0;i<friends.length;i++){
geocoder.getLatLng(friends[i],callback_friends);
}

  } 
} //回调
function callback_home(point){
 if (!point) {
  alert("无法解析:" + address);
  } else {
  map.setCenter(point, 6);
  er = new GMarker(point,erOptions);
   map.addOverlay(er);
}
}
    
function callback_friends(point){
  if (!point) {
  alert("无法解析该地址" );
  } else {
   er = new GMarker(point,erOptions);
    var polyline = new GPolygon ([map.getCenter(), er.getLatLng()]); 
GPolyStyleOptions = { opacity:1,color:"blue",weight:2};

polyline.setStrokeStyle(GPolyStyleOptions);
    map.addOverlay(polyline);
    map.addOverlay(er);      dir = new GDirections(map,$("direction"));

GEvent.addListener(dir, "load", onGDirectionsLoad); var queryString="from: "+ map.getCenter()+"to: "+er.getLatLng();
dir.load(queryString,{"locale":"zh-CN"});
    // alert(dir.getDistance().meters);   //dir.getDistance() is undefined!!!!  怎么获取距离  }

}function onGDirectionsLoad(){ 
       $("status").innerHTML = dir.getStatus().code;
}
</script> 
 
  </head> 
  <body onload="initialize()" onunload="GUnload()"> 
     <div id="direction" style="border: 1px solid ; width: 400px; height: 50px;">显示地图center到各地方的距离</div>
     <div id="status"    style="border: 1px solid;width: 400px; height: 50px;">状态</div>
     <div id="map"       style="border: 1px solid;width: 400px; height: 300px;"></div>
 
    <input id="home" value="北京市" type="hidden">
<input id="friend" value="天津市,石家庄市,邯郸市,保定市" type="hidden">
  </body> 
</html>

解决方案 »

  1.   

    在这里找distancehttp://code.google.com/apis/maps/documentation/reference.html
      

  2.   

    queryString="from: "+ map.getCenter()+"to: "+er.getLatLng();
     搞好了 ,from 地名 to 地名  不是用经纬度   我靠 谢谢各位了  搞出来了也不好看 算出来的是按乘车路线到目的地的距离,是弯曲的,我直接弄了个算2点距离的方法
    function rad(d)
    {
        return d * Math.PI / 180.0;
    }function getDistance( lat1, lng1, lat2, lng2)
    {
          var radLat1 = rad(lat1);
          var radLat2 = rad(lat2);
          var a = radLat1 - radLat2;
          var b = rad(lng1) - rad(lng2)
          var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + 
          Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
          s = s * EARTH_RADIUS;
          s = Math.round(s * 10000) / 10000;
          
       return s;
    }自己调了   算了 。。郁闷 哈哈