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

📄 jitk_redlining.js

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JS
📖 第 1 页 / 共 2 页
字号:
var jitkPreviewDiv;
var jitkCanvas;
var jitkCurrentTool = 'point';
var jitkPreviousTool = 'point';
var jitkMapId;
var jitkSelectLabelFeatures = 0;
var jitkSelectGraphicsFeatures = 0;
var jitkSelectShapeFeatures = 0;
var jitkDeleteSelectedLabelMessage;
var jitkDeleteSelectedShapeMessage;
var jitkDeleteSelectedGraphicMessage;

function jitkRedlining_sendRequest(url) {
    try {
      var xh = EsriUtils.createXmlHttpObject();
      xh.open("GET", url, false);
      xh.send(null);
      
      return xh.responseText;
    }
    catch (exception) { 
    	return null; 
    }
}

function jitkRedliningCreateColorChooser() {
	if (!taskWindowManager.windows["colorChooserWin"]) {
		var colorChooser = new EsriColorChooser("colorChooser", null, jitkRedliningColorChooserCallback, new EsriColor(Math.round(Math.random() * 255), Math.round(Math.random() * 255), Math.round(Math.random() * 255)));
	   	colorChooser.callContinuously = true;
	   	colorChooser.showSelectButton = false;
	   	colorChooser.init(document.getElementsByTagName('BODY')[0]);
	
	   	var colorChooserWin = new JitkWindow("colorChooserWin", "Color Picker", colorChooser);
   		colorChooserWin.isFloatingWindow = true;
   		colorChooserWin.isRendered = true;	   	
	   	colorChooserWin.movable = true;
	   	colorChooserWin.closable = true;
	   	colorChooserWin.collapsable = false;
	   	colorChooserWin.resizable = true;
	   	colorChooserWin.init();
	   	colorChooserWin.resize(210, 300);
	   	colorChooserWin.moveTo(300, 300);
	   	colorChooserWin.hide();
	   	$("#colorChooserWin").bgiframe();
	   	taskWindowManager.addWindow(colorChooserWin); 
   	}
}
   	
function jitkRedliningToggleColorChooser(obj) {
    var cssX = jitkGetCSSPositionX(obj);
    var cssY = jitkGetCSSPositionY(obj) + 20;

    var colorWin = taskWindowManager.windows["colorChooserWin"];
    
    if (colorWin.closed){
        colorWin.moveTo(cssX, cssY);
        colorWin.show();
        colorWin.toFront(120);
    }
    else {
    	colorWin.hide();
	}
}

function jitkRedliningColorChooserCallback(color, useSlider) {   
	var el = document.getElementById("currentCCParentId");
	if (el != null) {
		var id = el.value;
		var obj = document.getElementById(id);
		
		if (obj != null) {
		    var color = color.red + "," + color.green + "," + color.blue;
			obj.value = color;
			EsriUtils.setElementStyle(obj, "background-color:rgb(" + color + ");color:rgb(" + color + ")");
		}
		
	    if (id.indexOf("labelColor") > 0) {
	    	jitkRedliningSetFontPreview();
		}
	    
	    if (id.indexOf("shapeColor") > 0 || 
	    	id.indexOf("lineColor") > 0 || 
	        id.indexOf("polygonFillColor") > 0 || 
	        id.indexOf("polygonBoundaryColor") > 0 ||
	        id.indexOf("arcColor") ) {
	        jitkRedliningRenderPreview(id);
		}
	
	    if (!taskWindowManager) return;
    }
}

function jitkRedliningChangeLabelSize(divid) {
    jitkRedliningSetFontPreview();
}

function jitkRedliningChangeText() {
    jitkRedliningSetFontPreview();
}

function jitkRedliningChangeFont(fontdivid) {
    jitkRedliningSetFontPreview();
}

function jitkRedliningConvertColor(id){
    var clrs = document.getElementById(id).value;
    var clrArray = clrs.split(',');
    if (clrArray.length < 3) return "#000000";
    var n1 = clrArray[0] * 1;
    var s1 = n1.toString(16);
    if (s1.length == 1) s1 = "0" + s1;
    var n2 = clrArray[1] * 1;
    var s2 = n2.toString(16);
    if (s2.length == 1) s2 = "0" + s2;
    var n3 = clrArray[2] * 1;
    var s3 = n3.toString(16);
    if (s3.length == 1) s3 = "0" + s3;
    return "#" + s1 + s2 + s3;
}

