开发者社区> 问答> 正文

百度离线地图2.0应用中,下载了你给的测试代码,但是基本的地图类型和缩放功能都无效了 配置报错 

@Cody_Yu 你好,想跟你请教个问题:
百度离线地图2.0应用中,下载了你给的测试代码,但是基本的地图类型和缩放功能都无效了

展开
收起
kun坤 2020-05-31 18:15:55 567 0
1 条回答
写回答
取消 提交回答
  • 我刚试了好用啊,好像需要你强制刷新一下浏览器?######

    引用来自“Cody_Yu”的评论

    我刚试了好用啊,好像需要你强制刷新一下浏览器?

    恩,可以了,我现在碰到个新问题,我创建了三个marker,给每个marker绑定了个click事件,当点击的时候创建一个circle,不知道什么原因,点击后没效果

    var json_data = [[119.906,31.810],[119.910,31.807],[119.906,31.808]];var json_labels = ["cush_1","cush_2","cush_3"]; 
    for(var i=0;i<json_data.length;i++){ 
    var marker = new BMap.Marker(new BMap.Point(json_data[i][0], json_data[i][1])); // 创建点  var label = new BMap.Label(json_labels[i],{offset:new BMap.Size(20,-10)}); label.setStyle({border:"1px solid #ccc",fontSize:"14px"}); marker.setLabel(label); 
    map.addOverlay(marker); //增加点  
     marker.addEventListener("click",search);
    } 
    function search(e){ 
    var p= e.target; 
    var cMap = p.getMap();
     var circle = new BMap.Circle(new BMap.Point(119.906, 31.810),800,{fillColor:"blue", strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3});
     cMap.addOverlay(circle);
    }
    ###### 你的问题,第一,addEventListener语句挪到addOverlay前面去有效;第二,你画的圈圈太小了,需要放大地图才能看到,然后就是,可以直接从e.target.point来获取目标marker的坐标点。
    var json_data = [[119.906,31.810],[119.910,31.807],[119.906,31.808]];
    var json_labels = ["cush_1","cush_2","cush_3"]; 
    
    for(var i=0;i<json_data.length;i++){ 
    	var marker = new BMap.Marker(new BMap.Point(json_data[i][0], json_data[i][1])); // 创建点
    	marker.enableDragging();//这是我增加的功能测试,拖动也能用
    	var label = new BMap.Label(json_labels[i],{offset:new BMap.Size(20,-10)});
    	label.setStyle({border:"1px solid #ccc",fontSize:"14px"});
    	marker.setLabel(label); 
    	marker.addEventListener("click",search);//这一句要在前面
    	map.addOverlay(marker); //增加点   
    }
     
    function search(e){
    	var p= e.target; 
    	var cMap = p.getMap(); 
    	var circle = new BMap.Circle(p.point,800,{fillColor:"blue", strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3});
    	cMap.addOverlay(circle);
    }

    ######

    引用来自“Cody_Yu”的评论

    你的问题,第一,addEventListener语句挪到addOverlay前面去有效;第二,你画的圈圈太小了,需要放大地图才能看到,然后就是,可以直接从e.target.point来获取目标marker的坐标点。
    var json_data = [[119.906,31.810],[119.910,31.807],[119.906,31.808]];
    var json_labels = ["cush_1","cush_2","cush_3"]; 
    
    for(var i=0;i<json_data.length;i++){ 
    	var marker = new BMap.Marker(new BMap.Point(json_data[i][0], json_data[i][1])); // 创建点
    	marker.enableDragging();//这是我增加的功能测试,拖动也能用
    	var label = new BMap.Label(json_labels[i],{offset:new BMap.Size(20,-10)});
    	label.setStyle({border:"1px solid #ccc",fontSize:"14px"});
    	marker.setLabel(label); 
    	marker.addEventListener("click",search);//这一句要在前面
    	map.addOverlay(marker); //增加点   
    }
     
    function search(e){
    	var p= e.target; 
    	var cMap = p.getMap(); 
    	var circle = new BMap.Circle(p.point,800,{fillColor:"blue", strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3});
    	cMap.addOverlay(circle);
    }

    多谢指点,我再试试。能否留下你的qq或者邮箱,多交流
    能否把你测试的代码压缩下发给我下,我这边还是有问题!!!!

    2020-05-31 18:16:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
AIOps-百度的思考与实践 立即下载
百度外卖从IDC到云端服务迁移历程 立即下载
百度研发工具集的应用实践——打造持续交付路上的“三堵墙” 立即下载