//地图显示部分
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);