JS文件代码:
var map = null;
var currentMobile;
var ifPassEage=0;function pageLoad()
{
    resizeDiv();
}
//加载地图-------------
function initialize()
{   
       
       var map = new BMap.Map("myMap");
       var point = new BMap.Point(XXX.XXXXXX, XX.XXXXXX);
       map.centerAndZoom(point, 15);
              
       map.addControl(new BMap.NavigationControl());                    
       map.addControl(new BMap.ScaleControl());                         
       map.addControl(new BMap.OverviewMapControl());                   
       map.addControl(new BMap.MapTypeControl());                      
       map.enableScrollWheelZoom();                                    
       map.enableContinuousZoom(); }//当前定位
function CurrentPosition(sMobile)
{
    currentMobile = sMobile;
        
    //调用webservice,同时设置结果返回处理函数
    standard_v5.PointsClass7.ReturnCurrentPoint(currentMobile,DrawCurrentPosition);
      
}var updatetime;function DrawCurrentPosition(result)
{
    index = 0;
       
    if(result.length == 0)
    {
        alert("对不起,无此人定位信息!");
        return;
    }
    ifPassEage = 0;
      
    AddMarker(result);//当前定位
    
}function resizeDiv()
{  
     docWidth = document.documentElement.clientWidth;
     docHeight = document.documentElement.clientHeight;  
     document.getElementById("myMap").style.width = docWidth - 300 - 3;              
     document.getElementById("myMap").style.height = docHeight - 60 - 50 - 4;       
}
var updatetime;
function AddMarker(result)
{
   
   for(var i=0;i<result.length;i++)
    {
        //添加标记(定位点)
         var lat=result[i].Y.toString();      
         var lng=result[i].X.toString();
         var map = new BMap.Map("myMap");
         var point = new BMap.Point(lat,lng);
         var er = new BMap.Marker(point);
                 
         er.enableDragging(); //启用拖拽         map.addControl(new BMap.NavigationControl()); //左上角控件
         map.enableScrollWheelZoom(); //滚动放大
         map.enableKeyboard(); //键盘放大
         map.centerAndZoom(point, 13); //绘制地图
         map.addOverlay(er); //标记地图
         
         AddInfoWin(result[i].Time,result[i].Position,point);//标记信息
        
    }
           
}function AddInfoWin(content,Position,point)
    {         var map = new BMap.Map("myMap");
        var er = new BMap.Marker(point);
            
        var showinfo_Html;
        if(Position.length==0)
        {
           showinfo_Html= "<p style='text-align:left;margin:0;'>时间:"+ content +"</p>" ;
        }
        else
        {
           showinfo_Html= "<p style='text-align:left;margin:0;'>时间:"+ content +"</p><p style='text-align:left;margin:0;'>状态:"+Position+ "</p>";
        }
        
        alert(showinfo_Html);
        var opts = {
                width: 300,     // 信息窗口宽度  
                height: 100,     // 信息窗口高度  
                title: ""  // 信息窗口标题  
                    }
       
        var infoWindow = new BMap.InfoWindow(showinfo_Html, opts);  // 创建信息窗口对象
       
        map.centerAndZoom(point, 13); //绘制地图
        map.addOverlay(er); //标记地图
          
        er.addEventListener("click", function(){ 
        this.openInfoWindow(infoWindow); 
            });
      }此程序是通过读取数据库获得坐标,然后在地图上显示坐标点
现在坐标点在地图上显示了,点击坐标,也弹出框了,框里面也有数据了,但是此时地图却没能显示出来,现在地图一片空白,除了那个坐标点莫非在转到新的坐标点之前,地图要先清空map.clearOverlays()  ?

