⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newmap.js

📁 正在使用的大型OA系统
💻 JS
字号:
initMapParameter(); //初始化标注点、线、面参数

var PoiArr;
var LineArr;
var mapLock;
var mapLockMsg;

function initMapParameter() {
	PoiArr = new Array();//放入所有 点 对像的数组
	LineArr = new Array();//放入所有 线,面 对像的数组
	mapLock = false; //操作地图锁, true时不能利用工具栏对地图进行新增标注点、线、面的操作
	mapLockMsg = ""; //地图加锁后,显示的提示信息
}
//显示控制条
function showMapControl() {
	//mapControl = new MStandardControl();
	//maplet.addControl(mapControl);
	maplet.showControl(true);
}
//隐藏控制条
function hideMapControl() {
	//maplet.removeControl();
	maplet.showControl(false);
}
//标尺模式
function setMeasureMode(){
	maplet.setCursorIcon(null);
	maplet.setMode("measure",setMoveMode);
}
//地图拉框放大模式
function setZoominMode(){
	//maplet.setMode("zoomin",setMoveMode);
	maplet.setMode("zoomin");
}
//地图拉框缩小模式
function setZoomoutMode(){
	//maplet.setMode("zoomout",setMoveMode);
	maplet.setMode("zoomout");
}
//移动模式
function setMoveMode(){
	maplet.setMode("pan");//设定地图移动方式
}
//地图标点方式
function setPoiMode(icon){
	if(!mapLock) {
		maplet.setMode("bookmark", poiCallback);
		var pIcon = icon || mapPoiConfig.poiIcon;
		maplet.setCursorIcon(pIcon);
	} else {
		altStr = "无法标注!";
		if(mapLockMsg.length>0) altStr += ("\n\n原因:" + mapLockMsg);
		alert(altStr);
	}
}
//地图画线方式
function setLineMode(){
	if(!mapLock) {
		maplet.setCursorIcon(null);
		setMoveMode();
		maplet.setMode("drawline",lineCallback);
	} else {
		altStr = "无法画线!";
		if(mapLockMsg.length>0) altStr += ("\n\n原因:" + mapLockMsg);
		alert(altStr);
	}
}
//地图画面方式
function setAreaMode(){
	if(!mapLock) {
		maplet.setCursorIcon(null);
		setMoveMode();
		maplet.setMode("drawarea",lineCallback);
	}
}
//编辑模式
function setEditMode(){
	maplet.setMode("edit",editCallback);
}
//地图重新设置大小
function setMapSize(xWidth,xHeight){
	var w = mapWidth;
	var h = mapHeight;
	
	if (isNum(xWidth)){
		w = parseInt(xWidth);
	}	
	if (isNum(xHeight)){
		h = parseInt(xHeight);
	}
	maplet.resize(w,h);
}
//设置地图中心点
function setMapCenter(strlatlon){
	var point = new MPoint(strlatlon);
	maplet.setCenter(point);
}
//获取当前地图中心点
function getMapCenter(){
	return maplet.getCurrentMap();
}
//地图设置缩放比例
function setMapZoom(zoom){
	maplet.setZoomLevel(zoom);
}
//地图设置中心点与缩放比例
function setMapCenterAndZoom(strlatlon,zoom){
	var point = new MPoint(strlatlon);
	maplet.centerAndZoom(point, zoom);
}

//刷新地图
function mapRefresh(){
	maplet.refresh();
}
//清除地图标点、线、面
function mapClean(){
	if(!mapLock) {
	  initMapParameter();
		maplet.clearOverlays();
		maplet.clean();
	}
}

//显示Loading信息控制
function showMapLoading(msg)	{
	document.getElementById("LoadMessage").innerHTML= "<b>" + msg + "</b>";
	MapLoadingDiv.style.display = "block";
	//锁住地图新增功能
	mapLockMsg = "当前状态--" + msg;
	mapLock = true;
}	
//隐藏Loading信息控制
function hideMapLoading()	{
	MapLoadingDiv.style.display = "none";

	//给地图解锁
	mapLockMsg = "";
	mapLock = false;
}

//--------------------画点操作------------------
//标点后处理
function poiCallback(strURL) {
	setMoveMode();
	
	//关闭地图显示的气泡信息
	maplet.hideBubble();
	
	//调用页面函数,进行页面自行处理
	poiCallback_fun(strURL);

}