function jitkRedliningRenderPreview(gid){
    if (!EsriControls.maps[jitkMapId]) return;
    var map = EsriControls.maps[jitkMapId];
    if (!map.currentTool && !gid) return;

    if (gid){
        if (gid.indexOf("shapeColor") > 0){
            jitkRedliningRenderPointPreview();
            return;
        }
        if (gid.indexOf("lineColor") > 0){
            jitkRedliningRenderLinePreview();
            return;
        }
    }
    var tool = map.currentTool;

	if (tool != null) {
    	if (tool.id == 'shapeRedliningTask_tool_placePoint') jitkRedliningRenderPointPreview();
    	if (tool.id == 'shapeRedliningTask_tool_placeLine') jitkRedliningRenderLinePreview();
    	if (tool.id == 'shapeRedliningTask_tool_placePolygon') jitkRedliningRenderPolygonPreview();
   	 	if (tool.id == 'shapeRedliningTask_tool_placeRectangle') jitkRedliningRenderRectanglePreview();
    	if (tool.id == 'shapeRedliningTask_tool_placeArc') jitkRedliningRenderArcPreview();
    }
    
}

function jitkRedlining_calcIntersect(l1pt1, l1pt2, l2pt1, l2pt2){
    var a1 = l1pt2.y - l1pt1.y;
    var b1 = l1pt1.x - l1pt2.x;
    var c1 = a1*l1pt1.x + b1*l1pt1.y;

    var a2 = l2pt2.y - l2pt1.y;
    var b2 = l2pt1.x - l2pt2.x;
    var c2 = a2*l2pt1.x + b2*l2pt1.y;
        
    var def = a1*b2 - a2*b1;
    if (def != 0){
        x = (b2*c1 - b1*c2)/def;
        y = (a1*c2 - a2*c1)/def;
        return new EsriPoint(x, y);
    }
}
    
function jitkRedlining_createStar(rect) {
    var points = new Array();
    points.push(new EsriPoint(Math.round(rect.left + (rect.width / 2)), Math.round(rect.top))); //top
    points.push(new EsriPoint(Math.round(rect.left + (rect.width * 1/5)), Math.round(rect.top + rect.height))); //bot left
    points.push(new EsriPoint(Math.round(rect.left + rect.width), Math.round(rect.top + (rect.height / 3)))); //right
    points.push(new EsriPoint(Math.round(rect.left), Math.round(rect.top + (rect.height / 3)))); //top left
    points.push(new EsriPoint(Math.round(rect.left + (rect.width * 4/5)), Math.round(rect.top + rect.height))); //bot right
    points.push(new EsriPoint(Math.round(rect.left + (rect.width / 2)), Math.round(rect.top))); //top to close polyline
    return points;
}


function jitkRedliningRenderPointPreviewRequestParams() {
	var markerType = document.getElementById('shapeRedliningTask_param_pointMarkerTypeId');
	var markerWidth = document.getElementById('shapeRedliningTask_param_shapeWidth');	
	var markerColor = document.getElementById('shapeRedliningTask_param_shapeColor');
	
    var url = '&markerType=' + markerType.options[markerType.selectedIndex].value;
    url += '&markerWidth=' + markerWidth.options[markerWidth.selectedIndex].value;    
    url += '&markerColor=' + markerColor.value;
       
   	return url;
}

function jitkRedliningRenderPointPreview() {
	var redlineRenderPointImageUrl = jitkRedliningGetUrl() + '/symbologyPreviewServlet?symbolType=WebSimpleMarkerSymbol' + jitkRedliningRenderPointPreviewRequestParams();
       
	document.getElementById("jitkRedliningShapeSymbolPreviewImage").src = redlineRenderPointImageUrl;     
}

