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

📄 aimslayers.js

📁 arcmis是webgis网站的掩码
💻 JS
📖 第 1 页 / 共 2 页
字号:
// aimsLayers.js
/*
*  JavaScript template file for ArcIMS HTML Viewer
*		dependent on aimsXML.js, ArcIMSparam.js, aimsCommon.js, aimsMap.js,
*		aimsDHTML.js
*/

aimsLayersPresent=true;

var LayerName = new Array();
var LayerID = new Array();
var LayerVisible = new Array();
var LayerType = new Array();
var LayerIsFeature = new Array();
var LayerExtent = new Array();
var LayerMinScale = new Array();
var LayerMaxScale = new Array();
var LayerRenderString = new Array();
var LayerShapeField = new Array();
var LayerIDField = new Array();
var LayerFieldList = new Array();
var LayerFieldTypeList = new Array();
var LayerFieldSizeList = new Array();
var LayerFieldPrecisionList = new Array();
var LayerFields = new Array();
var LayerFieldType = new Array();
var LayerFieldPrecision = new Array(); 
// 
var LayerFieldCount=0;
var ActiveLayer="";
var ActiveLayerType="";
var layerCount = 0;
var layerLeft = 0;
var layerRight = 0;
var layerTop = 0;
var layerBottom = 0;
var fieldIndex = 0;
var FeatureLayerCount = 0;

	// field aliases arrays
var AliasFieldName = new Array();
var AliasFieldAlias = new Array();

var LayerListOpen=false;
var queryOpen = false;

var displayLayerInfoButton=false;

var setLayerVisible = new Array();

// check for query form. . . if present, update field list
function setActiveLayer(i) {
	fieldIndex=0;
	selectCount=0;
	showBuffer=false;
	ActiveLayer=LayerID[i];
	ActiveLayerType=LayerType[i];
	ActiveLayerIndex=i;
	setLayerFields(i);

	if (useGeocode) {
		// if active layer is geocodeable - set current geocode layer to active layer
		if (GCLayerCount>0) {
			var j =-1;
			for (var k=0;k<GCLayerId.length;k++) {
				if (ActiveLayer==GCLayerId[k]) j=k;
			}
			if (j!=-1) {
				GCActiveLayer=j;
			}
		}
	}
	
	if (queryOpen) {
		queryForm();
	} else {
		if ((useExternalWindow) || (!useTextFrame)) {
			Win1 = window.open("","QueryWindow","width=575,height=120,scrollbars=yes,resizable=yes");
			theFrame = "opener";
			if (parent.MapFrame!=null) theFrame = "opener.parent.MapFrame";
		} else {
			Win1 = parent.TextFrame;
			Win1.document.open();
		}
		Win1.document.open();
		Win1.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><head><title>' + titleList[1] + '</title></head>');
		Win1.document.writeln('<body bgcolor="' + tableBackColor + '" text="Black" link="Blue" vlink="Gray" LEFTMARGIN=0 onload="window.focus()">');
		Win1.document.writeln('<center><FONT FACE="Arial" SIZE="-1"><b>' + LayerName[ActiveLayerIndex] + msgList[20] + '</b>');
		Win1.document.writeln('</font></center></body></html>');
		Win1.document.close();
	}
}

// write out form for layerList in separate window
function writeLayerListForm() {
	var Win1 = open(appDir + "toc.htm","LayerListWindow","width=190,height=300,scrollbars=yes,resizable=yes");
	Win1.focus();
	Win1=null;

}

// set up the LayerVisible array for map display
function setupLayerVisible() {
	//alert("setupLayerVisible");
	var toggleCount = LayerVisible.length;
	if (setLayerVisible.length<toggleCount) toggleCount = setLayerVisible.length;
	for (var i=0;i<toggleCount;i++) {
		LayerVisible[i] = setLayerVisible[i];
	}
}



