📄 newmap2.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();
//调用页面函数,进行页面自行处理
parent.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 addPoi(poiObj) {
var point = new MPoint(poiObj.strlatlon);
if(getPoiIndexByObjId(poiObj.objId)==-1){
PoiArr.push(poiObj);
}
if(poiObj.preIconReadSign<1000 && (poiObj.preIcon==null || !poiObj.preIcon.complete)){
if(poiObj.preIcon==null){
poiObj.preIcon=new Image();
poiObj.preIcon.src=poiObj.icon;
}
poiObj.preIconReadSign++;
setTimeout("addPoi(getPoiByObjId('"+poiObj.objId+"'))",10);
} else {
if(poiObj.preIcon.width<2 || poiObj.preIcon.height<2) {
poiObj.iconWidth = 32;
poiObj.iconHeight = 32;
}else{
poiObj.iconWidth = poiObj.preIcon.width;
poiObj.iconHeight = poiObj.preIcon.height;
}
//alert(poiObj.preIcon.readyState + "--" + poiObj.preIcon.width + "," + poiObj.preIcon.height);
//var icon = new MIcon(poiObj.getMarkerIcon());
//var icon = new MIcon(poiObj.icon);
var icon = new MIcon(poiObj.getMarkerIcon(), poiObj.iconWidth, poiObj.iconHeight,(poiObj.iconWidth*poiObj.iconTargetLeft),(poiObj.iconHeight*poiObj.iconTargetTop));
var infoWindow = new MInfoWindow(poiObj.getMarkerTitle(), poiObj.getMarkerContent());
var poiMarker = new MMarker(point,icon,infoWindow);
//alert(point+"888"+icon+"==="+infoWindow)
maplet.addOverlay(poiMarker);//打点
poiObj.marker = poiMarker;
}
}
//在地图上增加点
function addPoi2(poiObj) {
var point = new MPoint(poiObj.strlatlon);
if(getPoiIndexByObjId(poiObj.objId)==-1){
PoiArr.push(poiObj);
}
if(poiObj.preIconReadSign<1000 && (poiObj.preIcon==null || !poiObj.preIcon.complete)){
if(poiObj.preIcon==null){
poiObj.preIcon=new Image();
poiObj.preIcon.src=poiObj.icon;
}
poiObj.preIconReadSign++;
setTimeout("addPoi(getPoiByObjId('"+poiObj.objId+"'))",10);
} else {
if(poiObj.preIcon.width<2 || poiObj.preIcon.height<2) {
poiObj.iconWidth = 32;
poiObj.iconHeight = 32;
}else{
poiObj.iconWidth = poiObj.preIcon.width;
poiObj.iconHeight = poiObj.preIcon.height;
}
//alert(poiObj.preIcon.readyState + "--" + poiObj.preIcon.width + "," + poiObj.preIcon.height);
//var icon = new MIcon(poiObj.getMarkerIcon());
//var icon = new MIcon(poiObj.icon);
var icon = new MIcon(poiObj.getMarkerIcon(), poiObj.iconWidth, poiObj.iconHeight,(poiObj.iconWidth*poiObj.iconTargetLeft),(poiObj.iconHeight*poiObj.iconTargetTop));
var infoWindow = new MInfoWindow(poiObj.getMarkerTitle(), poiObj.getMarkerContent());
var poiMarker = new MMarker(point,icon,infoWindow);
maplet.addOverlay(poiMarker);//打点
poiObj.marker = poiMarker;
}
}
//在地图上修改点
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 + -