//从集合中根据objId获取Poi对象
function getPoiByObjId(objId) {
	var pIndex = getPoiIndexByObjId(objId);
	if(pIndex==-1){
		return null;
	} else {
		return PoiArr[pIndex];
	}
}

//从集合中根据Id获取Poi对象
function getPoiById(Id) {
	var pIndex = getPoiIndexById(Id);
	if(pIndex==-1){
		return null;
	} else {
		return PoiArr[pIndex];
	}
}
//从集合中根据Id内容 like 方法 获取其中一个Poi对象
function getPoiByLikeId(Id) {
	var pIndex = getPoiIndexByLikeId(Id);
	if(pIndex==-1){
		return null;
	} else {
		return PoiArr[pIndex];
	}
}
//从集合中根据objId查找Poi对象的Index
function getPoiIndexByObjId(objId) {
	for(var i=0; i<PoiArr.length; i++) {
		if(objId == PoiArr[i].objId) {
			return i;
		}
	}
	return -1;
}

//从集合中根据Id查找Poi对象的Index
function getPoiIndexById(Id) {
	for(var i=0; i<PoiArr.length; i++) {
		if(Id == PoiArr[i].id) {
			return i;
		}
	}
	return -1;
}
//从集合中根据Id内容 like 方法 查找其中一个Poi对象的Index
function getPoiIndexByLikeId(Id) {
	for(var i=0; i<PoiArr.length; i++) {
		if(PoiArr[i].id.indexOf(Id)>-1) {
			return i;
		}
	}
	return -1;
}
//显示指定标注点的信息
function showPoiInfoByObjId(objId) {
	var i = getPoiIndexByObjId(objId);
	if(i>-1){
		if(PoiArr[i].preIconReadSign<1000 && (PoiArr[i].preIcon==null || !PoiArr[i].preIcon.complete)){
			setTimeout("showPoiInfoById('"+Id+"')",10);
		}else if(PoiArr[i].preIcon!=null && PoiArr[i].preIcon.complete){
			setTimeout("PoiArr["+i+"].marker.openInfoWindow()",10);
		}
	}else{
		//alert("该点不存在,请刷新列表");
	}
}
function showPoiInfoById(Id) {
	var i = getPoiIndexById(Id);
	if(i>-1){
		if(PoiArr[i].preIconReadSign<1000 && (PoiArr[i].preIcon==null || !PoiArr[i].preIcon.complete)){
			setTimeout("showPoiInfoById('"+Id+"')",10);
		}else if(PoiArr[i].preIcon!=null && PoiArr[i].preIcon.complete){
			setTimeout("PoiArr["+i+"].marker.openInfoWindow()",10);
		}
	}else{
		//alert("该点不存在,请刷新列表");
	}
}


//在地图上修改点
function updatePoi(poiObj) {
	
	if(poiObj.preIconReadSign<1000 && (poiObj.preIcon==null || !poiObj.preIcon.complete)){
		setTimeout("updatePoi(getPoiByObjId('"+poiObj.objId+"'))",10);
	} else {
		var poiMarker = poiObj.marker;
		poiMarker.icon.img.innerHTML = poiObj.getMarkerIcon();
		poiMarker.info.title = poiObj.getMarkerTitle();
		poiMarker.info.content = poiObj.getMarkerContent();
		poiMarker.paint();
		poiObj.marker = poiMarker;
	}
}

//在地图上删除指定点
function delPoi(poiObj) {
	var poiMarker = poiObj.marker;
	maplet.removeOverlay(poiMarker);
	
	var i = getPoiIndexByObjId(poiObj.objId)
	PoiArr.splice(i,1);
}
//在地图上删除最后显示的点
function delLastPoi() {
	poiObj = PoiArr[PoiArr.length-1];
	delPoi(poiObj)
}

//--------------------画线、面操作------------------
//画线、面后处理
function lineCallback(strURL) {
	var begin = strURL.indexOf("&latlon=");
	var end = strURL.indexOf("&zm=");
	var strLatLon = strURL.substring(begin+8,end);
	setMoveMode();
	//mapRefresh();
	
	maplet.removeLineAt(0); //这种方式要注意保证地图上没有其他地方使用旧方法画线
	maplet.refresh();
	
	//调用页面函数,进行页面自行处理
	lineCallback_fun(strURL);
	
	//showMapLoading("正在检索区域信息,请稍候...")
}

