百度地图addEventListener“赋值”参数

时间:2024-01-24 19:38:30

实现点击百度地图上的覆盖物,然后获取覆盖上的属性,进而实现数据传送。

var pointArray=new Array();//创建一个数组存储坐标
    /*在地图上标点*/
    function ShowAllPoint(){
        $.ajax({
            type: "GET",
                url: "http://localhost:27731/api/Welcome/ShowAllPoint",
                data: {},
                dateType: "json",
                params:{"contentType": "application/json;charset=utf-8"},
                success: function (data) {                  
                    for(var i=0;i < data.length;i++){
                        //创建点
                        marker = new BMap.Marker(new BMap.Point(data[i].Longitude,data[i].Latitude));
                        //增加点
                        map.addOverlay(marker);
                        pointArray[i]=new BMap.Point(data[i].Longitude,data[i].Latitude);
                        var _id=data[i].Id;
                        marker.customData={id:_id};//自定义参数id
                        marker.addEventListener("click",attribute);
                    }
                },
                error:function(data) {
                 layer.msg(data.msg,{icon:2,time:3000});
            },
        });
    //让所有点在视野范围内
    map.setViewport(pointArray);
    //获取覆盖物位置
    function attribute(e){
            var p = e.target;
      var id= e.target.customData.id;
            alert("id="+id+"marker的位置是" + p.getPosition().lng + "," + p.getPosition().lat);
       }