下面是js的引用,不行的。地图可以查看。但是标记出不来。求救啊。搞了一天了var map = new BMap.Map("container",{mapType: BMAP_NORMAL_MAP});      //设置卫星图为底图
var point = new BMap.Point(121.46950,31.22643);    // 创建点坐标
map.centerAndZoom(point,14);                     // 初始化地图,设置中心点坐标和地图级别。//map.addControl(new BMap.MapTypeControl());
map.addControl(new BMap.NavigationControl());
map.enableScrollWheelZoom();                  // 启用滚轮放大缩小。
map.enableKeyboard();  // 启用键盘操作。  
map.setCurrentCity("上海");  // 设置地图显示的城市 此项是必须设置的//标注点数组
    var erArr = [{title:"目前位置",content:"我的备注",point:"121.46950"+"|"+"31.22643",isOpen:0,icon:{w:21,h:21,l:0,t:0,x:6,lb:5}}
 ];
 
 //alert(document.cookie.split(";")[1].split("-")[0]+"|"+document.cookie.split(";")[1].split("-")[1].split("=")[0]);
    //创建er
    function addMarker(){
        for(var i=0;i<erArr.length;i++){
            var json = erArr[i];
            var p0 = json.point.split("|")[0];
            var p1 = json.point.split("|")[1];
            var point = new BMap.Point(p0,p1);
var iconImg = createIcon(json.icon);
            var er = new BMap.Marker(point,{icon:iconImg});
var iw = createInfoWindow(i);
var label = new BMap.Label(json.title,{"offset":new BMap.Size(json.icon.lb-json.icon.x+10,-20)});
alert(label);
er.setLabel(label);
            map.addOverlay(er);
            label.setStyle({
                        borderColor:"#808080",
                        color:"#333",
                        cursor:"pointer"
            });

(function(){
alert("createInfoWindow");
var index = i;
var _iw = createInfoWindow(i);
var _er = er;
_er.addEventListener("click",function(){
    _er.openInfoWindow(_iw);
    });
    _iw.addEventListener("open",function(){
    _er.getLabel().hide();
    })
    _iw.addEventListener("close",function(){
    _er.getLabel().show();
    })
label.addEventListener("click",function(){
    _er.openInfoWindow(_iw);
    })
    alert(!!json.isOpen);
if(!!json.isOpen){

label.hide();
_er.openInfoWindow(_iw);
}
})()
        }
        
    }
    //创建InfoWindow
    function createInfoWindow(i){
        var json = erArr[i];
        var iw = new BMap.InfoWindow("<b class='iw_poi_title' title='" + json.title + "'>" + json.title + "</b><div class='iw_poi_content'>"+json.content+"</div>");
        return iw;
    }
    
    //创建一个Icon
    function createIcon(json){
        var icon = new BMap.Icon("images/us_mk_icon.png", new BMap.Size(json.w,json.h),{imageOffset: new BMap.Size(-json.l,-json.t),infoWindowOffset:new BMap.Size(json.lb+5,1),offset:new BMap.Size(json.x,json.h)})
        return icon;
    }

解决方案 »

  1.   

    百度地图的API中,不是自带解决方案吗
    http://developer.baidu.com/map/jsdemo.htm#i1_1
      

  2.   

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
    body, html {width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
    #allmap{width:100%;height:500px;}
    p{margin-left:5px; font-size:14px;}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
    <title>纯文本的信息窗口</title>
    </head>
    <body>
    <div id="allmap"></div>
    <p>点击标注点,可查看由纯文本构成的简单型信息窗口</p>
    </body>
    </html>
    <script type="text/javascript">
    // 百度地图API功能
    var map = new BMap.Map("allmap");
    var point = new BMap.Point(116.417854,39.921988);
    var er = new BMap.Marker(point);  // 创建标注
    map.addOverlay(er);              // 将标注添加到地图中
    map.centerAndZoom(point, 15);
    var opts = {
      width : 200,     // 信息窗口宽度
      height: 100,     // 信息窗口高度
      title : "海底捞王府井店" , // 信息窗口标题
      enableMessage:true,//设置允许信息窗发送短息
      message:"亲耐滴,晚上一起吃个饭吧?戳下面的链接看下地址喔~"
    }
    var infoWindow = new BMap.InfoWindow("地址:北京市东城区王府井大街88号乐天银泰百货八层", opts);  // 创建信息窗口对象 
    er.addEventListener("click", function(){          
    map.openInfoWindow(infoWindow,point); //开启信息窗口
    });
    </script>
    离线数据查询???那要配置强大的数据库后台支持吧先简单的小地图就可以了。
      

  3.   


    看这里var point = new BMap.Point(116.417854,39.921988);
    var er = new BMap.Marker(point);  // 创建标注
    map.addOverlay(er);              // 将标注添加到地图中
    若楼主的离线地图,,,能获取到相关的经纬度BMap.Point
    那么,,,楼主完全可以像百度API中那样,调用百度自身的BMap.Marker,,,创建标注
      

  4.   

    楼主有没有试过在线地图(http://developer.baidu.com/map/jsdemo.htm#i1_1)能不能正常获取到百度的标记呢???
    楼主既然弄了个一样思路的,,,我想知道,,,到底是标记出了问题还是离线导致的问题
    1、若在线能正常得到标记,离线不可----离线导致问题
    2、若在线也无法得到标记----标记写错了
      

  5.   

    楼主有没有试过在线地图(http://developer.baidu.com/map/jsdemo.htm#i1_1)能不能正常获取到百度的标记呢???
    楼主既然弄了个一样思路的,,,我想知道,,,到底是标记出了问题还是离线导致的问题
    1、若在线能正常得到标记,离线不可----离线导致问题
    2、若在线也无法得到标记----标记写错了楼主有没有试过在线地图(http://developer.baidu.com/map/jsdemo.htm#i1_1)能不能正常获取到百度的标记呢???
    楼主既然弄了个一样思路的,,,我想知道,,,到底是标记出了问题还是离线导致的问题
    1、若在线能正常得到标记,离线不可----离线导致问题
    2、若在线也无法得到标记----标记写错了就是离线导致的啦。引入百度的js文件,但是里面很多要关联到百度服务那边的,改了,也不行。估计改错了。你那有改过后的吗?
      

  6.   

    百度没离线地图这一说法,除非安卓或爱疯的地图应用有离线地图数据包。WEB应用必须连接百度服务器
      

  7.   

    http://api.jjszd.com:8081/apituiguang/gistg.html   可看下这个解决方案!!!
      

  8.   

    这里有详细实现离线地图的方案
    http://api.jjszd.com:8081/apituiguang/gistg.html