overlay_labelVectorLayerData.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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_labelVectorLayerData"></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. #toolbar {
  23. position: absolute;
  24. top: 50px;
  25. right: 10px;
  26. text-align: center;
  27. z-index: 100;
  28. border-radius: 4px;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div id="toolbar" class="panel panel-primary">
  34. <div class='panel-heading'>
  35. <h5 class='panel-title text-center' data-i18n="resources.text_labelVectorLayerData"></h5></div>
  36. <div class='panel-body content'>
  37. <input type="button" class="btn btn-default" data-i18n="[value]resources.text_input_value_addData"
  38. onclick="addData()"/>&nbsp;
  39. <input type="button" class="btn btn-default" data-i18n="[value]resources.text_input_value_removeData"
  40. onclick="removeData()"/>
  41. </div>
  42. </div>
  43. <div id="map"></div>
  44. <script type="text/javascript" include="bootstrap,widgets.alert" src="../js/include-web.js"></script>
  45. <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
  46. <script type="text/javascript">
  47. var map, layer, dataAdded = false,
  48. host = window.isLocal ? window.server : "https://iserver.supermap.io",
  49. url = host + "/iserver/services/map-world/rest/maps/World";
  50. init();
  51. function init() {
  52. map = new SuperMap.Map("map", {
  53. controls: [
  54. new SuperMap.Control.Zoom(),
  55. new SuperMap.Control.Navigation(),
  56. ]
  57. });
  58. map.addControl(new SuperMap.Control.LayerSwitcher(), new SuperMap.Pixel(42, 80));
  59. map.addControl(new SuperMap.Control.MousePosition());
  60. layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", url, null, {maxResolution: "auto"});
  61. vector = new SuperMap.Layer.Vector("vector");
  62. layer.events.on({"layerInitialized": addLayer});
  63. addData();
  64. }
  65. function addLayer() {
  66. map.addLayers([layer, vector]);
  67. map.setCenter(new SuperMap.LonLat(0, 0), 0);
  68. }
  69. function addData() {
  70. if (!dataAdded) {
  71. vector.removeAllFeatures();
  72. //画两个圆
  73. var centerPoint1 = new SuperMap.Geometry.Point(-98, 41);
  74. var circleP1 = createCircle(centerPoint1, 30, 256, 360, 360);
  75. var circleVector1 = new SuperMap.Feature.Vector(circleP1);
  76. circleVector1.style = {
  77. strokeColor: "#CAFF70",
  78. fillColor: "#DC143C",
  79. strokeWidth: 2,
  80. fillOpacity: 0.8,
  81. label: "西方\nWestern",
  82. fontColor: "#FFF0F5"
  83. };
  84. var centerPoint2 = new SuperMap.Geometry.Point(103, 38);
  85. var circleP2 = createCircle(centerPoint2, 30, 256, 360, 360);
  86. var circleVector2 = new SuperMap.Feature.Vector(circleP2);
  87. circleVector2.style = {
  88. strokeColor: "#CAFF70",
  89. fillColor: "#DC143C",
  90. strokeWidth: 2,
  91. fillOpacity: 0.8,
  92. fontWeight: "bold",
  93. label: "东方\n Eastern",
  94. fontColor: "#FFF0F5"
  95. };
  96. vector.addFeatures([circleVector1, circleVector2]);
  97. dataAdded = true;
  98. } else {
  99. widgets.alert.showAlert(resources.msg_loadedData, true);
  100. }
  101. }
  102. //Բ
  103. function createCircle(origin, radius, sides, r, angel) {
  104. var rR = r * Math.PI / (180 * sides);
  105. var rotatedAngle, x, y;
  106. var points = [];
  107. for (var i = 0; i < sides; ++i) {
  108. rotatedAngle = rR * i;
  109. x = origin.x + (radius * Math.cos(rotatedAngle));
  110. y = origin.y + (radius * Math.sin(rotatedAngle));
  111. points.push(new SuperMap.Geometry.Point(x, y));
  112. }
  113. rotatedAngle = r * Math.PI / 180;
  114. x = origin.x + (radius * Math.cos(rotatedAngle));
  115. y = origin.y + (radius * Math.sin(rotatedAngle));
  116. points.push(new SuperMap.Geometry.Point(x, y));
  117. var ring = new SuperMap.Geometry.LinearRing(points);
  118. ring.rotate(parseFloat(angel), origin);
  119. var geo = new SuperMap.Geometry.Collection([ring]);
  120. geo.origin = origin;
  121. geo.radius = radius;
  122. geo.r = r;
  123. geo.angel = angel;
  124. geo.sides = sides;
  125. geo.polygonType = "Curve";
  126. return geo;
  127. }
  128. function removeData() {
  129. widgets.alert.clearAlert();
  130. dataAdded = false;
  131. vector.removeAllFeatures();
  132. vector.refresh();
  133. }
  134. </script>
  135. </body>
  136. </html>