function jitkRedliningRenderArcPreview() {
	var redlineRenderLineImageUrl = jitkRedliningGetUrl() + '/symbologyPreviewServlet?symbolType=WebSimpleArcSymbol' + jitkRedliningRenderArcPreviewRequestParams();

	document.getElementById("jitkRedliningShapeSymbolPreviewImage").src =    redlineRenderLineImageUrl;
}


function jitkRedliningRenderLinePreview(){
	var redlineRenderLineImageUrl = jitkRedliningGetUrl() + '/symbologyPreviewServlet?symbolType=WebSimpleLineSymbol' + jitkRedliningRenderLinePreviewRequestParams();

	document.getElementById("jitkRedliningShapeSymbolPreviewImage").src =    redlineRenderLineImageUrl;
}

function jitkRedliningRenderGetLineType(lineTypeId) {
  	var lineTypeStr = "solid";
  
  	switch(lineTypeId){
  		case '0':   lineTypeStr = "solid";  break; 
  		case '1':   lineTypeStr = "dash"; break;
  		case '2':   lineTypeStr = "dash_dot"; break;
  		case '3':   lineTypeStr = "dash_dot_dot"; break;
  		case '4':   lineTypeStr = "dot"; break;
  	}
  
  	return lineTypeStr;
}

function jitkRedliningRenderArcPreviewRequestParams() {
    var lineType = document.getElementById('shapeRedliningTask_param_arcTypeId');
    var lineWidth = document.getElementById('shapeRedliningTask_param_arcWidth');    
    var lineColor = document.getElementById('shapeRedliningTask_param_arcColor');   
    var lstStartAngle = document.getElementById('shapeRedliningTask_param_arcStartAngle'); 
    var lstEndAngle = document.getElementById('shapeRedliningTask_param_arcEndAngle');        
    var startAngleDegree = lstStartAngle.options[lstStartAngle.selectedIndex].value;
    var endAngleDegree = lstEndAngle.options[lstEndAngle.selectedIndex].value;
    var startAngle = startAngleDegree.substring(0, startAngleDegree.length - 1);
    var endAngle = endAngleDegree.substring(0, endAngleDegree.length - 1);
    
    var url = '&lineType=' + jitkRedliningRenderGetLineType(lineType.options[lineType.selectedIndex].value);
    url += '&lineWidth=' + lineWidth.options[lineWidth.selectedIndex].value;    
    url += '&lineColor=' + lineColor.value;    
    url += '&Antialiasing=true';
    url += '&lineCapType=round';
    url += '&lineJoinType=round';
    url += "&arcStartAngle=" + startAngle;
    url += "&arcEndAngle=" + endAngle;
        
    return url; 
}

function jitkRedliningRenderLinePreviewRequestParams() {
    var lineType = document.getElementById('shapeRedliningTask_param_lineTypeId');
    var lineWidth = document.getElementById('shapeRedliningTask_param_lineWidth');    
    var lineColor = document.getElementById('shapeRedliningTask_param_lineColor');        
    
    var url = '&lineType=' + jitkRedliningRenderGetLineType(lineType.options[lineType.selectedIndex].value);
    url += '&lineWidth=' + lineWidth.options[lineWidth.selectedIndex].value;    
    url += '&lineColor=' + lineColor.value;    
    url += '&Antialiasing=true';
    url += '&lineCapType=round';
    url += '&lineJoinType=round';
        
    return url; 
}

function jitkRedliningRenderGetPolygonFillType(polyFillId) {
 	var fillTypeStr = "solid";
  
  	switch(polyFillId) {
	  	case '0':   fillTypeStr = "solid";  break; 
	  	case '1':   fillTypeStr = "bdiagonal"; break;
	  	case '2':   fillTypeStr = "fdiagonal"; break;
	  	case '3':   fillTypeStr = "diagcross"; break;
	  	case '4':   fillTypeStr = "cross"; break;
	  	case '5':   fillTypeStr = "vertical"; break;
	  	case '6':   fillTypeStr = "horizontal"; break;
	  	case '7':   fillTypeStr = "gray"; break;
	  	case '8':   fillTypeStr = "lightgray"; break;
	  	case '9':   fillTypeStr = "darkgray";  break;  
  	}
  
  	return fillTypeStr;
}

