var url = window.location.href.substring(0, window.location.href.lastIndexOf('/') + 1); //获取地址栏参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null) return encodeURI(r[2]); return null; //返回参数值 } function getRootPath() { var strFullPath = window.document.location.href; var strPath = window.document.location.pathname; var pos = strFullPath.indexOf(strPath); var prePath = strFullPath.substring(0, pos); var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1); return (prePath + postPath); } function pageName() { var strUrl = location.href; var arrUrl = strUrl.split("/"); var strPage = arrUrl[arrUrl.length - 1]; return strPage; } function GetCmpareTable(type) { var tableNameColor = ""; switch (type) { case "DLTD": tableNameColor = "ColorRoad"; break; case "DLSD": tableNameColor = "ColorShiDi"; break; case "DLDB": tableNameColor = "ColorWater"; break; case "DLRL": tableNameColor = "ColorResoursePeople"; break; case "DLDZ": tableNameColor = "ColorDestory"; break; case "QHLD": case "HHLD": tableNameColor = "ColorQHLD"; break; case "QHCD": case "HHCD": tableNameColor = "ColorQHCD"; break; case "QHHM": tableNameColor = "ColorQHHM"; break; case "QHSD": tableNameColor = "ColorQHSD"; break; case "QHDB": tableNameColor = "ColorQHDB"; break; default: break; } return tableNameColor; } //16进制转rgb function colorRgb(sColor) { //十六进制颜色值的正则表达式 var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; // 如果是16进制颜色 if (sColor && reg.test(sColor)) { if (sColor.length === 4) { var sColorNew = "#"; for (var i = 1; i < 4; i += 1) { sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)); } sColor = sColorNew; } //处理六位的颜色值 var sColorChange = []; for (var i = 1; i < 7; i += 2) { sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2))); } return sColorChange.join(","); } return sColor; }; //rgb转16进制 function colorRGBtoHex(color) { var rgb = color.split(','); var r = parseInt(rgb[0].split('(')[1]); var g = parseInt(rgb[1]); var b = parseInt(rgb[2].split(')')[0]); var hex = "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); return hex; } //右中 var leftCenterDatlog = function () { return { width: 250, height: 145, top: 520, left: -1, bottom: -1, right: 10 } } //左下 var leftBottomDatlog = function () { return { width: 480, height: 80, top: -1, left: 60, bottom: 20, right: -1 } } //中间工具栏 var centerToolDatlog = function () { return { width: 1000, height: 50, top: 150, left: 490, bottom: -1, right: -1 } } //中间展示栏 var centerToolDatlog = function () { return { width: 400, height: 200, top: 300, left: -1, bottom: -1, right: 750 } } //右上 var rightTopDatlog = function () { return { width: 250, height: 360, top: 160, left: -1, bottom: -1, right: 10 } } //右下 var rightBottomDatlog = function () { return { width: 250, height: 300, top: -1, left: -1, bottom: 20, right: 10 } } //创建双击事件 var tmpExetent; function OnLButtonUp(Flags, X, Y) { ; try { var CursorCoord = sgworld.Window.PixelToWorld(X, Y); var id = CursorCoord.ObjectID; var obj = sgworld.Creator.GetObject(id); if (obj.ObjectType == "33") { ; TBAX.closeDialog("中间"); TBAX.closeDialog("tool"); TBAX.setFullBtnVisibility("a1", "true"); TBAX.setFullBtnVisibility("a2", "false"); TBAX.setFullBtnVisibility("a3", "true"); TBAX.setFullBtnVisibility("a4", "false"); switch (localStorage.getItem("type")) { case "大通桥头镇": var tp = obj.Geometry.GeometryType; if (tp == 3) { TBAX.createPmDialogDock("中间", url + "html/MessageHS.html?id=" + id + "&type=datong", 550, 250, 250, -1, -1, 750); } break; case "湟水河": var dd = obj.Geometry.GeometryType; if (dd == 0) { TBAX.createPmDialogDock("中间", url + "html/MessageHS.html?id=" + id + "&type=huangshui", 1500, 550, 150, -1, -1, 150); } break; case "QHHM": setLine(id); var yjfl = obj.FeatureAttributes.GetFeatureAttribute('YJFL').Value; var ejfl = obj.FeatureAttributes.GetFeatureAttribute('EJFL').Value; var sjfl = ""; var tbmj = obj.FeatureAttributes.GetFeatureAttribute('TBMJ').Value; TBAX.createPmDialogDock("中间", url + "html/Message.html?Fir=" + yjfl + "&Sen=" + ejfl + "&val=" + tbmj, 400, 150, 300, -1, -1, 750); break; case "QHLD": case "QHCD": case "QHDB": case "QHSD": case "HHCD": case "HHLD": setLine(id); var yjfl = obj.FeatureAttributes.GetFeatureAttribute('YJFL').Value; var ejfl = obj.FeatureAttributes.GetFeatureAttribute('EJFL').Value; var sjfl = obj.FeatureAttributes.GetFeatureAttribute('SJFL').Value; var tbmj = obj.FeatureAttributes.GetFeatureAttribute('TBMJ').Value; TBAX.createPmDialogDock("中间", url + "html/MessageQH.html?Fir=" + yjfl + "&Sen=" + ejfl + "&Tid=" + sjfl + "&val=" + tbmj, 400, 200, 300, -1, -1, 750); break; case "DTJZ": setLine(id); var xm = obj.FeatureAttributes.GetFeatureAttribute("XMC").Value; var jctbbh = obj.FeatureAttributes.GetFeatureAttribute("JCBH").Value; var tblx = obj.FeatureAttributes.GetFeatureAttribute("TBLX").Value; var jcmj = obj.FeatureAttributes.GetFeatureAttribute("JCMJ").Value; var jd = obj.FeatureAttributes.GetFeatureAttribute("LZB").Value; var wd = obj.FeatureAttributes.GetFeatureAttribute("BZB").Value; var parmsStr = "jcmj=" + jcmj + "&tblx=" + tblx + "&jctbbh=" + jctbbh + "&xm=" + xm + "&jd=" + jd + "&wd=" + wd; TBAX.createPmDialogDock("中间", url + "html/MessageJZ.html?" + parmsStr, 750, 150, 350, -1, -1, 750); break; case "TDGF": setLine(id); var tbmj = obj.FeatureAttributes.GetFeatureAttribute('Area').Value; var First = "光伏信息"; TBAX.createPmDialogDock("中间", url + "html/Message1.html?Fir=" + First + "&val=" + tbmj, 400, 150, 300, -1, -1, 750); break; case "STBC": setLine(id); var tbmj = obj.FeatureAttributes.GetFeatureAttribute('TBMJ').Value; var First = "冰川及永久积雪"; TBAX.createPmDialogDock("中间", url + "html/Message1.html?Fir=" + First + "&val=" + tbmj, 400, 150, 300, -1, -1, 750); break; case "DLZD": setLine(id); var Time = obj.FeatureAttributes.GetFeatureAttribute('时相').Value; var Change = obj.FeatureAttributes.GetFeatureAttribute('变化').Value; var mj = obj.FeatureAttributes.GetFeatureAttribute('面积').Value; var remmark = obj.FeatureAttributes.GetFeatureAttribute('备注').Value; TBAX.createPmDialogDock("中间", url + "html/MessageZD.html?Time=" + Time + "&Change=" + Change + "&mj=" + mj + "&remmark=" + remmark, 400, 150, 300, -1, -1, 750); break; case "DLKC": var KdName = obj.FeatureAttributes.GetFeatureAttribute('KDMC').Value; var KdMC = obj.FeatureAttributes.GetFeatureAttribute('KDDZ').Value; TBAX.createPmDialogDock("中间", url + "html/MessageKC.html?MC=" + KdName + "&WZ=" + KdMC, 400, 150, 300, -1, -1, 750); break; case "DLDZ": var TableColor = GetCmpareTable(localStorage.getItem("type")); var yjfl = obj.FeatureAttributes.GetFeatureAttribute('YJFL').Value; var ejfl = obj.FeatureAttributes.GetFeatureAttribute('EJFL').Value; $.ajax({ url: "../../../Ashx/Secondcommon.ashx", type: "post", data: { Action: "GetDLColor", colorTable: TableColor, colorYJ: yjfl, colorEJ: ejfl }, dataType: "json", async: false, success: function (result) { var fir = result[0].Name;//一级分类 var sen = result[1].Name;//二级分类 var mc, wz, gm, cd, qt, dx; if (yjfl == "01") { mc = obj.FeatureAttributes.GetFeatureAttribute('BTMC').Value; wz = obj.FeatureAttributes.GetFeatureAttribute('BTWZ').Value; gm = obj.FeatureAttributes.GetFeatureAttribute('BTGM').Value; cd = obj.FeatureAttributes.GetFeatureAttribute('BTWDCD').Value; qt = obj.FeatureAttributes.GetFeatureAttribute('XPLX').Value; dx = obj.FeatureAttributes.GetFeatureAttribute('WXDX').Value; } else if (yjfl == "02") { mc = obj.FeatureAttributes.GetFeatureAttribute('HPMC').Value; wz = obj.FeatureAttributes.GetFeatureAttribute('HPWZ').Value; gm = obj.FeatureAttributes.GetFeatureAttribute('HPGM').Value; cd = obj.FeatureAttributes.GetFeatureAttribute('HPWDCD').Value; qt = obj.FeatureAttributes.GetFeatureAttribute('QTWH').Value; dx = obj.FeatureAttributes.GetFeatureAttribute('WXDX').Value; } else if (yjfl == "03") { mc = obj.FeatureAttributes.GetFeatureAttribute('NSLMC').Value; wz = obj.FeatureAttributes.GetFeatureAttribute('NSLWZ').Value; gm = obj.FeatureAttributes.GetFeatureAttribute('NSKGM').Value; cd = obj.FeatureAttributes.GetFeatureAttribute('NSLYFCD').Value; qt = obj.FeatureAttributes.GetFeatureAttribute('QTWH').Value; dx = obj.FeatureAttributes.GetFeatureAttribute('WXDX').Value; } else if (yjfl == "04") { mc = obj.FeatureAttributes.GetFeatureAttribute('BWXPMC').Value; wz = obj.FeatureAttributes.GetFeatureAttribute('BWXPWZ').Value; gm = obj.FeatureAttributes.GetFeatureAttribute('PMXT').Value; cd = obj.FeatureAttributes.GetFeatureAttribute('BWXPWDCD').Value; qt = obj.FeatureAttributes.GetFeatureAttribute('QTWH').Value; dx = obj.FeatureAttributes.GetFeatureAttribute('WXDX').Value; } var dzmessage = new dldzMessage(fir, sen, mc, wz, gm, cd, qt, dx); TBAX.createPmDialogDock("中间", url + "html/MessageDLDZ.html?message=" + JSON.stringify(dzmessage), 400, 250, 300, -1, -1, 750); } }) break; case "DLDB": case "DLTD": case "DLSD": case "DLRL": setLine(id); var TableColor = GetCmpareTable(localStorage.getItem("type")); setLine(id); var yjfl = obj.FeatureAttributes.GetFeatureAttribute('YJFL').Value; var ejfl = ""; if (localStorage.getItem("type") == "DLDB") { ejfl = ""; } else { ejfl = obj.FeatureAttributes.GetFeatureAttribute('EJFL').Value; } var tbmj = obj.FeatureAttributes.GetFeatureAttribute('TBMJ').Value; $.ajax({ url: "../../../Ashx/Secondcommon.ashx", type: "post", data: { Action: "GetDLColor", colorTable: TableColor, colorYJ: yjfl, colorEJ: ejfl }, dataType: "json", async: false, success: function (result) { var First = result[0].Name; var Second = ""; if (localStorage.getItem("type") == "DLDB") { Second = ""; } else { Second = result[1].Name } TBAX.createPmDialogDock("中间", url + "html/Message.html?Fir=" + First + "&Sen=" + Second + "&val=" + tbmj, 400, 150, 300, -1, -1, 750); } }) break; case "湟中县滑坡灾害点分布": var name = obj.FeatureAttributes.GetFeatureAttribute('注释文字').Value; var type = obj.FeatureAttributes.GetFeatureAttribute('leixing').Value; TBAX.createPmDialogDock("中间", url + "html/MessageDZ.html?Fir=" + name + "&Sen=" + type, 400, 150, 300, -1, -1, 750); break; case "QLQY": case "QLHD": case "QLCD": case "QLGM": case "QLHT": case "QLJC": case "QLML": case "QLMY": // setLine(id); try { var name = obj.FeatureAttributes.GetFeatureAttribute('重点区名称').Value; var type1 = obj.FeatureAttributes.GetFeatureAttribute('一级分类').Value; var type2 = obj.FeatureAttributes.GetFeatureAttribute('二级分类').Value; var area = obj.FeatureAttributes.GetFeatureAttribute('图斑面积').Value; TBAX.createPmDialogDock("中间", url + "html/MessageQL.html?name=" + name + "&fir=" + type1 + "&Sen=" + type2 + "&area=" + area, 400, 180, 300, -1, -1, 750); } catch (msg) { var name = obj.FeatureAttributes.GetFeatureAttribute('重点区名称').Value; var type1 = obj.FeatureAttributes.GetFeatureAttribute('一级占地').Value; var type2 = obj.FeatureAttributes.GetFeatureAttribute('二级占地').Value; var area = obj.FeatureAttributes.GetFeatureAttribute('图斑面积').Value; TBAX.createPmDialogDock("中间", url + "html/MessageQL.html?name=" + name + "&fir=" + type1 + "&Sen=" + type2 + "&area=" + area, 400, 180, 300, -1, -1, 750); } break; default: break; } return true; } else if (obj.ObjectType == "26") { ; TBAX.closeDialog("中间"); TBAX.closeDialog("tool"); TBAX.setFullBtnVisibility("a1", "true"); TBAX.setFullBtnVisibility("a2", "false"); TBAX.setFullBtnVisibility("a3", "true"); TBAX.setFullBtnVisibility("a4", "false"); var level = obj.ClientData("level"); var parms = obj.ClientData("parms"); if (level != "") { $.ajax({ url: GisServer+level.split("-")[1] + "/MapServer", // url: "http://118.213.95.33:8092/gisserver/rest/services/" + level.split("-")[1] + "/MapServer", type: "GET", dataType: "jsonp", async: false, success: function (res) { var fullExent = res.fullExtent; $.ajax({ url: "http://118.213.95.33:8092/gisserver/rest/services/" + level.split("-")[1] + "/MapServer/identify", type: "GET", async: false, dataType: "jsonp", data: { "geometry": CursorCoord.Position.X + "," + CursorCoord.Position.Y, "geometryType": "esriGeometryPoint", "layers": parms == "" ? "all" : "top:" + parms, "tolerance": "1", "mapExtent": fullExent.xmin + "," + fullExent.ymin + "," + fullExent.xmax + "," + fullExent.ymax, "imageDisplay": "600,650,90", "retrunGeometry": "true" }, success: function (data) { if (data.results.length != 0) { var wktPoint = "POINT(" + CursorCoord.Position.X + " " + CursorCoord.Position.Y + ")"; var pointGeometry = sgworld.Creator.GeometryCreator.CreatePointGeometry(wktPoint); deleteTmpobj(tmpExetent); for (var i = 0; i < data.results.length; i++) { var result = data.results[i]; var rings = result.geometry.rings; var ring = createRings(rings); var nLineColor = sgworld.Creator.CreateColor(255, 0, 0, 100) var nFillColor = sgworld.Creator.CreateColor(0, 0, 0, 0); var geo = sgworld.Creator.GeometryCreator.CreatePolygonGeometry(ring.exteriorRing, ring.interiorRing); //var withIn = geo.SpatialRelation.Within(pointGeometry); var withIn = pointGeometry.SpatialRelation.Within(geo); if (withIn) { var polygon = sgworld.Creator.CreatePolygon(geo, nLineColor, nFillColor, 2, "", "wmsExetent"); tmpExetent = polygon.id; var yjfl = result.attributes.YJFL; var ejfl = result.attributes.EJFL; var sjfl = result.attributes.SJFL; var tbmj = result.attributes.TBMJ; var TableColor = GetCmpareTable(localStorage.getItem("type")); if (level.indexOf("qh") != -1) { TBAX.createPmDialogDock("中间", url + "html/MessageQH.html?Fir=" + yjfl + "&Sen=" + ejfl + "&Tid=" + sjfl + "&val=" + tbmj, 400, 200, 300, -1, -1, 750); } else { $.ajax({ url: "../../../Ashx/Secondcommon.ashx", type: "post", data: { Action: "GetDLColor", colorTable: TableColor, colorYJ: yjfl, colorEJ: ejfl }, dataType: "json", async: false, success: function (result) { var fir = result[0].Name;//一级分类 var sen; if (result.length>1) { sen = result[1].Name;//二级分类 } else { sen = "无"; } TBAX.createPmDialogDock("中间", url + "html/MessageDL.html?Fir=" + fir + "&Sen=" + sen + "&Tid=" + sjfl + "&val=" + tbmj, 400, 200, 300, -1, -1, 750); } }); } break; } //deleteTmpobj(tmpExetent); } } } }); }, Error: function () { } }); var params = obj.ClientData("parms"); } return false; } try { if (temID == null) { var obj = sgworld.ProjectTree.GetObject(id); var poly = sgworld.Creator.CreatePolygon(obj.Geometry, lineColor, fillColor, 2, '', ''); temID = poly.ID; } else { sgworld.ProjectTree.DeleteItem(temID); temID = null; } } catch (e) { temID = null; } } catch (e) { try { if (temID == null) { var obj = sgworld.ProjectTree.GetObject(id); var poly = sgworld.Creator.CreatePolygon(obj.Geometry, lineColor, fillColor, 2, '', ''); temID = poly.ID; } else { sgworld.ProjectTree.DeleteItem(temID); temID = null; } } catch (e) { temID = null; } return false; } } //根据数组创建多边形环 function deleteTmpobj(id) { try { sgworld.ProjectTree.DeleteItem(id); } catch (e) { } } function createRings(arr) { let rings = { exteriorRing: [], interiorRing: [] }; if (arr.length == 1) { var tmpArr = arr[0]; for (let i = 0; i < tmpArr.length; i++) { rings.exteriorRing.push(tmpArr[i][0], tmpArr[i][1], 0); } return rings; } else if (arr.length > 1) { for (let i = 0; i < arr.length; i++) { if (i == 0) { for (let j = 0; j < arr[i].length; j++) { rings.exteriorRing.push(arr[i][j][0], arr[i][j][1], 0); } } else { var tmp = []; for (let m = 0; m < arr[i].length; m++) { tmp.push(arr[i][m][0], arr[i][m][1], 0); } rings.interiorRing[i - 1] = tmp; } } return rings; } } //制作边框 var temID = null; function setLine(id) { var lineColor = sgworld.Creator.CreateColor(253, 255, 0, 0); var fillColor = sgworld.Creator.CreateColor(253, 255, 0, 1); if (temID == null) { var obj = sgworld.ProjectTree.GetObject(id); var poly = sgworld.Creator.CreatePolygon(obj.Geometry, lineColor, fillColor, 2, '', ''); temID = poly.ID; } else { try { sgworld.ProjectTree.DeleteItem(temID); } catch (e) { } var obj = sgworld.ProjectTree.GetObject(id); var poly = sgworld.Creator.CreatePolygon(obj.Geometry, lineColor, fillColor, 2, '', 'fanweibiankuangxian'); temID = poly.ID; } } var dldzMessage = function (fir, sen, mc, wz, gm, cd, qt, dx) { return { fir: fir, sen: sen, mc: mc, wz: wz, gm: gm, cd: cd, qt: qt, dx: dx } } //删除打开的影像 function DeleteYX() { let WMSID = sgworld.ProjectTree.FindItem("WMSServices"); if (WMSID == "") return; sgworld.ProjectTree.DeleteItem(WMSID); } //删除边框线 function DeletePoyline() { let WMSID = sgworld.ProjectTree.FindItem("wmsExetent"); if (WMSID == "") return; sgworld.ProjectTree.DeleteItem(WMSID); temID = null; }