// get list of layers, id/shape fields, scalefactors, etc.
function getLayers(theReply) {
	//alert("LayerInfo:\n" + theReply.length);
	var theReplyUC = theReply.toUpperCase();
	LayerFields.length = 1;
	var startpos = 0;
	var endpos = 0;
	var pos = -1;
	var lpos = 1;
	var epos = 1;
	var zpos=1;
	var zpos2 = 1;
	var tempString="";
	var visString = "";
	var typeString="";
	var fieldString = "";
	var testString = "";
	var testString2 = "";
	var minString = "";
	var maxString = "";
	if (LayerID.length>0) {
		//layerCount = LayerID.length;
		//alert("Already got layer parameters");
	} else {
		//alert("Getting layer parameters");
		var fieldCount = 0;
		layerCount = 0;
		LayerName.length=1;
		LayerType.length=1;
		LayerVisible.length=1;
		LayerExtent.length=1;
		LayerIsFeature.length=1;
		LayerID.length=1;
		LayerIDField.length=1;
		LayerShapeField.length=1;
		LayerMinScale.length=1;
		LayerMaxScale.length=1;
		LayerFieldTypeList.length=1;
		LayerFieldList.length=1;
		LayerRenderString.length=1;
		LayerFieldSizeList.length=1;
		LayerFieldPrecisionList.length=1;
		layerCount = 0;
		var layerMinX=0;
		var layerMinY=0;
		var layerMaxX=0;
		var layerMaxY=0;
		//alert("Processing LayerInfo");
		lpos = theReplyUC.indexOf("<LAYERINFO",zpos);

		while (lpos > -1) {
			//alert("<LAYERINFO - pos " + lpos );
			
			if (lpos != -1) {
				
				zpos = theReplyUC.indexOf("</LAYERINFO",lpos);
				//alert("</LAYERINFO - pos " +  zpos);
				if (zpos!=-1) {
					pos = theReplyUC.indexOf("NAME=",lpos);
					if (pos != -1) {
						startpos = pos + 6;
						endpos = theReply.indexOf(dQuote, startpos);
						tempString = theReply.substring(startpos,endpos);
						tempString = tempString.replace(/&apos;/g, "'");
						LayerName[layerCount] = tempString;
						testString2 = 'TYPE="FEATURECLASS"';
						pos = theReplyUC.indexOf(testString2,lpos);
						if ((pos != -1) && (pos<zpos)) 
							LayerIsFeature[layerCount]=true;
						else LayerIsFeature[layerCount]=false;
						//startpos = theReplyUC.indexOf("VISIBLE=",endpos);
						startpos = theReplyUC.indexOf("VISIBLE=",lpos);
						if (startpos != -1) {
							startpos = startpos + 9;
							endpos = startpos + 4;
							visString = theReply.substring(startpos,endpos);
						}
						startpos = theReplyUC.indexOf(" ID=",lpos);
						if ((startpos != -1) && (startpos<zpos)) {
							startpos = startpos + 5;
							endpos = theReply.indexOf(dQuote, startpos);
							tempString = theReply.substring(startpos,endpos);
							tempString = tempString.replace(/&apos;/g, "'");
							LayerID[layerCount] = tempString;
						} else {
							LayerID[layerCount] = LayerName[layerCount];
						}
						//alert(LayerID[layerCount]);
						if (visString=="true") {LayerVisible[layerCount] = 1} else {LayerVisible[layerCount] = 0};
						
						//alert(startpos + "/" + LayerName[layerCount] + ":" + visString);
						startpos = theReplyUC.indexOf("MINSCALE=",lpos);
						if ((startpos != -1) && (startpos<zpos)) {
							startpos += 10;
							endpos = theReply.indexOf(dQuote, startpos);
							minString = theReply.substring(startpos,endpos);
							minString = setDecimalString(minString);
							LayerMinScale[layerCount] = parseFloat(minString);
						} else {
							LayerMinScale[layerCount] = 0;
						}
						startpos = theReplyUC.indexOf("MAXSCALE=",lpos);
						if ((startpos != -1) && (startpos<zpos)) {
							startpos += 10;
							endpos = theReply.indexOf(dQuote, startpos);
							maxString = theReply.substring(startpos,endpos);
							maxString = setDecimalString(maxString);
							LayerMaxScale[layerCount] = parseFloat(maxString);
						} else {
							LayerMaxScale[layerCount] = 1.7976931348623157E308;
						}
						//alert("MinScale:" + LayerMinScale[layerCount] + "\nMaxScale:" + LayerMaxScale[layerCount]);
						if (LayerIsFeature[layerCount]) {
							startpos = theReplyUC.indexOf("<FCLASS TYPE=",lpos);
							zpos2= theReplyUC.indexOf("</FCLASS",lpos);
							if (startpos != -1) {
								startpos = startpos+14;
								endpos = theReply.indexOf(dQuote, startpos);
								typeString = theReply.substring(startpos,endpos);
							} else {
								typeString = "image";
							}
						} else {
							typeString = "image";
						}
						LayerType[layerCount] = typeString;
						
						var theXYs = getEnvelopeXYs(theReply, lpos);
						tempString = theXYs[0] + "|" + theXYs[1] + "|" + theXYs[2] + "|" + theXYs[3];
						endpos = xmlEndPos;
						theXYs=null;
						LayerExtent[layerCount] = tempString;
						LayerFieldList[layerCount] = "";
						LayerFieldTypeList[layerCount] = "";
						LayerFieldSizeList[layerCount] = "";
						LayerFieldPrecisionList[layerCount] = "";
						LayerIDField[layerCount] = "";
						LayerShapeField[layerCount] = "";
						if (LayerIsFeature[layerCount]) {
							var jpos = 1;
							var fldCount = 0;

⌨️ 快捷键说明

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