vizLayer_animatorPolygon.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  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_animatorPolygon"></title>
  9. <script type="text/javascript" src="./data/animationPolygonData.js"></script>
  10. <style type="text/css">
  11. body {
  12. margin: 0;
  13. overflow: hidden;
  14. background: #fff;
  15. width: 100%;
  16. height: 100%
  17. }
  18. #map {
  19. position: absolute;
  20. width: 100%;
  21. height: 100%;
  22. }
  23. #toolbar {
  24. position: absolute;
  25. top: 50px;
  26. right: 10px;
  27. text-align: center;
  28. z-index: 100;
  29. border-radius: 4px;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div id="toolbar" class="panel panel-primary">
  35. <div class='panel-heading'>
  36. <h5 class='panel-title text-center' data-i18n="resources.title_animatorPolygon"></h5></div>
  37. <div class='panel-body content'>
  38. <input type="button" class="btn btn-default" data-i18n="[value]resources.btn_play" onclick="startAnimator()"/>&nbsp;
  39. <input type="button" class="btn btn-default" data-i18n="[value]resources.btn_pause" onclick="pauseAnimator()"/>
  40. </div>
  41. </div>
  42. <div id="map"></div>
  43. <script type="text/javascript" include="bootstrap,widgets.alert" src="../js/include-web.js"></script>
  44. <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
  45. <script>
  46. var map, layer, animatorVector,
  47. host = window.isLocal ? window.server : "https://iserver.supermap.io",
  48. url = host + "/iserver/services/map-china400/rest/maps/China";
  49. var style1 = {
  50. fillColor: "#b6fb7e",
  51. fillOpacity: 0.2,
  52. strokeOpacity: 0
  53. };
  54. var style2 =
  55. {
  56. fillColor: "#ffff00",
  57. fillOpacity: 0.2,
  58. strokeOpacity: 0
  59. };
  60. var style3 =
  61. {
  62. fillColor: "#efad3b",
  63. fillOpacity: 0.2,
  64. strokeOpacity: 0
  65. };
  66. var style4 =
  67. {
  68. fillColor: "#ef8425",
  69. fillOpacity: 0.2,
  70. strokeOpacity: 0
  71. };
  72. var style5 =
  73. {
  74. fillColor: "#ef255e",
  75. fillOpacity: 0.2,
  76. strokeOpacity: 0
  77. };
  78. var style6 =
  79. {
  80. fillColor: "#f80f1a",
  81. fillOpacity: 0.2,
  82. strokeOpacity: 0
  83. };
  84. var style7 =
  85. {
  86. fillColor: "#ff000",
  87. fillOpacity: 0.2,
  88. strokeOpacity: 0
  89. };
  90. init();
  91. function init() {
  92. if (!document.createElement('canvas').getContext) {
  93. widgets.alert.showAlert(resources.msg_supportCanvas, false);
  94. return;
  95. }
  96. //初始化地图
  97. map = new SuperMap.Map("map", {
  98. controls: [
  99. new SuperMap.Control.ScaleLine(),
  100. new SuperMap.Control.Zoom(),
  101. new SuperMap.Control.Navigation({
  102. dragPanOptions: {
  103. enableKinetic: true
  104. }
  105. })],
  106. projection: "EPSG:3857"
  107. });
  108. //初始化图层
  109. layer = new SuperMap.Layer.TiledDynamicRESTLayer("China", url, null, {maxResolution: "auto"});
  110. //初始化动画矢量图层
  111. animatorVector = new SuperMap.Layer.AnimatorVector("Polygon", {}, {
  112. //设置速度为每帧播放0.01小时的数据
  113. speed: 0.01,
  114. //开始时间为12点
  115. startTime: 12,
  116. //每秒渲染12次
  117. frameRate: 12,
  118. //结束时间为15点
  119. endTime: 15
  120. });
  121. //监听图层信息加载完成事件
  122. layer.events.on({
  123. "layerInitialized": function () {
  124. map.addLayers([layer, animatorVector]);
  125. map.addControl(selectFeature);
  126. selectFeature.activate();
  127. map.setCenter(new SuperMap.LonLat(11586634.286396, 3588716.5813769), 12);
  128. //增加数据
  129. addPolygon();
  130. }
  131. });
  132. var selectFeature = new SuperMap.Control.SelectFeature(animatorVector, {
  133. onSelect: function (fe) {
  134. console.log(fe);
  135. },
  136. hover: false
  137. });
  138. }
  139. //添加面数据
  140. function addPolygon() {
  141. var regionFeatures = [];
  142. for (var i = 0, len = lines.length; i < len; i++) {
  143. var arr = [];
  144. for (var j = 0; j < lines[i][3].length; j++) {
  145. var point = new SuperMap.Geometry.Point(lines[i][3][j][0], lines[i][3][j][1]);
  146. arr.push(point);
  147. }
  148. var line = new SuperMap.Geometry.LinearRing(arr);
  149. var region = new SuperMap.Geometry.Polygon([line]);
  150. var style;
  151. if (lines[i][2] == 31) {
  152. style = style1;
  153. }
  154. else if (lines[i][2] == 32) {
  155. style = style2;
  156. }
  157. else if (lines[i][2] == 33) {
  158. style = style3;
  159. }
  160. else if (lines[i][2] == 34) {
  161. style = style4;
  162. }
  163. else if (lines[i][2] == 35) {
  164. style = style5;
  165. }
  166. else if (lines[i][2] == 36) {
  167. style = style6;
  168. }
  169. else if (lines[i][2] == 37) {
  170. style = style7;
  171. }
  172. var regionFeature = new SuperMap.Feature.Vector(region, {
  173. FEATUREID: lines[i][0],
  174. TIME: lines[i][1],
  175. TEMPERATURE: lines[i][2]
  176. }, style);
  177. regionFeatures.push(regionFeature);
  178. }
  179. animatorVector.addFeatures(regionFeatures);
  180. }
  181. //开始播放动画
  182. function startAnimator() {
  183. animatorVector.animator.start();
  184. }
  185. //暂停播放动画
  186. function pauseAnimator() {
  187. animatorVector.animator.pause();
  188. }
  189. </script>
  190. </body>
  191. </html>