解决方案 »

  1.   

    看了下代码,你为嘛new这么多个BMap.Map("myMap");?申明一个全局变量不就好了?
    var map = null;
     
     
    var currentMobile;
    var ifPassEage=0;
     
    function pageLoad()
    {
        resizeDiv();
    }
    //加载地图-------------
     
     
    function initialize()
    {   
            
           ///var map = new BMap.Map("myMap");
           map = new BMap.Map("myMap");
           var point = new BMap.Point(XXX.XXXXXX, XX.XXXXXX);
           map.centerAndZoom(point, 15);
                   
           map.addControl(new BMap.NavigationControl());                    
           map.addControl(new BMap.ScaleControl());                         
           map.addControl(new BMap.OverviewMapControl());                   
           map.addControl(new BMap.MapTypeControl());                      
           map.enableScrollWheelZoom();                                    
           map.enableContinuousZoom(); 
     
    }
     
     
     
    //当前定位
    function CurrentPosition(sMobile)
    {
        currentMobile = sMobile;
             
        //调用webservice,同时设置结果返回处理函数
        standard_v5.PointsClass7.ReturnCurrentPoint(currentMobile,DrawCurrentPosition);
           
    }
     
    var updatetime;
     
    function DrawCurrentPosition(result)
    {
        index = 0;
            
        if(result.length == 0)
        {
            alert("对不起,无此人定位信息!");
            return;
        }
        ifPassEage = 0;
           
        AddMarker(result);//当前定位
         
    }
     
    function resizeDiv()
    {  
         docWidth = document.documentElement.clientWidth;
         docHeight = document.documentElement.clientHeight;  
         document.getElementById("myMap").style.width = docWidth - 300 - 3;              
         document.getElementById("myMap").style.height = docHeight - 60 - 50 - 4;       
    }
     
     
    var updatetime;
     
     
    function AddMarker(result)
    {
        
       for(var i=0;i<result.length;i++)
        {
            //添加标记(定位点)
             var lat=result[i].Y.toString();      
             var lng=result[i].X.toString();
             ////////////var map = new BMap.Map("myMap");//////////去掉,使用初始化中的变量
             var point = new BMap.Point(lat,lng);
             var er = new BMap.Marker(point);
                      
             er.enableDragging(); //启用拖拽
     
             map.addControl(new BMap.NavigationControl()); //左上角控件
             map.enableScrollWheelZoom(); //滚动放大
             map.enableKeyboard(); //键盘放大
             map.centerAndZoom(point, 13); //绘制地图
             map.addOverlay(er); //标记地图
              
             AddInfoWin(result[i].Time,result[i].Position,point);//标记信息
             
        }
                
    }
     
    function AddInfoWin(content,Position,point)
        { 
     
            /////var map = new BMap.Map("myMap");///////
            var er = new BMap.Marker(point);
                 
            var showinfo_Html;
            if(Position.length==0)
            {
               showinfo_Html= "<p style='text-align:left;margin:0;'>时间:"+ content +"</p>" ;
            }
            else
            {
               showinfo_Html= "<p style='text-align:left;margin:0;'>时间:"+ content +"</p><p style='text-align:left;margin:0;'>状态:"+Position+ "</p>";
            }
             
            alert(showinfo_Html);
            var opts = {
                    width: 300,     // 信息窗口宽度  
                    height: 100,     // 信息窗口高度  
                    title: ""  // 信息窗口标题  
                        }
            
            var infoWindow = new BMap.InfoWindow(showinfo_Html, opts);  // 创建信息窗口对象
            
            map.centerAndZoom(point, 13); //绘制地图
            map.addOverlay(er); //标记地图
               
            er.addEventListener("click", function(){ 
            this.openInfoWindow(infoWindow); 
                });
          }
      

  2.   


    问题找到了
    var lat=result[i].Y.toString(); 
    var lng=result[i].X.toString();          
    var point = new BMap.Point(lat,lng); 
    其中只要把lat和lng的位置换一下就可以了,也就是说,应该是
    var point = new BMap.Point(lng,lat); 也谢谢版主,设置全局变量解决了页面原先存在的一个脚本问题