📄 gisviewer3.htc
字号:
var const_db_minY = 2516803.40160971; //将区和县同时显示在可视范围内,5个“区”将非常小
var const_db_maxX = 36543773.0346302; //以至于看不见,这四个常数是能够显示地图的最优比例
var const_db_maxY = 2533669.26772948; //尺,将会在“单病种”,“疾病顺位”中都有应用
/////////////////hzh 2004-11-20 add//////////////////////
var objDSBeginDate; //疾病顺位统计开始时间
var objDSEndDate; //疾病顺位统计结束时间
////////////////////////////////////////////////////////////////////////
var objAccidentReportTimer = null; //公共卫生事件控制::定期(30秒)查询是否存在未处理的公共卫生事件报告
var strPreAccidentIDOfInstitution = ""; //公共卫生事件控制::上次跳转到的医院的ID
var boolAccidentReportChangeMap = false; //公共卫生事件控制::发生了地图跳转
//工具栏,用于存放每个按钮的功能标志的数组,将和Cell的索引配合使用,这样每个Cell中就不必记录它的功能
var arrToolbarFlag = new Array("showShadow","setLayer","legend","zoomIn","zoomOut","pan","fullExtent","line","chartSymble","find","catchPic","exportData","dorctor","pubHealth","测量折线距离","setting2","help","exit");
//按钮图片的地址
var arrToolbarFlagSrc = new Array("../images/showShadow.png","../images/setLayer.png","../images/legend.png","../images/zoomIn.png","../images/zoomOut.png","../images/pan.png","../images/fullExtent.png","../images/line.png","../images/chartSymble.png","../images/find.png","../images/catchPic.png","../images/exportData.png","../images/dorctor.png","../images/pubHealth.png","../images/setting.png","../images/setting2.png","../images/help.png","../images/exit.png");
//颜色备选列表
var objCakyColorArray = new Array('#CC0000','#66CC00','#990033','#009900','#006699','#006633','#33FFCC','#99CC66','#66FF66','#333366','#FF6699','#FF3399','#FFCC00','#CCFFFF','#000000','#009999','#0066CC','#6699FF','#3300CC','#336600','#CCCC99','#996699','#9933FF','#CCCCCC','#CC3333','#33CCCC','#FF6699','#FFFF00','#66FF00','#000099','#CC9999','#666600','#CCCC33','#FFFFCC','#FF6600','#336666');
var objSparkTimer = null; //时间器,控制闪动的VML标识信号
var objOvalSparkTimer = null; //时间器,控制闪动的VML标识信号
var objOvalSparkTimer2 = null; //时间器,控制闪动的VML标识信号
var objSparkOval = null; //覆盖在医院VML点上闪动的小圆圈
var objPopupMenuHTC = null; //弹出菜单
var toolMode = 0; //操作类型,是全局变量,在clickToolbar中设置,表示某一种操作,
//以便在用户和地图交互时做相应的操作;初始值“1”表示放大操作
////////////////////////状态全局参数////////////////////////////
var strActiveWin = ""; //Shadow | Dialog
////////////////////////基础地图参数,由发布的服务决定////////////////////////////
var strIMSURL = ""; //IMS服务的地址
var objStartEnvelopeRect = null; //初始 地图边界
var objLimitEnvelopeRect = null; //最大 地图边界
var objCurrentEnvelopeRect = null; //当前地图区域
var objShadowEnvelopeRect = null; //鹰眼的Envelope
var objSwapEnvelopeRect = null; //缓存的Envelope,用于单病种监测地图变化之后重新恢复到上一次的Envelope
var strMapUnits = ""; //地图长度单位
var strScaleBarUnits = ""; //比例尺长度单位
var strPairsDelimiter = ""; //坐标分隔符
var strCoordsDelimiter = ""; //坐标对分隔符
var dblMap2ScreenScale = 0; //地图距离 vs 屏幕距离 的比例尺
var zoomFactor = 2; //缩放用的常量
var objSelectVMLRect; //选择框 用来进行矩形选择时创建的VML矩形
var objSelectVMLOval; //选择框 用来进行圆形选择时创建的VML圆形
var objSelectVMLPolyline; //选择框 用来进行圆形选择时创建的VML多边形
var strSelectPointUIDS = ""; //UID字符串 每次选择完以后选择框覆盖住的点地物的UID
var objMapTagFindVMLOval; //标记点 GeoCode查询后用来标记查询到的地物的位置的黄色圆点
var objMapTagFindVMLShape; //标记框 GeoCode查询后用来标记查询到的地物的及提示信息的方框及文字
var objCoordinateFeaturesXML = null; //用来保存初次获得的FeaturesXML,一旦初始就不再改变
var objSwapCoordinateFeaturesXML = null;
var strIDOFMEDICALINSTITUTION = ""; //当前被点击到的医疗机构
var objResponseCenterXML = null; //获取区域中心点请求返回的字符串
var strResponseCenterAttName = "";
////////////////////////////////////////////////////////////////////////////////
function putParamXML(oParamXML){//基础配置信息的XML文件
objParamXML = oParamXML;
//开始解析XML,并将各个配置信息读入变量中保存
strIMSURL = objParamXML.selectSingleNode("//imsURL").text;
}
function getParamXML(){
return(objParamXML);
}
////////////////////////////////////////////////////////////////////////////////
function onMouseClick_ZoomIn(centerX,centerY){//以放大镜为中心(单击)放大
var objPointClick;
var mouseX,mouseY;
var eLeft,eBottom,eRight,eTop;
var xHalf,yHalf;
//1.屏幕坐标转化为地图坐标
objPointClick = getMapXY(centerX,centerY);
xHalf = objCurrentEnvelopeRect.width / 2;
yHalf = objCurrentEnvelopeRect.height / 2;
//2.终点坐标
objCurrentEnvelopeRect.minX = objPointClick.x - (xHalf/zoomFactor);
objCurrentEnvelopeRect.maxX = objPointClick.x + (xHalf/zoomFactor);
objCurrentEnvelopeRect.maxY = objPointClick.y + (yHalf/zoomFactor);
objCurrentEnvelopeRect.minY = objPointClick.y - (yHalf/zoomFactor);
//3.删除 Group 节点
if(objMapDiv.all.tags("group") && objMapDiv.all.tags("group").length){
objGroupNode = objMapDiv.childNodes(0);
objGroupNode = objMapDiv.removeChild(objGroupNode);
}
//4.发送请求
arcGetMap();
}
function onMapPicMouseClick_ZoomOut(centerX,centerY){ //以放大镜为中心(单击)缩小
var objPointZoomOut; //单击的点对象
//1.地理坐标转化成地图坐标
objPointZoomOut = getMapXY(centerX,centerY);
//2.缩小的绑定盒初始化
objCurrentEnvelopeRect.minX = objPointZoomOut.x - (objCurrentEnvelopeRect.width * zoomFactor / 2);
objCurrentEnvelopeRect.maxX = objPointZoomOut.x + (objCurrentEnvelopeRect.width * zoomFactor / 2);
objCurrentEnvelopeRect.maxY = objPointZoomOut.y + (objCurrentEnvelopeRect.height * zoomFactor / 2);
objCurrentEnvelopeRect.minY = objPointZoomOut.y - (objCurrentEnvelopeRect.height * zoomFactor / 2);
//3.如果缩小时:已是全图(地图的实际尺寸)的处理
/*
if (enforceFullExtent) {// 实际尺寸
if ((objCurrentEnvelopeRect.width) > objStartEnvelopeRect.width) {
objCurrentEnvelopeRect.minX = objStartEnvelopeRect.minX;
objCurrentEnvelopeRect.maxX = objStartEnvelopeRect.maxX;
objCurrentEnvelopeRect.maxY = objStartEnvelopeRect.maxY;
objCurrentEnvelopeRect.minY = objStartEnvelopeRect.minY;
}
}
*/
//4.删除 Group 结点
if(objMapDiv.all.tags("group") && objMapDiv.all.tags("group").length){
objGroupNode = objMapDiv.childNodes(0);
objGroupNode = objMapDiv.removeChild(objGroupNode);
}
//5.发送请求
arcGetMap();
}
////////////////////////////////////////////////////////////////////////////////
/*
函数名称:shadowNavigate(centerX,centerY)
参数: centerX:鹰眼图片容器的offsetX;centerY:鹰眼图片容器的offsetY
*/
function shadowNavigate(){//鹰眼漫游 Shadow
var shadowWidth,shadowHeight,shadowXincre,shadowYincre;
var shadowX,shadowY,shadowMapX,shadowMapY;
var centerX,centerY;
//1.鹰眼初使化完成
if(!objShadowPicImg.src){
return false;
}
//2.单击鼠标左键
if(event.button != 1){ return false;}
//3.单击鹰眼导航时的坐标
centerX = event.offsetX;
centerY = event.offsetY;
//4.鹰眼导航栏的宽和高度
shadowWidth = objShadowPicImg.style.pixelWidth;
shadowHeight = objShadowPicImg.style.pixelHeight;
//5.鹰眼导航栏的相对于地图的比例尺(x,y轴)
shadowXincre = objShadowEnvelopeRect.width / shadowWidth;
shadowYincre = objShadowEnvelopeRect.height / shadowHeight;
//6.鹰眼导航栏的屏幕坐标
shadowX = centerX;
shadowY = shadowHeight - centerY;
//7.鹰眼导航栏的地图坐标
shadowMapX = shadowX * shadowXincre + objShadowEnvelopeRect.minX;
shadowMapY = shadowY * shadowYincre + objShadowEnvelopeRect.minY;
//8.改变 objCurrentEnvelopeRect 的参数值
objCurrentEnvelopeRect.minX = shadowMapX + objCurrentEnvelopeRect.width / 2;
objCurrentEnvelopeRect.maxX = shadowMapX - objCurrentEnvelopeRect.width / 2;
objCurrentEnvelopeRect.maxY = shadowMapY + objCurrentEnvelopeRect.height / 2;
objCurrentEnvelopeRect.minY = shadowMapY - objCurrentEnvelopeRect.height / 2;
//9.在发送前去掉 <v:group> 节点
if(objMapDiv.all.tags("group") && objMapDiv.all.tags("group").length){
objGroupNode = objMapDiv.childNodes(0);
objGroupNode = objMapDiv.removeChild(objGroupNode);
}
//10.发送请求
arcGetMap();
return true;
}
function changeShadowRectSize(argX,argY){//在鹰眼导航时焦点选择框的变化
var ovXincre,ovYincre,shadowWidth,shadowHeight;
var vleft,vwidth,vtop,vheight,vbottom,vright; //鹰眼焦点选择框的两个顶点
var ovExtentBoxSize = 2;
var flMapViewWidth_Envelop;
var flMapViewHeight_Envelop;
var flMapViewLeft_Envelop;
var flMapViewTop_Envelop;
var flMapViewLeft_Envelop;
var flMapViewTop_Envelop;
var xTolerance,yTolerance,pixelX,pixelY;
//1.鹰眼的宽度
shadowWidth = objShadowPicImg.style.pixelWidth;
shadowHeight = objShadowPicImg.style.pixelHeight;
//2.比例尺
ovXincre = objShadowEnvelopeRect.width / shadowWidth;
ovYincre = objShadowEnvelopeRect.height / shadowHeight;
pixelX = objCurrentEnvelopeRect.width/objMapPicImg.style.pixelWidth;
pixelY = objCurrentEnvelopeRect.height/objMapPicImg.style.pixelHeight;
xTolerance = objMapPicImg.style.pixelWidth/6 * pixelX;
yTolerance = objMapPicImg.style.pixelHeight/6 * pixelY;
vleft = (objCurrentEnvelopeRect.minX - objShadowEnvelopeRect.minX + xTolerance) / ovXincre;
vright = (objCurrentEnvelopeRect.maxX - objShadowEnvelopeRect.minX - xTolerance) / ovXincre;
vtop = (objShadowEnvelopeRect.maxY - objCurrentEnvelopeRect.maxY + yTolerance) / ovYincre;
vbottom = (objShadowEnvelopeRect.maxY - objCurrentEnvelopeRect.minY - yTolerance) / ovYincre;
vwidth = vright - vleft;
vheight = vbottom - vtop;
if(vleft + vwidth > shadowWidth && vleft > 0){//超出右边界
vwidth = shadowWidth - vleft;
}else if(vleft + vwidth > shadowWidth && vleft < 0){
vwidth = shadowWidth;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -