亲们........我现在遇到一个问题急需大家帮助啊!!!!!
最近因为工作需要在研究百度地图
现在遇到一个问题
需要实现一个再地图上手动绘折线的demo,我不知道怎么存储地图上点击的坐标!请赐教啊!不要再告诉我去看百度API实例了,恕我菜啊!真的没找到怎么记录鼠标点下的点!
var map = new BMap.Map("container");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
var polyline = new BMap.Polyline([
  new BMap.Point(116.399, 39.910),
  new BMap.Point(116.405, 39.920)
], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
map.addOverlay(polyline);
这个是添加折线覆盖物的代码。但是这里是给定的point,如何获取地图上自己点击的点,并且是多个点的坐标...
如果有知道的XDJM千万不要路过啊
一定帮帮偶哈!!!

解决方案 »

  1.   

    Polyline 折线。存放的就是数组。
    var polyline = new BMap.Polyline([
      new BMap.Point(116.399, 39.910),
      new BMap.Point(116.405, 39.920)

    ], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});建立一个数组,点击地图的某一个点,push到这个数组里。
    然后传到这个方法。重新绘制地图上的折线即可。
      

  2.   

    like this:
            var points = [];
            map.addEventListener("click", function (e) {
                map.clearOverlays();
                points.push(new BMap.Point(e.point.lng, e.point.lat));
                DrawPolyline(points);
            });        function DrawPolyline(points) {
                var polyline = new BMap.Polyline(points, {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
                map.addOverlay(polyline);
            }
      

  3.   

    通过百度贴吧得到了解决,貌似在这里说在百度贴吧得到解决的会遭到砖头哦!
    不好意思....呵呵
    下面是代码
    有需要的也可以问我呵呵!
    同时感谢提供帮助的童鞋们!
    谢谢你们哈!设置map的click事件。
    var p = []; //用来存储折线的点
    var polyline;
    var doneDraw = 0; //判断是否绘制折线结束map.addEventListener("click",function(e1){ 
    //当鼠标单击时
    if(doneDraw == 0){ 
    //判断是否绘制曲线完毕
    p.push(new BMap.Point(e.point.lng,e.point.lat)) //存储曲线上每个点的经纬度
    if(polyline){polyline.setPath(p);

    //如果曲线存在,则获取折线上的点
    else{
    polyline = new BMap.Polyline(p);

    //如果折线不存在,就增加此点
    if(p.length<2){
    return ;

    //当折线上的点只有一个时,不绘制
    map.addOverlay(polyline); //绘制曲线

    }); 
      

  4.   

    @wiki14   的方法可行