📄 aimsxml.js
字号:
if (CopyrightFont!="") theString += 'font="' + CopyrightFont + '" ';
theString += 'fontcolor="' + CopyrightColor + '" antialiasing="True" ';
//if (CopyrightBackground.toUpperCase()=="TRUE") theString += 'background="' + CopyrightBackground + '" backcolor="' + CopyrightBGColor + '" ';
if (CopyrightBackground.toUpperCase()=="TRUE") theString += 'blockout="' + CopyrightBGColor + '" ';
if (CopyrightShadow.toUpperCase()=="TRUE") theString += 'shadow="' + CopyrightShadowColor + '" ';
theString += 'overlap="false" ';
if (CopyrightGlow.toUpperCase()=="TRUE") theString += ' glowing="' + CopyrightGlowColor + '" ';
theString += '/>\n</TEXT>\n</OBJECT>\n';
theString += '</LAYER>\n';
}
if (drawNorthArrow) {
// draw a north arrow
theString += '<LAYER type="acetate" name="theNorthArrow">\n';
theString += '<OBJECT units="pixel">\n<NORTHARROW type="' + NorthArrowType + '" size="' + NorthArrowSize + '" coords="' + NorthArrowCoords + '" shadow="32,32,32" ';
theString += 'angle="' + NorthArrowAngle + '" antialiasing="True" overlap="False" />\n</OBJECT>\n';
theString += '</LAYER>\n';
}
if (drawScaleBar) {
// draw a scale bar
//ScaleBarPrecision = numDecimals;
theString += '<LAYER type="acetate" name="theScaleBar">\n';
xDistance = eRight - eLeft;
theString += '<OBJECT units="pixel">\n';
theString += '<SCALEBAR ';
if (drawScaleBar2) {
theString += 'screenlength="' + parseInt(iWidth * (1/10)) + '" coords="' + (iWidth-((parseInt(iWidth * (4/10)))+20)) + coordsDelimiter + '3" ';
} else {
theString += 'screenlength="' + parseInt(iWidth * (2/10)) + '" coords="' + parseInt(iWidth * (6/10)) + coordsDelimiter + '3" ';
}
if (MapUnits=="DEGREES") theString += 'mode="geodesic" ';
if (ScaleBarFont!="") theString += 'font="' + ScaleBarFont + '" ';
theString += 'fontcolor="' + ScaleBarFontColor + '" fontstyle="' + ScaleBarStyle + '" barcolor="' + ScaleBarColor + '" ';
if (MapUnits!="DEGREES") {
theString += 'mapunits="' + MapUnits.toLowerCase() + '" ';
}
theString += 'scaleunits="' + ScaleBarUnits.toLowerCase() + '" antialiasing="True" ';
var sDistance = getScaleBarDistance();
if (MapUnits=="DEGREES") {
if (xDistance<1/10){
theString += 'precision="' + ScaleBarPrecision + '" ';
}
} else if (sDistance<5) {
theString += 'precision="' + ScaleBarPrecision + '" ';
}
//theString += 'screenlength="' + parseInt(iWidth * (2/10)) + '" ';
theString += 'fontsize="' + ScaleBarSize + '" barwidth="' + ScaleBarWidth + '" overlap="False" ';
//*/
theString += '/>\n</OBJECT>\n';
theString += '</LAYER>\n';
}
if (drawScaleBar2) {
// draw a scale bar
//ScaleBarPrecision = numDecimals;
theString += '<LAYER type="acetate" name="theScaleBar2">\n';
xDistance = eRight - eLeft;
theString += '<OBJECT units="pixel">\n';
theString += '<SCALEBAR ';
if (drawScaleBar) {
theString += 'screenlength="' + parseInt(iWidth * (1/10)) + '" coords="' + (iWidth-((parseInt(iWidth * (2/10)))+10)) + coordsDelimiter + '3" ';
} else {
theString += 'screenlength="' + parseInt(iWidth * (2/10)) + '" coords="' + parseInt(iWidth * (6/10)) + coordsDelimiter + '3" ';
}
if (MapUnits=="DEGREES") theString += 'mode="geodesic" ';
if (ScaleBar2Font!="") theString += 'font="' + ScaleBar2Font + '" ';
theString += 'fontcolor="' + ScaleBar2FontColor + '" fontstyle="' + ScaleBar2Style + '" barcolor="' + ScaleBar2Color + '" ';
if (MapUnits!="DEGREES") {
theString += 'mapunits="' + MapUnits.toLowerCase() + '" ';
}
theString += 'scaleunits="' + ScaleBar2Units.toLowerCase() + '" antialiasing="True" ';
var sDistance = getScaleBarDistance();
if (MapUnits=="DEGREES") {
if (xDistance<1/10){
theString += 'precision="' + ScaleBar2Precision + '" ';
}
} else if (sDistance<5) {
theString += 'precision="' + ScaleBar2Precision + '" ';
}
//theString += 'screenlength="' + parseInt(iWidth * (2/10)) + '" ';
theString += 'fontsize="' + ScaleBar2Size + '" barwidth="' + ScaleBar2Width + '" overlap="False" ';
//*/
theString += '/>\n</OBJECT>\n';
theString += '</LAYER>\n';
}
// any custom stuff to fit here
if (aimsCustomPresent) theString += addCustomToMap3();
// any custom stuff to be drawn on top of everything
if (aimsCustomPresent) theString += addCustomToMap4();
theString += '</GET_IMAGE>\n</REQUEST>\n</ARCXML>';
//alert(theString);
return theString;
}
// prepare the request in xml format for overview map
function writeOVXML() {
var extentRatio = xDistance/fullWidth;
var midX = eLeft + xHalf;
var midY = eBottom + yHalf;
var theString = '<ARCXML version="1.1">\n<REQUEST>\n<GET_IMAGE><PROPERTIES>\n';
theString += '<ENVELOPE minx="' + forceOVComma(fullOVLeft) + '" miny="' + forceOVComma(fullOVBottom) + '" maxx="' + forceOVComma(fullOVRight) + '" maxy="' + forceOVComma(fullOVTop) + '" />\n';
theString += '<IMAGESIZE height="' + i2Height + '" width="' + i2Width + '" />\n';
if ((toggleOVVisible) && (imsURL==imsOVURL)) {
theString += '<LAYERLIST >\n';
for (var i=0;i<layerCount;i++) {
if (LayerVisible[i]==1) {
visString = "true";
}
else {
visString = "false";
}
theString += '<LAYERDEF name="' + LayerName[i] + '" visible="' + visString + '" />\n';
}
theString += '</LAYERLIST>\n';
}
if (mapBackColor!="") {
theString += '<BACKGROUND color="' + mapBackColor + '" />\n';
}
theString += '</PROPERTIES>\n';
if (drawOVExtentBox) {
theString += '<LAYER type="acetate" name="ACETATE">\n';
if (extentRatio<(1/100)) {
theString += '<OBJECT units="database">\n<POINT coords="' + forceOVComma(midX) + coordsDelimiter + forceOVComma(midY) + '">\n';
theString += '<SIMPLEMARKERSYMBOL type="Square" color="' + convertHexToDec(ovBoxColor) + '" width="4" />\n</POINT></OBJECT>\n';
} else {
theString += '<OBJECT units="database">\n<LINE coords="' + forceOVComma(eLeft) + coordsDelimiter + forceOVComma(eBottom) + pairsDelimiter + forceOVComma(eLeft) + coordsDelimiter + forceOVComma(eTop) + pairsDelimiter;
theString += forceOVComma(eRight) + coordsDelimiter + forceOVComma(eTop) + pairsDelimiter + forceOVComma(eRight) + coordsDelimiter + forceOVComma(eBottom) + pairsDelimiter + forceOVComma(eLeft) + coordsDelimiter + forceOVComma(eBottom) + '">\n';
theString += '<SIMPLELINESYMBOL type="solid" color="' + convertHexToDec(ovBoxColor) + '" width="1" />\n</LINE></OBJECT>\n';
}
theString += '</LAYER>\n';
}
theString += '</GET_IMAGE>\n</REQUEST>\n</ARCXML>';
//alert(theString);
return theString;
}
// get the map extents from xml reply
function getXYs(theString) {
var tempStr = "";
var smallStr = "";
var startpos = 0;
var endpos = 0;
var theReply = theString
var theXYs = getEnvelopeXYs(theString, 0)
eLeft = theXYs[0];
eBottom = theXYs[1];
eRight = theXYs[2];
eTop = theXYs[3];
xDistance = Math.abs(eRight-eLeft);
yDistance = Math.abs(eTop-eBottom);
xHalf = xDistance / 2;
yHalf = yDistance / 2;
panX = xDistance * panFactor;
panY = yDistance * panFactor;
var sFactor = xDistance / iWidth
var aspectRatio = iWidth / iHeight;
var extentRatio = (eRight-eLeft) / (eTop-eBottom);
if (extentRatio < aspectRatio) sFactor = (eTop-eBottom) / iHeight;
if (aimsLayersPresent) {
if (sFactor!=mapScaleFactor) {
mapScaleFactor = sFactor;
if ((hasTOC) && (!legendVisible)) parent.TOCFrame.document.location = appDir + "toc.htm";
if (aimsLayersPresent) {
if (LayerListOpen) writeLayerListForm();
}
}
}
}
// get the map extents from xml reply
function getOVXYs(theString) {
var tempStr = "";
var smallStr = "";
var startpos = 0;
var endpos = 0;
var tempComma = forceCommaInRequest[activeMapServiceIndex];
var theXYs = getEnvelopeXYs(theString, 0)
forceCommaInOV = forceCommaInRequest[activeMapServiceIndex];
forceCommaInRequest[activeMapServiceIndex] = tempComma;
fullOVLeft = theXYs[0];
fullOVBottom = theXYs[1];
fullOVRight = theXYs[2];
fullOVTop = theXYs[3];
fullOVWidth = Math.abs(fullOVRight - fullOVLeft);
fullOVHeight = Math.abs(fullOVTop - fullOVBottom);
//alert("Left:" + fullLeft + "\nTop:" + fullTop + "\nRight:" + fullRight + "\nBottom:" + fullBottom);
}
// get URL
function getURL(theReply) {
var theURL = "";
var startpos = 0;
var endpos = 0;
var pos = theReply.indexOf("OUTPUT");
if (pos != -1) {
theURL = getInsideString(theReply,'url="',dQuote,pos,0,false);
}
legendImage = getLegendURL(theReply);
return theURL;
}
// getLegendURL
function getLegendURL(theReply) {
var theURL = "";
var startpos = 0;
var endpos = 0;
var pos = theReply.indexOf("LEGEND");
//alert(pos);
if (pos != -1) {
theURL = getInsideString(theReply,'url="',dQuote,pos,0,false);
}
//alert("Legend:" + theURL);
return theURL;
}
// just make a map with URL and extent
function justGetMap(theURL, extentLeft, extentTop, extentRight, extentBottom, getOVMap) {
var mode = 900;
if (getOVMap) mode = 1;
if (extentLeft!="") eLeft = extentLeft;
if (extentTop!="") eTop = extentTop
if (extentRight!="") eRight = extentRight;
if (extentBottom!="") eBottom = extentBottom;
var theText = writeXML();
if (debugOn==2) alert(msgList[12] + theText);
sendToServer(theURL,theText,mode);
}
// get min and max x,y's from xml stream . . . return an array with values
function getEnvelopeXYs(theString, startpos) {
var theEnvelope = new Array();
//forceCommaInRequest[activeMapServiceIndex] = false;
theString = theString.toUpperCase();
var tempString = "";
var pos = theString.indexOf("ENVELOPE",startpos);
if (pos!=-1) {
pos = pos + 8;
startpos = theString.indexOf("MINX=",pos);
startpos += 6;
var endpos = theString.indexOf(dQuote,startpos);
tempString = theString.substring(startpos,endpos);
theEnvelope[0] = parseFloat(setDecimalString(tempString));
startpos = theString.indexOf("MINY=",pos);
startpos += 6;
endpos = theString.indexOf(dQuote,startpos);
tempString = theString.substring(startpos,endpos);
theEnvelope[1] = parseFloat(setDecimalString(tempString));
startpos = theString.indexOf("MAXX=",pos);
startpos += 6;
endpos = theString.indexOf(dQuote,startpos);
tempString = theString.substring(startpos,endpos);
theEnvelope[2] = parseFloat(setDecimalString(tempString));
startpos = theString.indexOf("MAXY=",pos);
startpos += 6;
endpos = theString.indexOf(dQuote,startpos);
tempString = theString.substring(startpos,endpos);
theEnvelope[3] = parseFloat(setDecimalString(tempString));
xmlEndPos = endpos;
}
return theEnvelope;
}
// set number string to have decimal character to match browser language type - point or comma
function setDecimalString(numberString) {
if (numberString.indexOf(",")!=-1) forceCommaInRequest[activeMapServiceIndex] = true;
if (decimalChar==".") {
numberString = numberString.replace(/,/g, ".");
} else {
numberString = numberString.replace(/./g, ",");
}
return numberString;
}
function forceComma(theNumber) {
var comma = ",";
var dot = ".";
var charOut = comma;
var charIn = dot;
var numberString = new String(theNumber);
if (forceCommaInRequest[activeMapServiceIndex]) {
charOut = dot;
charIn = comma;
}
var pos = numberString.indexOf(charOut);
if (pos!=-1) {
var begin = numberString.substring(0,pos);
var ending = numberString.substring(pos+1, numberString.length);
numberString = begin + charIn + ending;
}
return numberString;
}
function forceOVComma(theNumber) {
var comma = ",";
var dot = ".";
var charOut = comma;
var charIn = dot;
var numberString = new String(theNumber);
if (forceCommaInOV) {
charOut = dot;
charIn = comma;
}
var pos = numberString.indexOf(charOut);
if (pos!=-1) {
var begin = numberString.substring(0,pos);
var ending = numberString.substring(pos+1, numberString.length);
numberString = begin + charIn + ending;
}
return numberString;
}
// check if there is an error message in the response
function getXMLErrorMessage(theString) {
var pos1 = 0;
var pos2 = 0;
var pos3 = 0;
var theError = "";
pos3 = theString.indexOf("<ERROR");
if (pos3!=-1) {
pos1 = theString.indexOf(">",pos3);
pos1 += 1;
pos2 = theString.indexOf("</ERROR");
theError = theString.substring(pos1,pos2)
}
return theError;
}
// check if theURL has different host from theHost
function isNotSameHostInURL(theURL, theHost) {
var startpos = theURL.indexOf("//");
if (startpos==-1) {
startpos = 0;
} else {
startpos = startpos + 2;
}
var endpos = theURL.indexOf("/",startpos);
if (endpos==-1) endpos = theURL.length;
var thisHost = theURL.substring(startpos,endpos);
if (thisHost==theHost) {
return false;
} else {
return true;
}
}
// reposition map image after a pan
function resetPanImage(){
if (toolMode==3) {
moveLayer("theMap",hspc,vspc);
clipLayer2("theMap",0,0,iWidth,iHeight);
window.setTimeout('showLayer("theMap");',1000);
if (hasLayer("theMapClicks")) {
moveLayer("theMapClicks",hspc,vspc);
clipLayer2("theMapClicks",0,0,iWidth,iHeight);
}
}
document.theImage.onload = null;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -