📄 aimsquery.js
字号:
}
}
} else {
selectData.length=0;
}
//alert(selectData.length);
var testSample = selectData[0];
var testPos = testSample.indexOf('"');
var testStartPos = testPos+1;
var testEndPos = testSample.indexOf('"',testStartPos);
var testValue = testSample.substring(testStartPos,testEndPos);
var testLeng = testValue.length;
///*
//Test for non-numeric characters in the string
for (l=0;l<testLeng;l++){
testChar = testValue.substring(l+1);
testChar = Number(testChar);
if (isNaN(testChar)) {
charSort = true;
break;
}
}
//*/
if (charSort) {
selectData.sort();
} else {
selectData.sort(compare);
}
}
//add this below the new function parseFieldSamples
//function to compare numeric values for function parseFieldSamples numeric sort
function compare(a,b){
var returnVal = 0;
var aPos = a.indexOf('"');
var aStartPos = aPos+1;
var aEndPos = a.indexOf('"',aStartPos);
var aValue = a.substring(aStartPos,aEndPos);
var aNum = Number(aValue);
var bPos = b.indexOf('"');
var bStartPos = bPos+1;
var bEndPos = b.indexOf('"',bStartPos);
var bValue = b.substring(bStartPos,bEndPos);
var bNum = Number(bValue);
var theVal = aValue - bValue;
if (isNaN(theVal)) {
returnVal = -1;
} else {
returnVal = theVal;
}
return returnVal;
}
// write out a query form
function writeQueryForm() {
var url = appDir + "query.htm";
if (useTextFrame) {
parent.TextFrame.document.location = url;
} else {
var Win1 = open(url,"QueryWindow","width=575,height=150,scrollbars=yes,resizable=yes");
}
}
// temporarily change getSampleValues to true and load queryform
function tempGetSamples(theField) {
showSampleValues=true;
if (useTextFrame) {
var Win1 = parent.TextFrame;
} else {
var Win1 = open("","QueryWindow","width=575,height=150,scrollbars=yes,resizable=yes");
}
Win1.document.open();
Win1.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><HEAD>');
Win1.document.writeln('<body BGCOLOR="' + textFrameBackColor + '" TEXT="Black" size="-1">');
Win1.document.writeln('<div align="center"><font face="Arial"><b>');
Win1.document.writeln(msgList[74] + LayerName[ActiveLayerIndex] + '. . .</b></font><br>');
if (onlyUniqueSamples) {
Win1.document.writeln('<font face="Arial" size="-1">' + msgList[75] + numberDataSamples + msgList[122] + '</font></div></body></html>');
} else {
Win1.document.writeln('<font face="Arial" size="-1">' + msgList[75] + numberDataSamples + msgList[76] + '</font></div></body></html>');
}
Win1.document.close();
Win1=null;
var theText = writeFieldSample(theField);
//alert(theText);
sendToServer(imsQueryURL,theText,40);
}
// get the StoredQueries in the MapService
function getStoredQueries() {
if (checkIfActiveLayerAvailable()) {
var theString = '<ARCXML version="1.1">\n<REQUEST>\n<GET_SERVICE_INFO renderer="false" extensions="true" fields="false" />\n';
theString += '</REQUEST>\n</ARCXML>';
sendToServer(imsQueryURL,theString,55);
}
}
// get the StoredQueries in the MapService
function parseStoredQueries(theReply) {
//alert(theReply);
storedQueryCount=0;
storedQueryName.length=1;
storedQueryString.length=1;
storedQueryVariable.length=1;
storedQueryVarCount.length=1;
storedQueryFieldList.length=1;
storedQueryIndex=0;
var endpos = 1;
var pos = -1;
var blurb = 'id="' + ActiveLayer;
var startpos = theReply.indexOf("<LAYERINFO",1);
var thePos = 1;
while (thePos!=-1) {
startpos = theReply.indexOf("<LAYERINFO",1);
endpos = theReply.indexOf(">",startpos);
thePos = theReply.indexOf(blurb,1);
if (thePos!=-1) {
pos = thePos;
thePos=-1;
}
}
var sqpos = 0;
var sqvpos = 0;
var sqpos2 = 0;
var vCount=0;
if (pos!=-1) {
var fieldCount = 0;
epos = theReply.indexOf("</LAYERINFO>",pos);
startpos=0;
endpos=pos;
sqpos = theReply.indexOf("<STOREDQUERY name=",endpos);
sqpos2 = theReply.indexOf("</STOREDQUERY>",endpos);
while ((epos>sqpos) && (sqpos!=-1)) {
if (sqpos!=-1) {
startpos = sqpos + 19;
endpos = theReply.indexOf(dQuote, startpos);
blurb = theReply.substring(startpos,endpos);
//alert(blurb);
storedQueryName[storedQueryCount] = blurb;
//startpos = theReply.indexOf("<QUERY where=",endpos);
var sp2 = theReply.indexOf("<QUERY ",endpos);
sp2 += 7;
startpos = theReply.indexOf("where=",sp2);
startpos += 7;
endpos = theReply.indexOf(dQuote, startpos);
blurb = theReply.substring(startpos,endpos);
storedQueryString[storedQueryCount] = blurb;
startpos = theReply.indexOf("subfields=",sp2);
startpos += 11;
endpos = theReply.indexOf(dQuote, startpos);
storedQueryFieldList[storedQueryCount] = theReply.substring(startpos,endpos);
storedQueryVariable[storedQueryCount]="";
sqvpos = theReply.indexOf("<SQVAR",startpos);
vCount = 0;
while ((sqvpos!=-1) && (sqvpos<sqpos2)) {
endpos = sqvpos;
startpos = theReply.indexOf("name=",endpos);
startpos += 6;
endpos = theReply.indexOf(dQuote, startpos);
blurb = theReply.substring(startpos,endpos);
if (vCount > 0) blurb = "|" + blurb;
storedQueryVariable[storedQueryCount] = storedQueryVariable[storedQueryCount] + blurb;
vCount += 1;
sqvpos = theReply.indexOf("<SQVAR",startpos);
}
storedQueryVarCount[storedQueryCount] = vCount;
storedQueryCount += 1;
}
sqpos = theReply.indexOf("<STOREDQUERY name=",endpos);
sqpos2 = theReply.indexOf("</STOREDQUERY>",sqpos);
}
}
blurb=null;
if (storedQueryCount==0) {
alert(LayerName[ActiveLayerIndex] + msgList[77]);
} else {
storedQueryForm();
}
}
// storedQuery Form
function storedQueryForm() {
if (checkIfActiveLayerAvailable()) {
writeStoredQueryForm(storedQueryIndex);
}
}
function writeStoredQueryForm(theIndex) {
storedQueryIndex=theIndex;
var url = appDir + "storedquery.htm";
if (storedQueryVarCount==0) {
sendStoredQuery(theIndex,"");
} else {
if (useTextFrame) {
parent.TextFrame.document.location = url;
} else {
var Win1 = open(url,"QueryWindow","width=575,height=150,scrollbars=yes,resizable=yes");
}
}
}
// create the querystring for storedQuery and send it
function sendStoredQuery(theIndex,theValue) {
showRetrieveData();
var oldString = storedQueryString[theIndex];
if (storedQueryVarCount[theIndex]>0) {
var var1 = storedQueryVariable[theIndex].split("|");
var var2 = theValue.split("|");
for (var i=0;i<var1.length;i++) {
oldString = swapStuff(oldString,var1[i],var2[i]);
}
} else {
oldString = swapStuff(oldString,storedQueryVariable[theIndex],theValue);
}
//var newString = parseEntity(oldString);
var newString = makeXMLsafe(oldString);
//alert(newString);
setQueryString = newString;
selectionMode=1;
var theString = writeQueryXML(newString);
//alert("StoredQuery Request:\n" + theString);
sendToServer(imsQueryURL,theString,queryXMLMode);
}
// see if there are storedQueries (Search)
function checkStoredQueries(theReply) {
var startpos = theReply.indexOf("<STOREDQUERY",1);
if (startpos==-1) {
//no storedqueries. . . do not display button
useStoredQuery=false;
}
}
function writeStartQueryXML(queryString, idAndShapeOnly) {
if (swapSelectFields) {
selectFields=selFieldList[ActiveLayerIndex];
}
var theString = '<ARCXML VERSION="1.1">\n<REQUEST>\n<GET_FEATURES outputmode="xml" geometry="false" envelope="true" checkesc ="true"';
theString += ' compact="true" featurelimit="' + maxFeaturesReturned + '" beginrecord="0">\n';
theString += '<LAYER id="' + LayerID[ActiveLayerIndex] + '" />';
if (idAndShapeOnly) {
theString += '<QUERY subfields="#ID# #SHAPE#" where="' + queryString + '" />';
} else {
theString += '<QUERY subfields="' + selectFields + '" where="' + queryString + '" />';
}
theString += '</GET_FEATURES>';
theString += '</REQUEST>';
theString += '</ARCXML>';
//alert(theString);
return theString;
}
function setStartQuery() {
var theString = writeStartQueryXML(highlightedOne,true);
sendToServer(imsQueryURL, theString, 20);
}
function parseStartQuery(theReply) {
//alert(theReply);
var theError = getXMLErrorMessage(theReply);
if (theError=="") {
if (queryZoom) {
getXYs(theReply);
startLeft = eLeft;
startTop = eTop;
startRight = eRight;
startBottom = eBottom;
var fWidth = eRight - eLeft;
var fHeight = eTop - eBottom;
var mWMargin = 0;
var mHMargin = 0;
//alert(LayerType[ActiveLayerIndex]);
if (LayerType[ActiveLayerIndex]=="point") {
selectType="point";
//alert("fullWidth=" + fullWidth + "\nfullHeight=" + fullHeight);
mWMargin = fullWidth * selectPointMargin;
mHMargin = fullHeight * selectPointMargin;
} else {
mWMargin = fWidth * selectMargin;
mHMargin = fHeight * selectMargin;
}
//alert("mWMargin=" + mWMargin + "\nmHMargin=" + mHMargin);
eLeft = eLeft - mWMargin;
eRight = eRight + mWMargin;
eTop = eTop + mHMargin;
eBottom = eBottom - mHMargin;
startLeft = eLeft;
startTop = eTop;
startRight = eRight;
startBottom = eBottom;
}
sendMapXML();
} else {
alert(theError);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -