03_themeRange.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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_themeRange"></title>
  9. <script type="text/javascript" src="../js/include-web.js"></script>
  10. </head>
  11. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  12. <div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
  13. <script type="text/javascript" src="../../dist/mapboxgl/include-mapboxgl.js"></script>
  14. <span id="show"></span>
  15. <script type="text/javascript">
  16. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  17. var attribution = "<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox </a>" +
  18. "with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a> | </span>" +
  19. " Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> ";
  20. var dataUrl = host + "/iserver/services/map-china400/rest/maps/China";
  21. var map = new mapboxgl.Map({
  22. container: 'map',
  23. style: {
  24. "version": 8,
  25. "sources": {
  26. "raster-tiles": {
  27. "attribution": attribution,
  28. "type": "raster",
  29. "tiles": [host + '/iserver/services/map-china400/rest/maps/China/zxyTileImage.png?prjCoordSys='+encodeURIComponent('{"epsgCode":3857}')+'&z={z}&x={x}&y={y}'],
  30. "tileSize": 256,
  31. },
  32. },
  33. "layers": [{
  34. "id": "simple-tiles",
  35. "type": "raster",
  36. "source": "raster-tiles",
  37. "minzoom": 0,
  38. "maxzoom": 22
  39. }]
  40. },
  41. center: [110, 30],
  42. zoom: 3
  43. });
  44. map.addControl(new mapboxgl.NavigationControl(), 'top-left');
  45. map.addControl(new mapboxgl.supermap.LogoControl(), 'bottom-right');
  46. function createTheme() {
  47. var themeRangeItem1, themeRangeItem2,
  48. themeRangeItem3, themeRange;
  49. themeRangeItem1 = new SuperMap.ThemeRangeItem({
  50. start: 0,
  51. end: 500000000000,
  52. style: new SuperMap.ServerStyle({
  53. fillForeColor: new SuperMap.ServerColor(211, 255, 250),
  54. lineColor: new SuperMap.ServerColor(179, 209, 193),
  55. lineWidth: 0.1
  56. })
  57. });
  58. themeRangeItem2 = new SuperMap.ThemeRangeItem({
  59. start: 500000000000,
  60. end: 1000000000000,
  61. style: new SuperMap.ServerStyle({
  62. fillForeColor: new SuperMap.ServerColor(178, 218, 199),
  63. lineColor: new SuperMap.ServerColor(179, 209, 193),
  64. lineWidth: 0.1
  65. })
  66. });
  67. themeRangeItem3 = new SuperMap.ThemeRangeItem({
  68. start: 1000000000000,
  69. end: 3000000000000,
  70. style: new SuperMap.ServerStyle({
  71. fillForeColor: new SuperMap.ServerColor(58, 178, 166),
  72. lineColor: new SuperMap.ServerColor(179, 209, 193),
  73. lineWidth: 0.1
  74. })
  75. });
  76. themeRange = new SuperMap.ThemeRange({
  77. rangeExpression: "SMAREA",
  78. rangeMode: SuperMap.RangeMode.EQUALINTERVAL,
  79. items: [themeRangeItem1, themeRangeItem2, themeRangeItem3]
  80. });
  81. var themeParameters = new SuperMap.ThemeParameters({
  82. datasetNames: ["China_Province_pg"],
  83. dataSourceNames: ["China"],
  84. joinItems: null,
  85. themes: [themeRange]
  86. });
  87. new mapboxgl.supermap.ThemeService(dataUrl).getThemeInfo(themeParameters, function (serviceResult) {
  88. var result = serviceResult.result;
  89. if (result && result.newResourceID) {
  90. map.addSource("theme", {
  91. "type": 'raster',
  92. "tiles": [host + '/iserver/services/map-china400/rest/maps/China/zxyTileImage.png?z={z}&x={x}&y={y}&noWrap=true&transparent=true&cacheEnabled=false&layersID=' + result.newResourceID],
  93. "tileSize": 256,
  94. });
  95. map.addLayer({
  96. "id": "themeLayer",
  97. "type": "raster",
  98. "source": "theme",
  99. });
  100. }
  101. })
  102. }
  103. map.on('load', function () {
  104. createTheme();
  105. });
  106. </script>
  107. </body>
  108. </html>