map_1h3h.js 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706
  1. var watfMap = {
  2. map: null,
  3. view: null,
  4. layer: [],
  5. allBizs: [],
  6. num: 0,
  7. nextid: function () {
  8. watfMap.num = watfMap.num + 1;
  9. return watfMap.num;
  10. },
  11. trim: function (x) {
  12. return x.replace(/^\s+|\s+$/gm, '');
  13. },
  14. showLayer: function (layerId) {
  15. var layer = watfMap.map.findLayerById(layerId);
  16. if (layer) {
  17. layer.visible = true;
  18. }
  19. },
  20. hideLayer: function (layerId) {
  21. var layer = watfMap.map.findLayerById(layerId);
  22. if (layer) {
  23. layer.visible = false;
  24. }
  25. },
  26. removeLayer: function (layerId) {
  27. watfMap.map.removeLayer(layerId);
  28. }
  29. };
  30. function formatDate(date) {
  31. var d = new Date(date),
  32. month = (d.getMonth() + 1),
  33. day = d.getDate(),
  34. year = d.getFullYear();
  35. if (parseInt(month) < 10) month = "0" + month;
  36. if (day.length < 2) day = "0" + day;
  37. return [year, month, day].join('-');
  38. }
  39. require([
  40. "esri/layers/WebTileLayer",
  41. "esri/layers/BaseTileLayer",
  42. "esri/layers/GraphicsLayer",
  43. "esri/layers/MapImageLayer",
  44. "esri/layers/TileLayer",
  45. "esri/geometry/SpatialReference",
  46. "esri/Basemap",
  47. "esri/Map",
  48. "esri/Graphic",
  49. "esri/Color",
  50. "esri/symbols/TextSymbol",
  51. "esri/symbols/SimpleMarkerSymbol",
  52. "esri/symbols/SimpleFillSymbol",
  53. "esri/geometry/Extent",
  54. "esri/geometry/Point",
  55. "esri/geometry/Polygon",
  56. "esri/geometry/Polyline",
  57. "esri/symbols/SimpleLineSymbol",
  58. "esri/views/MapView",
  59. "esri/request",
  60. "esri/config",
  61. "dojo/domReady!"
  62. ], function (WebTileLayer, BaseTileLayer, GraphicsLayer, MapImageLayer, TileLayer, SpatialReference, Basemap,
  63. Map, Graphic, Color, TextSymbol, SimpleMarkerSymbol, SimpleFillSymbol, Extent, Point, Polygon, Polyline, SimpleLineSymbol,
  64. MapView, esriRequest, esriConfig
  65. ) {
  66. //影像图
  67. var imgmapBaseLayer = new WebTileLayer({
  68. urlTemplate: "http://{subDomain}.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=5c5a468d333dbb827f134fb64818aa65",
  69. subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
  70. copyright: '天地图影像图'
  71. });
  72. //影像图
  73. var imganoBaseLayer = new WebTileLayer({
  74. urlTemplate: "http://{subDomain}.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=5c5a468d333dbb827f134fb64818aa65",
  75. subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
  76. copyright: '天地图影像注记'
  77. });
  78. //矢量图
  79. var vecmapBaseLayer = new WebTileLayer({
  80. urlTemplate: "http://{subDomain}.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=5c5a468d333dbb827f134fb64818aa65",
  81. subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
  82. copyright: '天地图矢量图'
  83. });
  84. //矢量图
  85. var vecanoBaseLayer = new WebTileLayer({
  86. urlTemplate: "http://{subDomain}.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=5c5a468d333dbb827f134fb64818aa65",
  87. subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
  88. copyright: '天地图矢量注记'
  89. });
  90. //地形图
  91. var termapBaseLayer = new WebTileLayer({
  92. urlTemplate: "http://{subDomain}.tianditu.gov.cn/ter_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=5c5a468d333dbb827f134fb64818aa65",
  93. subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
  94. copyright: '天地图地形图'
  95. });
  96. //地形图
  97. var teranoBaseLayer = new WebTileLayer({
  98. urlTemplate: "http://{subDomain}.tianditu.gov.cn/cta_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=5c5a468d333dbb827f134fb64818aa65",
  99. subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
  100. copyright: '天地图地形注记'
  101. });
  102. // 影像图
  103. var imgBasemap = new Basemap({
  104. baseLayers: [imgmapBaseLayer, imganoBaseLayer],
  105. title: "影像图",
  106. id: "img_w",
  107. thumbnailUrl: "https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/0/0/0"
  108. });
  109. // 矢量图
  110. var vecBasemap = new Basemap({
  111. baseLayers: [vecmapBaseLayer, vecanoBaseLayer],
  112. title: "矢量图",
  113. id: "vec_w",
  114. thumbnailUrl: "https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/0/0/0"
  115. });
  116. // 地形图
  117. var terBasemap = new Basemap({
  118. baseLayers: [termapBaseLayer, teranoBaseLayer],
  119. title: "地形图",
  120. id: "ter_w",
  121. thumbnailUrl: "https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/0/0/0"
  122. });
  123. var map = new Map({
  124. basemap: imgBasemap,
  125. //ground: "world-elevation"
  126. });
  127. // add the map to a new 3d view
  128. var view = new MapView({
  129. container: "viewDiv",
  130. map: map,
  131. center: [120.906514, 31.017386],
  132. zoom: 10,
  133. });
  134. watfMap.map = map;
  135. watfMap.view = view;
  136. view.when(function () {
  137. // var ext = new Extent({
  138. // xmin: 117.23277038231637,
  139. // ymin: 29.520199484581486,
  140. // xmax: 123.65255617604646,
  141. // ymax: 32.551632806009266,
  142. // spatialReference: new SpatialReference({wkid: 4326})
  143. // });
  144. // view.extent = ext;
  145. var loadTbaAreaPath = function () {
  146. var line = new Polyline({
  147. paths: tba_area_paths,
  148. spatialReference: {wkid: 4326}
  149. });
  150. var graphic_line = new Graphic({
  151. geometry: line,
  152. symbol: tba_area_line
  153. });
  154. var graphicLayer_line = new GraphicsLayer();
  155. graphicLayer_line.add(graphic_line);
  156. map.add(graphicLayer_line);
  157. };
  158. var load1H3HLines = function () {
  159. var _layer = '1h3hLayer';
  160. var graphicLayer = new GraphicsLayer({
  161. id: 'layer_' + _layer,
  162. });
  163. map.add(graphicLayer, 2);
  164. watfMap.layer.push(graphicLayer);
  165. var fill = [];
  166. fill.push(SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("#39B5B8"), 1), new Color([204, 254, 217, 0.3])));
  167. fill.push(SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("#39B5B8"), 1), new Color([255, 227, 195, 0.3])));
  168. fill.push(SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("#39B5B8"), 1), new Color([20, 49, 241, 0.3])));
  169. fill.push(SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("#39B5B8"), 1), new Color([255, 227, 195, 0.6])));
  170. fill.push(SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("#39B5B8"), 1), new Color([255, 255, 190, 0.6])));
  171. fill.push(SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("#39B5B8"), 1), new Color([255, 227, 195, 0.6])));
  172. fill.push(SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color("#39B5B8"), 1), new Color([255, 255, 190, 0.6])));
  173. for (var i = 0; i < hh_1h3h.length; i++) {
  174. var ptA = [];
  175. var poAC = hh_1h3h[i].rings.split(";");
  176. for (var j = 0; j < poAC.length; j++) {
  177. var singp = poAC[j].split(",")
  178. ptA.push([singp[0], singp[1]]);
  179. }
  180. var polygon = new Polygon(new SpatialReference({wkid: 4326}));
  181. polygon.addRing(ptA);
  182. var graphic = new Graphic({
  183. geometry: polygon, symbol: fill[i], tp: "area", attributes: hh_1h3h[i].AREA,
  184. });
  185. graphicLayer.add(graphic);
  186. }
  187. var data = [
  188. {LGTD: 120.638317, LTTD: 31.109815, VAL: "吴江区"},
  189. {LGTD: 121.124178, LTTD: 31.100681, VAL: "青浦区"},
  190. {LGTD: 120.925850, LTTD: 30.830898, VAL: "嘉善县"}
  191. ];
  192. for (var i = 0; i < data.length; i++) {
  193. var textSymbol = {
  194. type: "text",
  195. color: "rgb(244,243,243)",
  196. haloSize: "10px",
  197. text: data[i].VAL,
  198. xoffset: 1,
  199. yoffset: 1,
  200. font: {
  201. size: 18, family: "仿宋", weight: "normal"
  202. }
  203. };
  204. var point = new Point(data[i].LGTD, data[i].LTTD, new SpatialReference({wkid: 4326}));
  205. var graphic = new Graphic({
  206. geometry: point, symbol: textSymbol,
  207. });
  208. graphicLayer.add(graphic);
  209. }
  210. };
  211. $("#mapImg").click(function () {
  212. $(".ditu").show();
  213. });
  214. $(".mapqiehuan .ditu .tuxing").click(function () {
  215. $(this).parents().find('.dituImg').removeClass("tips");
  216. $(this).find('.dituImg').addClass("tips");
  217. var ob = $(this).attr("ob");
  218. if (ob == 'tdt') {//天地图
  219. map.basemap = vecBasemap;
  220. } else if (ob == 'yxt') {//影像图
  221. map.basemap = imgBasemap;
  222. } else if (ob == 'dxt') {//地形图
  223. map.basemap = terBasemap;
  224. }
  225. });
  226. $(".ditu .closeBtn").click(function () {
  227. $(".ditu").hide();
  228. });
  229. /**
  230. * 隐藏业务图层
  231. */
  232. var hideLayer = function () {
  233. map.remove(graphicLayerClick);
  234. watfMap.allBizs.map(function (biz) {
  235. watfMap.hideLayer("layer_" + biz);
  236. });
  237. };
  238. /**
  239. * 显示业务图层
  240. * @param code
  241. */
  242. var showLayer = function (code) {
  243. watfMap.showLayer("layer_" + code);
  244. };
  245. //加载数据函数
  246. var loadData = function (_layer, _url, _param, symbol, callback, visiable) {
  247. $.ajax({
  248. url: _url,
  249. async: true,
  250. dataType: 'json',
  251. success: function (result) {
  252. if (result.status == 200) {
  253. callback(_layer, symbol, result.rows, visiable);
  254. }
  255. }
  256. });
  257. };
  258. var createGraphic = function (layer, symbol, datas, visiable) {
  259. var graphicLayer = new GraphicsLayer({
  260. id: layer
  261. });
  262. map.add(graphicLayer);
  263. watfMap.layer.push(graphicLayer);
  264. var len = datas.length;
  265. for (var i = 0; i < len; i++) {
  266. var data = datas[i];
  267. var stcd = data.stcd;
  268. if (stcds_1h3h.indexOf(stcd) > -1) {
  269. var lgtd = data.lgtd, lttd = data.lttd;
  270. if (lgtd != null && lttd != null) {
  271. var point = new Point(lgtd, lttd, new SpatialReference(4326));
  272. var graphic = new Graphic({
  273. geometry: point,
  274. attributes: data,
  275. symbol: symbol
  276. });
  277. graphicLayer.add(graphic);
  278. }
  279. }
  280. }
  281. };
  282. var graphicLayerClick = null;
  283. /**
  284. * 定义图标区域
  285. * @type {{type: string, url: string, width: string, height: string}}
  286. */
  287. var symbol_flick = {
  288. type: "picture-marker", // autocasts as new PictureMarkerSymbol()
  289. url: ctx + "static/images/gis/dyCenter.gif",
  290. width: "64px",
  291. height: "64px"
  292. }
  293. var symbol_zb = {
  294. type: "picture-marker", // autocasts as new PictureMarkerSymbol()
  295. url: ctx + "static/images/gis/ls_swjc.png?r=2",
  296. width: "14px",
  297. height: "14px"
  298. };
  299. /**
  300. * GIS 页面,点击业务按钮,切换
  301. */
  302. $("#xzqPanel1 ul li").click(function () {
  303. hideLayer();
  304. var name = $(this).attr('name');
  305. $(this).removeClass(name).addClass(name + "1");
  306. var sibs = $(this).removeClass(name).addClass(name + "1").siblings();
  307. for (var i = 0; i < sibs.length; i++) {
  308. var cname = $(sibs[i]).attr('name');
  309. $(sibs[i]).removeClass(cname + "1").addClass(cname);
  310. }
  311. let code = $(this).attr("bizCode");
  312. if (code == 'TBA_SL') {
  313. for (let i = 0; i < sl.length; i++) {
  314. showLayer(sl[i]);
  315. }
  316. }
  317. if (code == 'TBA_SZ') {
  318. for (let i = 0; i < sz.length; i++) {
  319. showLayer(sz[i]);
  320. }
  321. }
  322. if (code == 'TBA_PW') {
  323. for (let i = 0; i < pwk.length; i++) {
  324. showLayer(pwk[i]);
  325. }
  326. }
  327. view.popup.close();
  328. });
  329. //加载太湖流域边界线
  330. loadTbaAreaPath();
  331. load1H3HLines();
  332. for (var i = 0; i < sz.length; i++) {
  333. var bizCode = sz[i];
  334. watfMap.allBizs.push(bizCode);
  335. var bizDefine = gxdata.getDataDefine(bizCode);
  336. if (bizDefine) {
  337. loadData('layer_' + bizCode, bizDefine.newestDataUrl, null, symbol_zb, createGraphic, true);
  338. }
  339. }
  340. for (var i = 0; i < sl.length; i++) {
  341. var bizCode = sl[i];
  342. watfMap.allBizs.push(bizCode);
  343. var bizDefine = gxdata.getDataDefine(bizCode);
  344. if (bizDefine) {
  345. loadData('layer_' + bizCode, bizDefine.newestDataUrl, null, symbol_zb, createGraphic, true);
  346. }
  347. }
  348. for (var i = 0; i < pwk.length; i++) {
  349. var bizCode = pwk[i];
  350. watfMap.allBizs.push(bizCode);
  351. var bizDefine = gxdata.getDataDefine(bizCode);
  352. if (bizDefine) {
  353. loadData('layer_' + bizCode, bizDefine.newestDataUrl, null, symbol_zb, createGraphic, true);
  354. }
  355. }
  356. });
  357. view.on("pointer-move", function (event) {
  358. var screenPoint = {
  359. x: event.x,
  360. y: event.y
  361. };
  362. var point = view.toMap(screenPoint);
  363. $("#textPointLgtd").text(point.longitude);
  364. $("#textPointLttd").text(point.latitude);
  365. view.hitTest(screenPoint).then(function (response) {
  366. // console.log(event.mapPoint.longitude, event.mapPoint.latitude);
  367. if (response.results[0].graphic) {
  368. var layerId = response.results[0].graphic.layer.id;
  369. var bizCode = layerId.replace('layer_', '');
  370. var bizDefine = gxdata.getDataDefine(bizCode);
  371. if (!bizDefine) {
  372. return console.log('biz define not exist.', bizCode);
  373. }
  374. var gxUnit = getGxUnit(bizCode);
  375. var pt = response.results[0].mapPoint;
  376. var attr = response.results[0].graphic.attributes;
  377. var content = '';
  378. if (bizDefine.layuiTable.length > 10) {
  379. $('.esri-popup__main-container').css("width", "550px");
  380. content =
  381. "<div style='border-top:1px solid #D5D5D5;font-size:12px;font-family:STSongti-SC-Regular;font-weight:400;color:rgba(97,97,97,1);'>" +
  382. "<table class='gis_table_pop'>" +
  383. "<tr> <td align='right'> 测站</td><td align='left' colspan='3'>&nbsp;<a style='color:rgba(31,159,255,1);' onclick='pointerClik(\"" + attr.stcd + "\",\"" + attr.stnm + "\",\"" + bizCode + "\")'>" + isblankNull(attr.stcd, "站码") + ' ' + isblankNull(attr.stnm, "站名") + "</a> </td> </tr>";
  384. content += "<tr> <td align='right'> 共享单位</td><td align='left' colspan='3'>&nbsp;<a style='color:rgba(31,159,255,1);'>" + gxUnit + "</a> </td> </tr>";
  385. var added = 0;
  386. for (var i = 0; i < bizDefine.layuiTable.length; i++) {
  387. var field = bizDefine.layuiTable[i].field;
  388. var title = bizDefine.layuiTable[i].title;
  389. if (field == 'id' || field == 'stcd' || field == 'stnm') {
  390. continue;
  391. }
  392. if (added % 2 == 0) {
  393. content += "<tr>";
  394. }
  395. if (title == '时间') {
  396. content += "<td align='right' style='width: 25%'> " + title + "</td><td align='left' style='width: 25%'>&nbsp;" + isblankNull(dateTran(attr[field]), title) + " </td>";
  397. } else {
  398. content += "<td align='right' style='width: 25%'> " + title + "</td><td align='left' style='width: 25%'>&nbsp;" + isblankNull(attr[field], title) + " </td>";
  399. }
  400. if (added % 2 != 0) {
  401. content += "</tr>";
  402. }
  403. added += 1;
  404. }
  405. } else {
  406. $('.esri-popup__main-container').css("width", "300px");
  407. content =
  408. "<div style='border-top:1px solid #D5D5D5;font-size:12px;font-family:STSongti-SC-Regular;font-weight:400;color:rgba(97,97,97,1);'>" +
  409. "<table class='gis_table_pop'>" +
  410. "<tr> <td align='right'> 测站</td><td align='left'>&nbsp;<a style='color:rgba(31,159,255,1);' onclick='pointerClik(\"" + attr.stcd + "\",\"" + attr.stnm + "\",\"" + bizCode + "\")'>" + isblankNull(attr.stcd, "站码") + ' ' + isblankNull(attr.stnm, "站名") + "</a> </td> </tr>";
  411. content += "<tr> <td align='right'> 共享单位</td><td align='left' colspan='3'>&nbsp;<a style='color:rgba(31,159,255,1);'>" + gxUnit + "</a> </td> </tr>";
  412. for (var i = 0; i < bizDefine.layuiTable.length; i++) {
  413. var field = bizDefine.layuiTable[i].field;
  414. var title = bizDefine.layuiTable[i].title;
  415. if (field == 'id' || field == 'stcd' || field == 'stnm') {
  416. continue;
  417. }
  418. if (title == '时间') {
  419. content += "<tr> <td align='right'> " + title + "</td><td align='left'>&nbsp;" + isblankNull(dateTran(attr[field]), title) + " </td> </tr>";
  420. } else {
  421. content += "<tr> <td align='right'> " + title + "</td><td align='left'>&nbsp;" + isblankNull(attr[field], title) + " </td> </tr>";
  422. }
  423. }
  424. }
  425. content +=
  426. "</table>" +
  427. "</div>" +
  428. "<div>" +
  429. "</div>";
  430. view.popup.open({
  431. title: "<span style='color:rgba(31,159,255,1);'>" + attr.stnm + "</span>",
  432. content: content,
  433. location: pt
  434. });
  435. return;
  436. if (layerId == "layer-gx-sj-river" || layerId == "layer-gx-sj-basin" || layerId == "layer-gx-sj-rh") {
  437. var bizCode = "";
  438. var pt = response.results[0].mapPoint;
  439. var attr = response.results[0].graphic.attributes;
  440. if (layerId == "layer-gx-sj-river") {
  441. bizCode = "TBA_SZY_SJ_RIVER"
  442. }
  443. if (layerId == "layer-gx-sj-basin") {
  444. bizCode = "TBA_SZY_SJ_BASIN";
  445. }
  446. if (layerId == "layer-gx-sj-rh") {
  447. bizCode = "TBA_SZY_RH";
  448. }
  449. if (layerId == "layer-gx-sz-lz") {
  450. bizCode = "TBA_SZY_LZJC";
  451. }
  452. //更改内容区域大小
  453. $('.esri-popup__main-container').css("width", "550px");
  454. view.popup.open({
  455. title: "<span style='color:rgba(31,159,255,1);'>" + attr.stnm + "</span>",
  456. content: "<div id='" + layerId + "' style='border-top:1px solid #D5D5D5;font-size:12px;font-family:STSongti-SC-Regular;font-weight:400;color:rgba(97,97,97,1);width: 100%;'>" +
  457. "<pre><table style='width: 100%;' class='gis_table_pop'>" +
  458. "<tr> <td align='right'> 共享单位</td><td align='left' colspan='3'>&nbsp;<a style='color:rgba(31,159,255,1);'>" + gxUnit + "</a> </td> </tr>" +
  459. "<tr><td style='width:120px;'>站码:<span><a style='color:rgba(31,159,255,1);' onclick='pointerClik(\"" + attr.stcd + "\",\"" + attr.stnm + "\",\"" + bizCode + "\")'>" + isblankNull(attr.stcd, "站码") + "</a></span></td><td>PH:<span>" + isblankNull(attr.ph, "PH") + "</span></td><td>氰化物:<span>" + isblankNull(attr.cn, "氰化物") + "</span></td></tr>" +
  460. "<tr><td>日期:<span>" + isblankNull(attr.spt, "日期") + "</span></td><td>砷:<span>" + isblankNull(attr.ars, "砷") + "</span></td><td>氟化物:<span>" + isblankNull(attr.f, "氟化物") + "</span></td></tr>" +
  461. "<tr><td>水温:<span>" + isblankNull(attr.wt, "水温") + "</span></td><td>硒:<span>" + isblankNull(attr.se, "硒") + "</span></td><td>硫化物:<span>" + isblankNull(attr.s2, "硫化物") + "</span></td></tr>" +
  462. "<tr><td>氨氮:<span>" + isblankNull(attr.nh3n, "氨氮") + "</span></td><td>锌:<span>" + isblankNull(attr.zn, "锌") + "</span></td><td>石油类:<span>" + isblankNull(attr.oil, "石油类") + "</span></td></tr>" +
  463. "<tr><td>总磷:<span>" + isblankNull(attr.tp, "总磷") + "</span></td><td>镉:<span>" + isblankNull(attr.cd, "镉") + "</span></td><td>化学需氧量:<span>" + isblankNull(attr.codcr, "化学需氧量") + "</span></td></tr>" +
  464. "<tr><td colspan='3'>总氮:<span>" + isblankNull(attr.tn, "总磷") + "</span></td></tr>" +
  465. "<tr><td>六价铬:<span>" + isblankNull(attr.cr6, "六价铬") + "</span></td><td>铜:<span>" + isblankNull(attr.cu, "铜") + "</span></td><td>高锰酸盐指数:<span>" + isblankNull(attr.codmn, "高锰酸盐指数") + "</span></td></tr>" +
  466. "<tr><td>溶解氧:<span>" + isblankNull(attr.dox, "溶解氧") + "</span></td><td>汞:<span>" + isblankNull(attr.hg, "汞") + "</span></td><td>五日生化需氧量:<span>" + isblankNull(attr.bod5, "五日生化需氧量") + "</span></td></tr>" +
  467. "<tr><td>挥发酚:<span>" + isblankNull(attr.vlph, "挥发酚") + "</span></td><td>铅:<span>" + isblankNull(attr.pb, "铅") + "</span></td><td>阴离子表面活性剂:<span>" + isblankNull(attr.las, "阴离子表面活性剂") + "</span></td></tr>" +
  468. "</table></pre>" +
  469. "</div>" +
  470. "<div>" +
  471. "</div>",
  472. location: pt
  473. });
  474. }
  475. }
  476. });
  477. });
  478. view.on("pointer-move", function (event) {
  479. var screenPoint = {
  480. x: event.x,
  481. y: event.y
  482. };
  483. var point = view.toMap(screenPoint);
  484. $("#textPointLgtd").text(point.longitude);
  485. $("#textPointLttd").text(point.latitude);
  486. view.hitTest(screenPoint).then(function (response) {
  487. // console.log(event.mapPoint.longitude, event.mapPoint.latitude);
  488. if (response.results[0].graphic) {
  489. var layerId = response.results[0].graphic.layer.id;
  490. var bizCode = layerId.replace('layer_', '');
  491. var bizDefine = gxdata.getDataDefine(bizCode);
  492. if (!bizDefine) {
  493. return console.log('biz define not exist.', bizCode);
  494. }
  495. var gxUnit = getGxUnit(bizCode);
  496. var pt = response.results[0].mapPoint;
  497. var attr = response.results[0].graphic.attributes;
  498. var content = '';
  499. if (bizDefine.layuiTable.length > 10) {
  500. $('.esri-popup__main-container').css("width", "550px");
  501. content =
  502. "<div style='border-top:1px solid #D5D5D5;font-size:12px;font-family:STSongti-SC-Regular;font-weight:400;color:rgba(97,97,97,1);'>" +
  503. "<table class='gis_table_pop'>" +
  504. "<tr> <td align='right'> 测站</td><td align='left' colspan='3'>&nbsp;<a style='color:rgba(31,159,255,1);' onclick='pointerClik(\"" + attr.stcd + "\",\"" + attr.stnm + "\",\"" + bizCode + "\")'>" + isblankNull(attr.stcd, "站码") + ' ' + isblankNull(attr.stnm, "站名") + "</a> </td> </tr>";
  505. content += "<tr> <td align='right'> 共享单位</td><td align='left' colspan='3'>&nbsp;<a style='color:rgba(31,159,255,1);'>" + gxUnit + "</a> </td> </tr>";
  506. var added = 0;
  507. for (var i = 0; i < bizDefine.layuiTable.length; i++) {
  508. var field = bizDefine.layuiTable[i].field;
  509. var title = bizDefine.layuiTable[i].title;
  510. if (field == 'id' || field == 'stcd' || field == 'stnm') {
  511. continue;
  512. }
  513. if (added % 2 == 0) {
  514. content += "<tr>";
  515. }
  516. if (title == '时间') {
  517. content += "<td align='right' style='width: 25%'> " + title + "</td><td align='left' style='width: 25%'>&nbsp;" + isblankNull(dateTran(attr[field]), title) + " </td>";
  518. } else {
  519. content += "<td align='right' style='width: 25%'> " + title + "</td><td align='left' style='width: 25%'>&nbsp;" + isblankNull(attr[field], title) + " </td>";
  520. }
  521. if (added % 2 != 0) {
  522. content += "</tr>";
  523. }
  524. added += 1;
  525. }
  526. } else {
  527. $('.esri-popup__main-container').css("width", "300px");
  528. content =
  529. "<div style='border-top:1px solid #D5D5D5;font-size:12px;font-family:STSongti-SC-Regular;font-weight:400;color:rgba(97,97,97,1);'>" +
  530. "<table class='gis_table_pop'>" +
  531. "<tr> <td align='right'> 测站</td><td align='left'>&nbsp;<a style='color:rgba(31,159,255,1);' onclick='pointerClik(\"" + attr.stcd + "\",\"" + attr.stnm + "\",\"" + bizCode + "\")'>" + isblankNull(attr.stcd, "站码") + ' ' + isblankNull(attr.stnm, "站名") + "</a> </td> </tr>";
  532. content += "<tr> <td align='right'> 共享单位</td><td align='left' colspan='3'>&nbsp;<a style='color:rgba(31,159,255,1);'>" + gxUnit + "</a> </td> </tr>";
  533. for (var i = 0; i < bizDefine.layuiTable.length; i++) {
  534. var field = bizDefine.layuiTable[i].field;
  535. var title = bizDefine.layuiTable[i].title;
  536. if (field == 'id' || field == 'stcd' || field == 'stnm') {
  537. continue;
  538. }
  539. if (title == '时间') {
  540. content += "<tr> <td align='right'> " + title + "</td><td align='left'>&nbsp;" + isblankNull(dateTran(attr[field]), title) + " </td> </tr>";
  541. } else {
  542. content += "<tr> <td align='right'> " + title + "</td><td align='left'>&nbsp;" + isblankNull(attr[field], title) + " </td> </tr>";
  543. }
  544. }
  545. }
  546. content +=
  547. "</table>" +
  548. "</div>" +
  549. "<div>" +
  550. "</div>";
  551. view.popup.open({
  552. title: "<span style='color:rgba(31,159,255,1);'>" + attr.stnm + "</span>",
  553. content: content,
  554. location: pt
  555. });
  556. return;
  557. if (layerId == "layer-gx-sj-river" || layerId == "layer-gx-sj-basin" || layerId == "layer-gx-sj-rh") {
  558. var bizCode = "";
  559. var pt = response.results[0].mapPoint;
  560. var attr = response.results[0].graphic.attributes;
  561. if (layerId == "layer-gx-sj-river") {
  562. bizCode = "TBA_SZY_SJ_RIVER"
  563. }
  564. if (layerId == "layer-gx-sj-basin") {
  565. bizCode = "TBA_SZY_SJ_BASIN";
  566. }
  567. if (layerId == "layer-gx-sj-rh") {
  568. bizCode = "TBA_SZY_RH";
  569. }
  570. if (layerId == "layer-gx-sz-lz") {
  571. bizCode = "TBA_SZY_LZJC";
  572. }
  573. //更改内容区域大小
  574. $('.esri-popup__main-container').css("width", "550px");
  575. view.popup.open({
  576. title: "<span style='color:rgba(31,159,255,1);'>" + attr.stnm + "</span>",
  577. content: "<div id='" + layerId + "' style='border-top:1px solid #D5D5D5;font-size:12px;font-family:STSongti-SC-Regular;font-weight:400;color:rgba(97,97,97,1);width: 100%;'>" +
  578. "<pre><table style='width: 100%;' class='gis_table_pop'>" +
  579. "<tr> <td align='right'> 共享单位</td><td align='left' colspan='3'>&nbsp;<a style='color:rgba(31,159,255,1);'>" + gxUnit + "</a> </td> </tr>" +
  580. "<tr><td style='width:120px;'>站码:<span><a style='color:rgba(31,159,255,1);' onclick='pointerClik(\"" + attr.stcd + "\",\"" + attr.stnm + "\",\"" + bizCode + "\")'>" + isblankNull(attr.stcd, "站码") + "</a></span></td><td>PH:<span>" + isblankNull(attr.ph, "PH") + "</span></td><td>氰化物:<span>" + isblankNull(attr.cn, "氰化物") + "</span></td></tr>" +
  581. "<tr><td>日期:<span>" + isblankNull(attr.spt, "日期") + "</span></td><td>砷:<span>" + isblankNull(attr.ars, "砷") + "</span></td><td>氟化物:<span>" + isblankNull(attr.f, "氟化物") + "</span></td></tr>" +
  582. "<tr><td>水温:<span>" + isblankNull(attr.wt, "水温") + "</span></td><td>硒:<span>" + isblankNull(attr.se, "硒") + "</span></td><td>硫化物:<span>" + isblankNull(attr.s2, "硫化物") + "</span></td></tr>" +
  583. "<tr><td>氨氮:<span>" + isblankNull(attr.nh3n, "氨氮") + "</span></td><td>锌:<span>" + isblankNull(attr.zn, "锌") + "</span></td><td>石油类:<span>" + isblankNull(attr.oil, "石油类") + "</span></td></tr>" +
  584. "<tr><td>总磷:<span>" + isblankNull(attr.tp, "总磷") + "</span></td><td>镉:<span>" + isblankNull(attr.cd, "镉") + "</span></td><td>化学需氧量:<span>" + isblankNull(attr.codcr, "化学需氧量") + "</span></td></tr>" +
  585. "<tr><td colspan='3'>总氮:<span>" + isblankNull(attr.tn, "总磷") + "</span></td></tr>" +
  586. "<tr><td>六价铬:<span>" + isblankNull(attr.cr6, "六价铬") + "</span></td><td>铜:<span>" + isblankNull(attr.cu, "铜") + "</span></td><td>高锰酸盐指数:<span>" + isblankNull(attr.codmn, "高锰酸盐指数") + "</span></td></tr>" +
  587. "<tr><td>溶解氧:<span>" + isblankNull(attr.dox, "溶解氧") + "</span></td><td>汞:<span>" + isblankNull(attr.hg, "汞") + "</span></td><td>五日生化需氧量:<span>" + isblankNull(attr.bod5, "五日生化需氧量") + "</span></td></tr>" +
  588. "<tr><td>挥发酚:<span>" + isblankNull(attr.vlph, "挥发酚") + "</span></td><td>铅:<span>" + isblankNull(attr.pb, "铅") + "</span></td><td>阴离子表面活性剂:<span>" + isblankNull(attr.las, "阴离子表面活性剂") + "</span></td></tr>" +
  589. "</table></pre>" +
  590. "</div>" +
  591. "<div>" +
  592. "</div>",
  593. location: pt
  594. });
  595. }
  596. }
  597. });
  598. });
  599. view.on("click", function (event) {
  600. var screenPoint = {
  601. x: event.x,
  602. y: event.y
  603. };
  604. view.hitTest(screenPoint).then(function (response) {
  605. if (response.results[0].graphic) {
  606. var pt = response.results[0].mapPoint;
  607. var attr = response.results[0].graphic.attributes;
  608. if (response.results[0].graphic.layer.id == "layer_1h3hLayer") {
  609. if (attr == 'WJ') {
  610. pointerClik("320584", "吴江市", "JS_ST_WRY");
  611. }
  612. if (attr == 'JS') {
  613. pointerClik("330421", "嘉善县", "ZJ_ST_WRY");
  614. }
  615. if (attr == 'QP') {
  616. pointerClik("310118", "青浦区", "SH_ST_WRY");
  617. }
  618. }
  619. }
  620. });
  621. });
  622. });
  623. function isblankNull(data, name) {
  624. if (data == null || data == "") {
  625. return "";
  626. } else {
  627. if (name == "氰化物" || name == "氨氮" || name == "总磷" || name == "总氮" || name == "叶绿素a" || name == "六价铬" || name == "溶解氧" || name == "砷" || name == "硒" || name == "锌"
  628. || name == "镉" || name == "铜" || name == "汞" || name == "铅" || name == "氟化物" || name == "硫化物" || name == "石油类" || name == "化学需氧量" || name == "高锰酸盐指数" || name == "五日生化需氧量" || name == "阴离子表面活性剂" || name == "挥发酚") {
  629. return data + "&#9;mg/L ";
  630. } else if (name == "水温") {
  631. return data + " ℃ ";
  632. } else if (name == "电导率") {
  633. return data + "&#9;uS/cm ";
  634. } else if (name == "PH") {
  635. return data;
  636. } else if (name == "水位") {
  637. return data + "&#9;m ";
  638. } else if (name == "浊度") {
  639. return data + "&#9;度 ";
  640. } else if (name == "流量") {
  641. return data + "&#9;m³/s ";
  642. } else {
  643. return data;
  644. }
  645. }
  646. }
  647. function pointerClik(stcd, stnm, flag) {
  648. $('.sg-mask').css('display', 'none');
  649. $("#contentUrl").attr("src", ctx + "web/data-common-chart.html?bizCode=" + flag + "&stcd=" + stcd + "&stnm=" + encodeURI(stnm));
  650. $("#nameStcd").text(stnm);
  651. $('.sg-mask').css('display', 'block');
  652. }