mask.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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_mask"></title>
  9. <style type="text/css">
  10. .editPane {
  11. position: absolute;
  12. top: 50px;
  13. right: 50px;
  14. text-align: center;
  15. background: #fff;
  16. z-index: 1000;
  17. }
  18. </style>
  19. </head>
  20. <body style="margin: 0; overflow: hidden; background: #fff; width: 100%; height: 100%; position: absolute; top: 0">
  21. <div class="panel panel-primary editPane" id="editPane" style="z-index: 99999">
  22. <div class="panel-heading">
  23. <h5 class="panel-title text-center" data-i18n="resources.btn_operate"></h5>
  24. </div>
  25. <div class="panel-body" id="params">
  26. <p></p>
  27. <div align="right" class="button-group">
  28. <input
  29. type="button"
  30. id="btn1"
  31. class="btn btn-primary"
  32. data-i18n="[value]resources.text_input_value_addMask"
  33. onclick="addMask()"
  34. />
  35. <input
  36. type="button"
  37. id="btn2"
  38. class="btn btn-primary"
  39. data-i18n="[value]resources.text_input_value_removeMask"
  40. onclick="removeMask()"
  41. />
  42. </div>
  43. </div>
  44. </div>
  45. <div id="map" style="width: 100%; height: 100%"></div>
  46. <script type="text/javascript" include="bootstrap,widgets" src="../js/include-web.js"></script>
  47. <script type="text/javascript" include="ol-mapbox-style" src="../../dist/ol/include-ol.js"></script>
  48. <script type="text/javascript">
  49. var map,
  50. sichuanFeature,
  51. vectorLayer,
  52. baseUrl =
  53. (window.isLocal ? window.server : 'https://iserver.supermap.io') +
  54. '/iserver/services/map-china400/rest/maps/China',
  55. url =
  56. (window.isLocal ? window.server : 'https://iserver.supermap.io') +
  57. '/iserver/services/map-Population/rest/maps/PopulationDistribution';
  58. map = new ol.Map({
  59. target: 'map',
  60. controls: ol.control
  61. .defaults({ attributionOptions: { collapsed: false } })
  62. .extend([new ol.supermap.control.Logo()]),
  63. view: new ol.View({
  64. center: [11523496.18, 3735091.51],
  65. zoom: 4,
  66. multiWorld: true
  67. })
  68. });
  69. var layer = new ol.layer.Tile({
  70. source: new ol.source.TileSuperMapRest({
  71. url: baseUrl,
  72. wrapX: true
  73. })
  74. });
  75. map.addLayer(layer);
  76. var vectorLayer = new ol.layer.Tile({
  77. source: new ol.source.TileSuperMapRest({
  78. url: url,
  79. wrapX: true
  80. })
  81. });
  82. map.addLayer(vectorLayer);
  83. function addMask() {
  84. if (!sichuanFeature) {
  85. widgets.loader.showLoader(resources.text_add_sicahun_plygon);
  86. var param = new SuperMap.QueryBySQLParameters({
  87. queryParams: {
  88. name: 'China_Province_pl@China',
  89. attributeFilter: 'SMID =14'
  90. }
  91. });
  92. new ol.supermap.QueryService(baseUrl).queryBySQL(param, function (serviceResult) {
  93. widgets.loader.removeLoader();
  94. sichuanFeature = new ol.format.GeoJSON().readFeatures(
  95. serviceResult.result.recordsets[0].features
  96. )[0];
  97. ol.supermap.Util.setMask(vectorLayer, sichuanFeature);
  98. });
  99. return;
  100. } else {
  101. ol.supermap.Util.setMask(vectorLayer, sichuanFeature);
  102. }
  103. }
  104. function removeMask() {
  105. ol.supermap.Util.unsetMask(vectorLayer);
  106. }
  107. </script>
  108. </body>
  109. </html>