📄 mousereal.js
字号:
if( epCheckMouse_Map() && ( blSetStartTool || blSetBStartTool )) //-起点
{
drawSetPt(1,downX,downY);
if (blSetStartTool)
{
document.all.startName.value="";
}
else document.all.bstartName.value="";
}
if( epCheckMouse_Map() && (blSetEndTool || blSetBEndTool)) //-终点
{
drawSetPt(2,downX,downY);
if (blSetEndTool)
{
document.all.endName.value="";
}
else document.all.bendName.value="";
}
epMouseClick(e);
}
function epMouseUp(e)
{
upX = moveX;
upY = moveY;
blDown = false;
if( epCheckMouse_Map() && ( blRectTool || blMoveTool || blCircleTool ) )
{
szXY = (downX-left) + " " + (downY-top) + "," + (upX-left) + " " + (upY-top)
mtSubmitFromMap( szXY );
submitDrag(downX,downY,upX,upY);
}
}
function epMouseClick(e)
{
clickX = moveX;
clickY = moveY;
eventId = event.srcElement.id;
if( blClickTool && epCheckMouse_Map())
mtSubmitFromMap( (clickX-left) + " " + (clickY-top) );
if( epCheckMouse_Map() && blDblLineTool )
{ // 画虚线
divNum = divNum + 1;
lineX[divNum] = clickX - left;
lineY[divNum] = clickY - top;
if (divNum>9)
{
alert('最大为9段,请重新选择!');
if(divNum>10) clearRuler();
}
if (divNum>1)
{
OldRuler = OldRuler + calDistance(lineX[divNum],lineY[divNum],lineX[divNum-1],lineY[divNum-1]);
}
}
if( epCheckMouse_Bar() ) { // 滑轨
epGetScale( moveY );
lcMoveLayer( szLayerBar, Bar_Left,clickY);
epSetMap_Bar();
mtSumbitMapZoom( scale );
}
}
function clearRuler()
{
OldRuler=0.0;
var i;
for (i=0;i<10 ;i++ )
{
lcHideLayer( 'div'+ i );
epSetMeasureq( i, 0, 0, 0, 0, "" );
}
divNum =0 ;
}
function epMouseDbclick(e)
{
eventId = event.srcElement.id;
var szXY = ""
if( epCheckMouse_Map() && blDblLineTool ) { // 画虚线
for ( var i=0; i< lineX.length; i++ ) {
szXY = szXY + lineX[i] + " " + lineY[i] + ","
}
szXY = szXY.substring(0,szXY.length-1)
//mtSubmitFromMap( szXY ); // wsd add 客户端计算
divNum = -1;
lineY = new Array();
lineX = new Array();
}
}
function epSetMap_Bar()
{
var w = width / scale;
var h = height / scale;
var x = width/2 * ( 1 - 1/scale );
var y = height/2 * ( 1 - 1/scale );
lcChangeImgSize( w, h );
lcSetImgSize( szImageMapBg, w, h );
lcMoveLayer( szLayerMapImage, x, y);
lcMoveLayer( szLayerMapImageBg, x, y);
}
function epGetScale( paramY )
{
if( moveY < Bar_Top )
scale = ( Bar_bgHeight / 2 ) / ( ( ( Bar_Top - Bar_Height / 2 ) - paramY ) * 2 + Bar_bgHeight / 2 )
if( moveY > Bar_Top )
scale = ( ( paramY - ( Bar_Top - Bar_Height / 2 ) ) * 2 + Bar_bgHeight / 2 ) / ( Bar_bgHeight / 2 );
if( scale > 3 ) scale = 3;
if( scale < 1/3 ) scale = 1/3;
}
function epCheckMouse_Bar()
{
if( moveX > Bar_bgLeft && moveX < ( Bar_bgLeft + Bar_bgWidth ) &&
moveY > Bar_bgTop && moveY < ( Bar_bgTop + Bar_bgHeight-10 ) &&
blBarExit && eventId == szLayerBarMask && downID != szLayerOutput)
return true;
else
return false;
}
function drawSetPt(locNum,locX,locY)
{
var layName;
calCoord(locX,locY);
switch(locNum)
{
case 1:
layName = 'divStart'; //- 起点
startPtX=curX;
startPtY=curY;
//alert('x:'+startPtX+'y:'+startPtY);
break;
case 2:
layName = 'divEnd'; //- 终点
endPtX=curX;
endPtY=curY;
//alert('x:'+endPtX+'y:'+endPtY);
break;
case 3:
layName = 'divMove'; //- 移动点
break;
}
document.all( layName ).style.top = locY-11;
document.all( layName ).style.left = locX-11;
lcShowLayer( layName);
}
function drawMovePt(locNum,moveX,moveY)
{
var layName;
var locX,locY;
locX = calPixelX(moveX);
locY = calPixelY(moveY);
switch(locNum)
{
case 1:
layName = 'divStart'; //- 起点
startPtX=moveX;
startPtY=moveY;
break;
case 2:
layName = 'divEnd'; //- 终点
endPtX=moveX;
endPtY=moveY;
break;
case 3:
layName = 'divMove'; //- 移动点
break;
}
lcShowLayer( layName);
document.all( layName ).style.top = locY-11;
document.all( layName ).style.left = locX-11;
}
function epAddUserLine( d )
{
lcShowLayer( 'div'+ d );
var MmX = lineX[divNum] + left;
var MmY = lineY[divNum] + top;
var McX = moveX;
var McY = moveY;
var szHtml;
szHtml = ""+calDistance(MmX,MmY,McX,McY)+",";
interRulerResult( szHtml );
if( McY > top + height ) McY = top + height;
if( McY < top ) McY = top;
if( McX > left + width ) McX = left + width;
if( McX < left ) McX = left;
if( McX -MmX >-2 && McX -MmX <2 ) //1
{
if (MmY>McY) epSetMeasureq( d, McY, (MmX+McX)*0.5, 2, MmY - McY, 'images/vv.gif' );
else epSetMeasureq( d, MmY, (MmX+McX)*0.5, 2, McY - MmY, 'images/vv.gif' );
}
else if(McY - MmY>-2 && McY - MmY<2) //1
{
if (MmX>McX) epSetMeasureq( d, (MmY+McY)*0.5-8, McX, MmX - McX, 2, 'images/vh.gif' );
else epSetMeasureq( d, (MmY+McY)*0.5-8, MmX, McX - MmX, 2, 'images/vh.gif' );
}
else if( McX > MmX && McY > MmY ) //1
epSetMeasureq( d, MmY, MmX, McX-MmX, McY-MmY, 'images/tr.gif' );
else if( McX > MmX && McY < MmY ) //2
epSetMeasureq( d, McY,MmX,McX-MmX,MmY-McY, 'images/tl.gif' );
else if( McX < MmX && McY > MmY ) //3
epSetMeasureq( d,MmY,McX,MmX-McX,McY-MmY, 'images/tl.gif' );
else if( McX < MmX && McY < MmY ) //4
epSetMeasureq( d,McY,McX,MmX-McX,MmY-McY, 'images/tr.gif' );
}
function epSetMeasureq( pname, ptop, pleft, pwidth, pheight, psrc )
{
document.all( 'div' + pname ).style.top = ptop;
document.all( 'div' + pname ).style.left = pleft;
document.all( 'img' + pname ).width = pwidth;
document.all( 'img' + pname ).height = pheight;
document.all( 'img' + pname ).src = psrc;
}
function calDistance(ix1,iy1,ix2,iy2)
{
var dist,sc;
dist = Math.sqrt((ix2-ix1)*(ix2-ix1)+(iy2-iy1)*(iy2-iy1))*(eRight-eLeft)/MapPicWidth;
dist = Math.round(dist*100)/100;
return dist;
}
function epRect()
{
if( moveX<downX && moveY<downY ) { // No.2
lcResizeLayer('layRect',downX-moveX,downY-moveY);
lcMoveLayer('layRect',moveX,moveY);
} else if( moveX>downX && moveY<downY ) { // No.1
lcResizeLayer('layRect',moveX-downX,downY-moveY);
lcMoveLayer('layRect',downX,moveY);
} else if( moveX<downX && moveY>downY ) { // No.3
lcResizeLayer('layRect',downX-moveX,moveY-downY);
lcMoveLayer('layRect',moveX,downY);
} else if( moveX>downX && moveY>downY ) { // No.4
lcResizeLayer('layRect',moveX-downX,moveY-downY);
lcMoveLayer('layRect',downX,downY);
}
}
function epInitMappage() {
downX = 0;
downY = 0;
moveX = 0;
moveY = 0;
lcHideLayer( szLayerLoading );
lcHideLayer( szLayerBorder );
lcResizeLayer( szLayerBorder, 1, 1 );
lcMoveLayer( szLayerBorder, -10, -10 );
lcChangeImgSize( width, height ); //- wsd add
lcMoveLayer( szLayerMapImage, 0, 0 );
lcShowLayer( szLayerMapImage );
for(i=0; i<=9; ++i) {
lcHideLayer( 'div' + i );
lcMoveLayer( 'div' + i, -10, -10 );
lcResizeLayer('div' + i, 1, 1 );
}
if( blBarExit )
lcMoveLayer( szLayerBar, Bar_Left, Bar_Top );
}
function drawCircleLayer(isInith)
{
var rDist;
var i,x1,y1,x2,y2;
if (isInith)
{
rDist=2.0;
}
else
{
rDist = Math.sqrt((downX - moveX)*(downX - moveX)+(downY- moveY)*(downY- moveY));
var szHtm = "提示信息<br><hr>当前半径为:" + calDistance(downX,downY,moveX,moveY) + " 米<br>"
frmMappage.lcReplaceLayerContent( szLayerOutput, szHtm );
}
for (i=1;i<9 ;i++ )
{
x1=Math.cos((i-0.25)*3.1415926/4)*rDist + downX;
y1=Math.sin((i-0.25)*3.1415926/4)*rDist + downY;
x2=Math.cos((i+0.75)*3.1415926/4)*rDist + downX;
y2=Math.sin((i+0.75)*3.1415926/4)*rDist + downY;
if (isInith)
{
lcShowLayer( 'div'+ i );
}
drawLine(i,x1,y1,x2,y2);
}
}
function drawLine(d,MmX1,MmY1,McX1,McY1)
{
if( McY1 > top + height ) McY1 = top + height;
if( McY1 < top ) McY1 = top;
if( McX1 > left + width ) McX1 = left + width;
if( McX1 < left ) McX1 = left;
if( McX1 -MmX1 >-2 && McX1 -MmX1 <2 ) //1
epSetMeasureq( d, MmY1, MmX1, McX1-MmX1, McY1-MmY1, 'images/vv.gif' );
else if(McY1 - MmY1>-2 && McY1 - MmY1<2) //1
epSetMeasureq( d, MmY1, MmX1, McX1-MmX1, McY1-MmY1, 'images/vh.gif' );
else if( McX1 > MmX1 && McY1 > MmY1 ) //1
epSetMeasureq( d, MmY1, MmX1, McX1-MmX1, McY1-MmY1, 'images/tr.gif' );
else if( McX1 > MmX1 && McY1 < MmY1 ) //2
epSetMeasureq( d, McY1,MmX1,McX1-MmX1,MmY1-McY1, 'images/tl.gif' );
else if( McX1 < MmX1 && McY1 > MmY1 ) //3
epSetMeasureq( d,MmY1,McX1,MmX1-McX1,McY1-MmY1, 'images/tl.gif' );
else if( McX1 < MmX1 && McY1 < MmY1 ) //4
epSetMeasureq( d,McY1,McX1,MmX1-McX1,MmY1-McY1, 'images/tr.gif' );
}
function epEventNull()
{
document.onmousemove = '';
document.onmousedown = '';
document.onmouseup = '';
document.onclick = '';
document.ondblclick = '';
}
function codeName(scode)
{
var sname;
switch(scode)
{
case '00':
sname = '全部';
break;
case '01':
sname = '政府机关';
break;
case '02':
sname = '科研院所';
break;
case '03':
sname = '餐饮娱乐';
break;
case '04':
sname = '宾馆饭店';
break;
case '05':
sname = '公司企业';
break;
case '06':
sname = '文化教育';
break;
case '07':
sname = '金融银行';
break;
case '08':
sname = '写字楼';
break;
case '09':
sname = '商业网点';
break;
case '10':
sname = '医疗卫生';
break;
case '11':
sname = '旅游景点';
break;
case '12':
sname = '房地产';
break;
case '13':
sname = '邮政电信';
break;
case '14':
sname = '运动场馆';
break;
case '15':
sname = '车站码头';
break;
case '16':
sname = '居民小区';
break;
case '17':
sname = '汽车服务';
break;
case '18':
sname = '行政区划';
break;
case '19':
sname = '街道';
break;
case '20':
sname = '水系';
break;
case '21':
sname = '绿地';
break;
case '22':
sname = '公交线路';
break;
case '23':
sname = '公交车站';
break;
case '24':
sname = '基础地图';
break;
case '25':
sname = '建筑物';
break;
case '26':
sname = '高程测点';
break;
default:
sname = '其它';
break;
}
return sname;
}
function mtSubmitFuzzyQuery()
{
if(!isReqing)
{
var bolSubmit = false;
if(mtSubmitFuzzyQuery.arguments[0] == false)
{
if( window.event.keyCode == 13 ) bolSubmit = true;
}
if(bolSubmit || mtSubmitFuzzyQuery.arguments[0] != false)
{
var maptool = "FuzzyQuery";
var szLyr = document.all.selSearchLayer.options[document.all.selSearchLayer.selectedIndex].value;
var szName = document.all.txtFindString.value;
if (szName.length>0)
{
var strSql = 'MAIN_NAME LIKE "%' + szName + '%"';
if (szLyr>"00")
{
strSql = strSql + ' and fir_type="' + szLyr + '"';
}
setStrsql(2,"ALLUNIT",strSql);
}
else alert("名称为空,请重新输入!");
}
}
else alert("正在加载地图数据,请稍候!");
}
function mtSubmitAdvanceQuery()
{
if(!isReqing)
{
var bolSubmit = false;
bolSubmit = true;
var maptool = "FuzzyQuery";
var szLyr;
var szName;
var szOrder;
var strSql='',sand=' and ';
var nofirst=false;
szName = document.all.Txt_Name.value;
if (szName.length>0)
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql += 'UNAME LIKE "%' + szName + '%"';
}
szLyr = document.all.SelFir_Type.options[document.all.SelFir_Type.selectedIndex].value;
szLfir = szLyr;
if (szLyr>"00")
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql = strSql + ' fir_type="' + szLyr + '"';
}
szLyr = document.all.SelSec_Type.options[document.all.SelSec_Type.selectedIndex].value;
if ((szLyr>"00") && (szLfir>"00"))
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql = strSql + ' sec_type="' + szLyr + '"';
}
szName = document.all.Txt_Address.value;
if (szName.length>0)
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql += 'locat_add LIKE "%' + szName + '%"';
}
szName = document.all.Txt_Telephone.value;
if (szName.length>0)
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql += ' telphone LIKE "%' + szName + '%"';
}
szName = document.all.Txt_Introduce.value;
if (szName.length>0)
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql += 'introduce LIKE "%' + szName + '%"';
}
szName = document.all.Txt_Cadastral.value;
if (szName.length>0)
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql += 'cadastral LIKE "' + szName + '%"';
}
szName = document.all.Txt_Cocode.value;
if (szName.length>0)
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql += 'ent_coding LIKE "%' + szName + '%"';
}
szName = document.all.Txt_Alias.value;
if (szName.length>0)
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql += 'alias_name LIKE "%' + szName + '%"';
}
szName = document.all.Txt_Code.value;
if (szName.length>0)
{
if (nofirst)
{
strSql += sand;
}
nofirst=true;
strSql += 'coding LIKE "' + szName + '%"';
}
if (nofirst)
{
//strSql += ' order by fir_type';
setStrsql(2,"ALLUNIT",strSql);
}
else alert("参数为空,请填写!");
}
else alert("正在加载地图数据,请稍候!");
}
function calCoord(mouseX,mouseY)
{
var sc = (eRight-eLeft)/MapPicWidth;
curX = Math.round(eLeft + sc*(mouseX - MapPicLeft));
curY = Math.round(eTop - sc*(mouseY - MapPicTop));
}
function calPixelX(locX)
{
var sc = (eRight-eLeft)/MapPicWidth;
var coordX = (locX-eLeft)/sc + MapPicLeft;
coordX = Math.round(coordX);
return(coordX);
}
function calPixelY(locY,coordY)
{
var sc = (eRight-eLeft)/MapPicWidth;
var coordY = (eTop-locY)/sc + MapPicTop;
coordY = Math.round(coordY);
return(coordY);
}
function revertToolPic()
{
document.zoomin.src="images/zoomin_1.gif";
document.zoomout.src="images/zoomout_1.gif";
document.identify.src="images/identify_1.gif";
document.pan.src="images/pan_1.gif";
document.measure.src="images/measure_1.gif";
}
function setToolPic(functName)
{
revertToolPic();
focus();
switch(functName)
{
case "Zoom In":
document.zoomin.src="images/zoomin_2.gif";
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -