ie里报 center为空或不是对象!还不是一直错,偶尔会没错。。我郁闷大侠们帮忙,最好运行帮忙调试下,保存为html文件就可以了谢谢<!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> <!--引用Google地图js 密匙key 放到公网上要根据应用网址申请一个-->
   <script type="text/javascript"> 
    var map;
var geocoder;
var address;
var erOptions;
var erOptions2;
var er;
var friends;
var EARTH_RADIUS = 6378.137;
var distance;
var center;
var lat1,lng1,lat2,lng2,j=0;

//获取元素节点
function $(id){
 return document.getElementById(id);
 }
 
 
//自定义初始化方法,完成地图的加载
function initialize(){ 
      if (GBrowserIsCompatible()) { //判断浏览器是否支持
        map = new GMap2($("map")); //new 一个 地图对象
geocoder = new GClientGeocoder();//它的getLatLng()方法可以解析地名为经纬度,通过2点的经纬度可以连线,算距离等
map.addControl(new GSmallMapControl()); //拖动地图的控件

//用于设置自己的标记选项
var icon = new GIcon(); //图片对象
icon.image = "flag.jpg"; //设置该对象的图片
icon.iconAnchor = new GPoint(0, 20); //图片相对于定点的距离    靠左  靠上
icon.infoWindowAnchor = new GPoint(0, 10); //信息框相对于定点的距离   靠右 靠下erOptions = {icon:icon}; //标记选项 构造GMaker对象时可以应用上 对标记的一些设置  er = new GMarker(new GLatLng(100,200),erOptions)//用于设置好友的标记选项
var icon2 = new GIcon(); 
icon2.image = "home.jpg"; 
icon2.iconAnchor = new GPoint(0, 20); 
icon2.infoWindowAnchor = new GPoint(0, 10); erOptions2 = {icon:icon2}; 
//自己地址
address= $("home").value;//获取表单值
geocoder.getLatLng(address,callback_home);//通过地名获取经纬度,将结果返回给回调方法,返回类型为GLatLng//好友地址
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, 4);//设置地图视图中心点 
    center=point;// ie里报 center为空或不是对象。

  er = new GMarker(point,erOptions2);//new 标记对象
//erOptions.image="home.jpg";
//er.setImage("home.jpg");
   map.addOverlay(er);//将标记放到地图上 //给标记绑定一个click事件 事件里可以完成显示用户信息的操作 可以使用document.createElement("div")等创建任何html元素
 
 //er.bindInfoWindow(mydiv);
 
er.bindInfoWindowHtml(address+" "+er.getLatLng().toString());
}}
    
//处理好友地址
function callback_friends(point){  if (!point) {
  alert("无法解析该地址:"+friends[j]);
  } else {   er = new GMarker(point,erOptions);
    var polyline = new GPolyline([center, er.getLatLng()]); //产生线的对象 2个经纬度
var GPolyStyleOptions = { opacity:1,color:"blue",weight:2};//线的一些设置,透明度,颜色,粗细

polyline.setStrokeStyle(GPolyStyleOptions);//应用设置
    map.addOverlay(polyline);//将 线放到地图上
   
er.bindInfoWindowHtml(friends[j]+" "+er.getLatLng().toString());//为标记绑定click 事件
//GEvent.addListener(er, "click", function() {     //  er.openInfoWindowHtml(er.getLatLng().toString());
//});
 map.addOverlay(er);//把标记放到地图上

//------------------------测距离-------------
   lat1=center.lat();
   lng1=center.lng();
   lat2=er.getLatLng().lat();
   lng2=er.getLatLng().lng();
   distance=getDistance(lat1,lng1,lat2,lng2);
  $("direction").innerHTML += address+"至"+friends[j]+"的距离为:"+distance+" Km<br>";
   j++;
  }

}
 //google maps中通过两点经纬度,计算两点间距离算法    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;
}//function onGDirectionsLoad(){ 
// alert(dir.getDistance().meters); 
 //      $("status").innerHTML = dir.getStatus().code;
//}
</script> 
 
  </head> 
  <body onload="initialize()" onunload="GUnload()"> 
     <div id="direction" style="border: 1px solid;width: 400px;"></div>
     <div id="map"       style="border: 1px solid;width: 500px; height: 400px;"></div>
 
    <input id="home" value="长沙市" type="hidden">
<input id="friend" value="天津市,西安市,台北市,昆明市,海口市" type="hidden">
  </body> 
</html>

解决方案 »

  1.   

    var center = new Object();
      

  2.   

    我也在整地图  发现加了地图的onload事件后,其他的js失效。
      

  3.   

      中心点是 回调方法里算出来的   point 应该是GMaker类型的啊 不然这么能
    er = new GMarker(point,erOptions2);//new 标记对象 
      

  4.   

    你得搞清楚callback_home回调函数的参数point到底是个什么样子的对象。
    检查在AJAX请求出现故障的时候,它返会的还是不是个能够直接操作的对象。
      

  5.   

    你说的有道理 ,但是 按代码分析 应该就是 GMaker 类型
      

  6.   

    说错了 应该是 GLatLng 类型
      

  7.   

    up  up up  up  up  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  upup  up up  up
      

  8.   

    是看到错误了
     lat1=center.lat(); 这周围