query_gridInfosQuery.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="utf-8">
  8. <title data-i18n="resources.title_gridInfosQuery"></title>
  9. <style type="text/css">
  10. body {
  11. margin: 0;
  12. overflow: hidden;
  13. background: #fff;
  14. width: 100%;
  15. height: 100%
  16. }
  17. #map {
  18. position: absolute;
  19. width: 100%;
  20. height: 100%;
  21. }
  22. #queryresult {
  23. position: absolute;
  24. left: 5px;
  25. bottom: 5px;
  26. height: 40px;
  27. border: 1px solid #999999;
  28. background-color: #FFFFFF;
  29. font-size: 14px;
  30. line-height: 40px;
  31. padding: 0 5px;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div id="map"></div>
  37. <script type="text/javascript" include="bootstrap,widgets.alert" src="../js/include-web.js"></script>
  38. <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
  39. <div id="queryresult"></div>
  40. <script>
  41. var featuresOrigin = [];
  42. var map, layer, pointLayer, drawPoint,
  43. host = window.isLocal ? window.server : "https://iserver.supermap.io",
  44. url = host + "/iserver/services/map-jingjin/rest/maps/京津地区地图",
  45. url1 = host + "/iserver/services/data-jingjin/rest/data";
  46. init();
  47. function init() {
  48. map = new SuperMap.Map("map", {
  49. controls: [
  50. new SuperMap.Control.LayerSwitcher()]
  51. });
  52. map.events.on({
  53. "click": mapClicked
  54. });
  55. //新建点矢量图层
  56. pointLayer = new SuperMap.Layer.Vector("pointLayer");
  57. layer = new SuperMap.Layer.TiledDynamicRESTLayer("china", url, { transparent: true, cacheEnabled: true });
  58. layer.events.on({ "layerInitialized": addLayer });
  59. }
  60. function addLayer() {
  61. map.addLayers([layer, pointLayer]);
  62. map.setCenter(new SuperMap.LonLat(116.85, 39.79), 2);
  63. }
  64. function query(lonlat) {
  65. if (!!lonlat) {
  66. var gridCellQueryParam = new SuperMap.REST.GetGridCellInfosParameter({
  67. datasetName: 'JingjinTerrain',
  68. dataSourceName: "Jingjin",
  69. X: lonlat.lon,
  70. Y: lonlat.lat
  71. });
  72. var gridCellQueryService = new SuperMap.REST.GetGridCellInfosService(url1, {
  73. 'eventListeners': {
  74. 'processCompleted': querySuccess,
  75. 'processFailed': queryFailed
  76. }
  77. });
  78. gridCellQueryService.processAsync(gridCellQueryParam);
  79. } else {
  80. widgets.alert.showAlert(resources.msg_geographicPosition, false, 240);
  81. }
  82. }
  83. function mapClicked(evt) {
  84. var pixel = new SuperMap.Pixel(evt.clientX, evt.clientY),
  85. lonlat = map.getLonLatFromPixel(pixel);
  86. addFeature(lonlat);
  87. query(lonlat);
  88. }
  89. function addFeature(lonlat) {
  90. pointLayer.removeAllFeatures();
  91. var point = new SuperMap.Geometry.Point(lonlat.lon, lonlat.lat);
  92. var feature = new SuperMap.Feature.Vector(point);
  93. pointLayer.addFeatures([feature]);
  94. }
  95. function querySuccess(evt) {
  96. var str = resources.text_gridQueryResult,
  97. result = evt.result;
  98. for (var objName in result) {
  99. if (result.hasOwnProperty(objName)) {
  100. str += `<span>${objName}:${(result[objName] instanceof Object ? [result[objName].x, result[objName].y] : result[objName])}</span>`;
  101. }
  102. }
  103. document.getElementById("queryresult").innerHTML = str;
  104. }
  105. function queryFailed(evt) {
  106. document.getElementById("queryresult").innerHTML = evt.originResult.error.errorMsg;
  107. }
  108. widgets.alert.showAlert(resources.msg_gridQueryNote, true, 400);
  109. </script>
  110. </body>
  111. </html>