function jitkRedliningRenderPolygonPreviewRequestParams() {
	var polygonFillType = document.getElementById('shapeRedliningTask_param_polygonFillTypeId');	
    var polygonFillColor = document.getElementById('shapeRedliningTask_param_polygonFillColor');       
    var polygonFillTransparency = document.getElementById('shapeRedliningTask_param_polygonFillTransparency');   
    var polygonBoundaryType = document.getElementById('shapeRedliningTask_param_simplePolygonBoundaryType');    
    var polygonBoundaryWidth = document.getElementById('shapeRedliningTask_param_polygonBoundaryWidth');    
    var polygonBoundaryColor = document.getElementById('shapeRedliningTask_param_polygonBoundaryColor');
    
    var polygonFillTransparencyVal = (polygonFillTransparency.options[polygonFillTransparency.selectedIndex].value/100);

    var url = '&polygonFillType=' + jitkRedliningRenderGetPolygonFillType(polygonFillType.options[polygonFillType.selectedIndex].value);
    url += '&polygonFillColor=' + polygonFillColor.value;       
    url += '&polygonFillTransparency=' + polygonFillTransparencyVal;
    url += '&polygonBoundaryType=' + polygonBoundaryType.options[polygonBoundaryType.selectedIndex].value;
    url += '&polygonBoundaryWidth=' + polygonBoundaryWidth.options[polygonBoundaryWidth.selectedIndex].value;
    url += '&polygonBoundaryColor=' + polygonBoundaryColor.value;
    url += '&polygonFillInterval=10&Antialiasing=true&polygonBoundaryCapType=round&polygonBoundaryJoinType=round';
        
    return url;
}

function jitkRedliningRenderPolygonPreview() {
	var redlineRenderPolygonImageUrl = jitkRedliningGetUrl() + '/symbologyPreviewServlet?symbolType=WebSimplePolygonSymbol' + jitkRedliningRenderPolygonPreviewRequestParams();
              
	document.getElementById("jitkRedliningShapeSymbolPreviewImage").src =    redlineRenderPolygonImageUrl;	    
}

function jitkRedliningRenderRectanglePreviewRequestParams(){
    var polygonFillType = document.getElementById('shapeRedliningTask_param_polygonFillTypeId');	
    var polygonFillColor = document.getElementById('shapeRedliningTask_param_polygonFillColor');       
    var polygonFillTransparency = document.getElementById('shapeRedliningTask_param_polygonFillTransparency');   
    var polygonBoundaryType = document.getElementById('shapeRedliningTask_param_simplePolygonBoundaryType');    
    var polygonBoundaryWidth = document.getElementById('shapeRedliningTask_param_polygonBoundaryWidth');    
    var polygonBoundaryColor = document.getElementById('shapeRedliningTask_param_polygonBoundaryColor');
    
    var polygonFillTransparencyVal = (polygonFillTransparency.options[polygonFillTransparency.selectedIndex].value/100);

    var url = '&polygonFillType=' + jitkRedliningRenderGetPolygonFillType(polygonFillType.options[polygonFillType.selectedIndex].value);
    url += '&polygonFillColor=' + polygonFillColor.value;       
    url += '&polygonFillTransparency=' + polygonFillTransparencyVal;
    url += '&polygonBoundaryType=' + polygonBoundaryType.options[polygonBoundaryType.selectedIndex].value;
    url += '&polygonBoundaryWidth=' + polygonBoundaryWidth.options[polygonBoundaryWidth.selectedIndex].value;
    url += '&polygonBoundaryColor=' + polygonBoundaryColor.value;
    url += '&polygonFillInterval=10&Antialiasing=true&polygonBoundaryCapType=round&polygonBoundaryJoinType=round';
        
    return url;
}

function jitkRedliningRenderRectanglePreview() {
	var redlineRenderRectangleImageUrl = jitkRedliningGetUrl() + '/symbologyPreviewServlet?symbolType=WebSimplePolygonSymbol' + jitkRedliningRenderRectanglePreviewRequestParams();

	document.getElementById("jitkRedliningShapeSymbolPreviewImage").src =    redlineRenderRectangleImageUrl;	    
}

function jitkRedliningChangePointMarkerType(divid) {

⌨️ 快捷键说明

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