📄 jitk_redlining.js
字号:
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 + -