//从集合中根据objId获取Line对象
function getLineByObjId(objId) {
	var lineIndex = getLineIndexByObjId(objId);
	if(lineIndex==-1){
		return null;
	} else {
		return LineArr[lineIndex];
	}
}

//从集合中根据Id获取Line对象
function getLineById(Id) {
	var lineIndex = getLineIndexById(Id);
	if(lineIndex==-1){
		return null;
	} else {
		return LineArr[lineIndex];
	}
}
//从集合中根据Id内容 like 方法 获取其中一个Line对象
function getLineByLikeId(Id) {
	var lineIndex = getLineIndexByLikeId(Id);
	if(lineIndex==-1){
		return null;
	} else {
		return LineArr[lineIndex];
	}
}

//从集合中根据objId查找Line对象的Index
function getLineIndexByObjId(objId) {
	for(var i=0; i<LineArr.length; i++) {
		if(objId == LineArr[i].objId) {
			return i;
		}
	}
	return -1;
}

//从集合中根据Id查找Line对象的Index
function getLineIndexById(Id) {
	for(var i=0; i<LineArr.length; i++) {
		if(Id == LineArr[i].id) {
			return i;
		}
	}
	return -1;
}
//从集合中根据Id内容 like 方法 查找其中一个Line对象的Index
function getLineIndexByLikeId(Id) {
	for(var i=0; i<LineArr.length; i++) {
		if(LineArr[i].id.indexOf(Id)>-1) {
			return i;
		}
	}
	return -1;
}
//显示指定线、面的信息
function showLineInfoByObjId(objId) {
	var i = getLineIndexByObjId(objId);
	if(i>-1){
		setMapCenter(LineArr[i].centerlatlon);
		LineArr[i].marker.openInfoWindow();
	}else{
		//alert("该 线或面 不存在,请刷新列表");
	}
}
function showLineInfoById(Id) {
	var i = getLineIndexById(Id);
	if(i>-1){
		setMapCenter(LineArr[i].centerlatlon);
		LineArr[i].marker.openInfoWindow();
	}else{
		//alert("该 线或面 不存在,请刷新列表");
	}
}

//在地图上增加线、面
function addLine(lineObj) {
	
	var infoWindow = new MInfoWindow(lineObj.getMarkerTitle(), lineObj.getMarkerContent());
	var lineBrush = new MBrush();
	lineBrush.color=lineObj.color; //线颜色
	lineBrush.stroke=lineObj.stroke; //线粗细
	lineBrush.style=0; //未知功能
	lineBrush.fill=false; //false画线;true画面
	lineBrush.bgcolor=lineObj.color; //面颜色
	lineBrush.transparency=60; //线透明度
	lineBrush.bgtransparency=30; //面透明度
	lineBrush.arrow=0; //未知功能
	
	var lineMarker = new MPolyline( lineObj.getMPointArray(), lineBrush, infoWindow);
	maplet.addOverlay(lineMarker);//打点
	
	lineObj.marker = lineMarker;
	LineArr.push(lineObj);
}
//在地图上修改线、面
function updateLine(lineObj) {

	var lineMarker = lineObj.marker;

	lineMarker.info.title = lineObj.getMarkerTitle();
	lineMarker.info.content = lineObj.getMarkerContent();
	lineMarker.pts = lineObj.getMPointArray();
	lineMarker.paint();
	lineObj.marker = lineMarker;
}

//在地图上删除指定线、面
function delLine(lineObj) {
	var lineMarker = lineObj.marker;
	maplet.removeOverlay(lineMarker);
	
	var i = getLineIndexByObjId(lineObj.objId)
	LineArr.splice(i,1);
}

//在地图上删除最后显示的线、面
function delLastLine() {
	lineObj = LineArr[LineArr.length-1];
	delLine(lineObj)
}

//检查整数数字
function isNum(xstr){
	var reg = /^\d+$/ ; 
	var r = reg.test(xstr)
	if (r==true){
		return true;
	} else {
		return false;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -