<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>3D地图展示</title><style type="text/css">  
html{height:100%}   
body{height:100%;margin:0px;padding:0px}   
#container{height:90%;width:100%}   
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true">
//引用百度地图API
</script></head><body>
<div id="container">
</div><input id="checkbox" name="checkbox" type="checkbox"  >发表微博
<br><input type="Text" name="age" value=" " align="MIDDLE" size="50" maxlength="200"> 
 </body>
</html>
<script type="text/javascript">
    
var i=1;
var er=new Array(999);
//创建和初始化地图函数:
    function initMap(){
        createMap();//创建地图
        setMapEvent();//设置地图事件
        addMapControl();//向地图添加控件
        addUserEvent();//
    }
    
    //创建地图函数:
    function createMap(){
        var map = new BMap.Map("container", {mapType:BMAP_PERSPECTIVE_MAP});//创建地图为3D类型
        var point = new BMap.Point(113.359,23.145);map.setCurrentCity("广州"); //定义一个中心点坐标
        map.centerAndZoom(point,19);//设定地图的中心点和坐标并将地图显示在地图容器中
        window.map = map;//将map变量存储在全局
    }
    
    //地图事件设置函数:
    function setMapEvent(){
        map.enableKeyboard();//启用键盘操作功能
        map.enableDragging();//启用地图拖拽事件,默认启用(可不写)
        map.disableScrollWheelZoom();//禁用地图滚轮放大缩小 默认禁用
        map.disableDoubleClickZoom();//关闭双击放大功能 默认开启
    }
    
    //地图控件添加函数:
    function addMapControl(){
        
                var ctrl_nav = new BMap.NavigationControl ({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_SMALL});  //向地图中添加缩放控件                                     
map.addControl(ctrl_nav);//向地图中添加缩略图控件
        
var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT});
map.addControl(ctrl_ove);
                                        var ctrl_sca = new BMap.ScaleControl()
                                        map.addControl(ctrl_sca);//比例尺控件
                                        
                                                                                                                                          
 }
     function addUserEvent(){map.addEventListener("click",function(e){      if(checkbox.checked==true) { point = new BMap.Point(e.point.lng, e.point.lat);    er[i] = new BMap.Marker(point); map.addOverlay(er[i] );  er[i].addEventListener("rightclick", function(){                        
   er[i].openInfoWindow(new BMap.InfoWindow("World"));        
});      i=i+1  ;              }})
                           
    
                
                        }//添加标注                       
   
initMap();//创建和初始化地图</script>以上为代码 按道理右键标注会出现信息窗口 可是没反应 不知代码哪里有问题

解决方案 »

  1.   

    问题改变了 
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>3D地图展示</title><style type="text/css">  
    html{height:100%}   
    body{height:100%;margin:0px;padding:0px}   
    #container{height:90%;width:100%}   
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true">
    //引用百度地图API
    </script></head><body>
    <div   id="container">
    </div><input id="checkbox" name="checkbox" type="checkbox"  >发表微博
    <br><input type="Text" id="age" name="age" value=" " align="MIDDLE" size="50" maxlength="200"> 
     </body>
    </html>
    <script type="text/javascript">
        
    var i=1;
    var er=new Array(999);
    var temp=new Array(999);//创建和初始化地图函数:
        function initMap(){
            createMap();//创建地图
            setMapEvent();//设置地图事件
            addMapControl();//向地图添加控件
            addUserEvent();//
        }
        
        //创建地图函数:
        function createMap(){
            var map = new BMap.Map("container", {mapType:BMAP_PERSPECTIVE_MAP});//创建地图为3D类型
            var point = new BMap.Point(113.359,23.145);map.setCurrentCity("广州"); //定义一个中心点坐标
            map.centerAndZoom(point,19);//设定地图的中心点和坐标并将地图显示在地图容器中
            window.map = map;//将map变量存储在全局
        }
        
        //地图事件设置函数:
        function setMapEvent(){
            map.enableKeyboard();//启用键盘操作功能
            map.enableDragging();//启用地图拖拽事件,默认启用(可不写)
            map.disableScrollWheelZoom();//禁用地图滚轮放大缩小 默认禁用
            map.disableDoubleClickZoom();//关闭双击放大功能 默认开启
        }
        
        //地图控件添加函数:
        function addMapControl(){
            
                    var ctrl_nav = new BMap.NavigationControl ({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_SMALL});  //向地图中添加缩放控件                                     
    map.addControl(ctrl_nav);//向地图中添加缩略图控件
            
    var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT});
    map.addControl(ctrl_ove);
                                            var ctrl_sca = new BMap.ScaleControl()
                                            map.addControl(ctrl_sca);//比例尺控件
                                            
                                                                                                                                              
     }
         function addUserEvent(){map.addEventListener("click",function(e){      if(checkbox.checked==true) { point = new BMap.Point(e.point.lng, e.point.lat);    er[i] = new BMap.Marker(point); map.addOverlay(er[i] );   temp[i]=  document.getElementById('age').value;              er[i].addEventListener("mouseover", function(){                        
      this.openInfoWindow(new BMap.InfoWindow(  temp[i]));        
    });      i=i+1  ;              }})
                               
        
                    
                            }//添加标注                       
       
    initMap();//创建和初始化地图</script>如何在不同标注出现的信息窗口显示不同信息  信息是通过文本框传递的 上面代码没反应  不知道是不是temp[i]这个数组有什么问题
      

  2.   

    小弟最近也在做这个,出现同样的问题,将InfoWindow存在数组里,每个标注(也存在数组里)添加一个监听事件,单击标注,只显示最后一个信息窗。其他的标注点击一下,只弹出最后一个信息窗
      

  3.   


    http://blog.csdn.net/wangyan8877/article/details/6703522这篇文章能帮助你