百度地图离线打点jquery

//地图显示部分
function Map_UserGi(options) {
	var dataList;
	var map = {};
	var opts = {
			width : 30,     // 信息窗口宽度
			height: 30,     // 信息窗口高度
			title : "" , // 信息窗口标题
			enableMessage:true,//设置允许信息窗发送短息
			message:""
		};

	return {
		'show':function(renderId, params) {
           
			var outputPath = "离线地图的地址";
            var fromat = ".png";	
            var tileLayer = new BMap.TileLayer();
            tileLayer.getTilesUrl = function (tileCoord, zoom) {
                var x = tileCoord.x;
                var y = tileCoord.y;
                var url = outputPath + zoom + '/' + x + '/' + y + fromat;
                return url;
            }
            var overlays = [];
            dataList = null;
            var tileMapType = new BMap.MapType('tileMapType', tileLayer,{minZoom: 1, maxZoom: 16});          
            map = new BMap.Map("map-main", { mapType: tileMapType });
			var point = new BMap.Point(params.lg,params.lat);
		 
			map.centerAndZoom(point,9); 
			map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放		
			map.addControl(new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT}));    // 添加比例尺控件		
			//切换后去除所有覆盖物
	    	map.clearOverlays();
		     
		    if(params.file_id != ''){
		    	//获取用户分布
				this.get_users(point,params, overlays);	
		     }
	    	//加载用户地理信息
		    var pointsView = [];    //存放点的数组
		    for (var idx in dataList) {
				var point = new BMap.Point(dataList[idx].lg, dataList[idx].lat);
				pointsView.push(point);
				//用户地理信息,用小红人标志
				exceptionIcon = new BMap.Icon("/tagcloud-web-home/statics/images/user-exception.png", new BMap.Size(20,20));
				var marker = new BMap.Marker(point, {icon:exceptionIcon});  // 创建标注
				map.addOverlay(marker);
				marker.addEventListener("click",attribute);
				//获取覆盖物位置
				function attribute(e){
				var p = e.target;
				 for (var i in dataList) {
					var infoWindow = new BMap.InfoWindow("用户地理信息<br>经度:" + point.lng+ "<br>纬度:" + point.lat, opts);  // 创建信息窗口对象 
					if(dataList[i].lg == p.getPosition().lng && dataList[i].lat == p.getPosition().lat){
						map.openInfoWindow(infoWindow,new BMap.Point(p.getPosition().lng, p.getPosition().lat)); //开启信息窗口
					 }
				 }
				   
				}
				map.setViewport(pointsView); //将所有的点放置在最佳视野内
			}
		},
		
		//获取用户地理信息数据
		'get_users':function (point,params, overlays) {
			var loading1 = layer.msg('处理中', {
				icon: 16,
				shade: 0.5,
				offset: 't',
			});
			// 获取用户 
			url = get_context_path("supersearch/dimUserGiConf/getGiList.json");
		    $.ajax({
		        type : "get",
		        async : false,       
		        url : url,
		        data : {"file_id":params.file_id},
		        dataType : "json",
		        success : function(result) {
		            if (result.success) {
		            	if (result.data == undefined) {
		            		//清空列表缓存
		            		dataList = null;
		            		alert("该范围内没有用户信息!");
		            		return false;
		            	}
		            	dataList = result.data;
                     
		            }
		       },
		       
		       error : function(errorMsg) {
		    	   alert("地图请求数据失败!");
		       }
		    });
		}
	}
};

1.需要引入的js:

apiv2.0.min.js

2.调用方式:

    var map = Map_UserGi({});
    map.show("map-main", params);

猜你喜欢

转载自my.oschina.net/chendongj/blog/1616981
今日推荐