analysis_serviceAreas.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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_serviceAreas"></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_serviceAreas"></h5></div>
  36. <div class='panel-body content'>
  37. <input type="button" class="btn btn-default" data-i18n="[value]resources.text_serviceCenter"
  38. onclick="selectCenters()"/>&nbsp;
  39. <input type="button" class="btn btn-default" data-i18n="[value]resources.text_input_value_submit"
  40. onclick="findServiceAreas()"/>&nbsp;
  41. <input type="button" class="btn btn-default" data-i18n="[value]resources.text_input_value_clear"
  42. onclick="clearElements()"/>
  43. </div>
  44. </div>
  45. <div id="map"></div>
  46. <script type="text/javascript" include="bootstrap" src="../js/include-web.js"></script>
  47. <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
  48. <script>
  49. var local, map, layer, vectorLayer, markerLayer, drawPoint,
  50. centersArray = [], weightsArray = [], n = 0,
  51. style = {
  52. strokeColor: "#304DBE",
  53. strokeWidth: 1,
  54. pointerEvents: "visiblePainted",
  55. fillColor: "#304DBE",
  56. fillOpacity: 0.4
  57. },
  58. host = window.isLocal ? window.server : "https://iserver.supermap.io",
  59. url1 = host + "/iserver/services/map-changchun/rest/maps/长春市区图",
  60. url2 = host + "/iserver/services/transportationanalyst-sample/rest/networkanalyst/RoadNet@Changchun";
  61. init();
  62. function init() {
  63. vectorLayer = new SuperMap.Layer.Vector("Vector Layer");
  64. drawPoint = new SuperMap.Control.DrawFeature(vectorLayer, SuperMap.Handler.Point);
  65. drawPoint.events.on({"featureadded": drawCompleted});
  66. map = new SuperMap.Map("map", {
  67. controls: [
  68. new SuperMap.Control.ScaleLine(),
  69. new SuperMap.Control.Zoom(),
  70. new SuperMap.Control.Navigation({
  71. dragPanOptions: {
  72. enableKinetic: true
  73. }
  74. }),
  75. drawPoint], units: "m"
  76. });
  77. map.addControl(new SuperMap.Control.LayerSwitcher(), new SuperMap.Pixel(42, 80));
  78. layer = new SuperMap.Layer.TiledDynamicRESTLayer("Changchun", url1, {
  79. transparent: true,
  80. cacheEnabled: true
  81. }, {maxResolution: "auto"});
  82. layer.events.on({"layerInitialized": addLayer});
  83. vectorLayer = new SuperMap.Layer.Vector("Vector Layer");
  84. markerLayer = new SuperMap.Layer.Markers("Markers");
  85. }
  86. function addLayer() {
  87. map.addLayers([layer, vectorLayer, markerLayer]);
  88. map.setCenter(new SuperMap.LonLat(4503.6240321526, -3861.911472192499), 1);
  89. }
  90. function selectCenters() {
  91. clearElements();
  92. drawPoint.activate();
  93. }
  94. function drawCompleted(drawGeometryArgs) {
  95. var point = drawGeometryArgs.feature.geometry,
  96. size = new SuperMap.Size(44, 33),
  97. offset = new SuperMap.Pixel(-(size.w / 2), -size.h),
  98. icon = new SuperMap.Icon("./images/marker.png", size, offset);
  99. markerLayer.addMarker(new SuperMap.Marker(new SuperMap.LonLat(point.x, point.y), icon));
  100. centersArray.push(point);
  101. n++;
  102. weightsArray.push(400 + n * 100);
  103. }
  104. function findServiceAreas() {
  105. vectorLayer.removeAllFeatures();
  106. drawPoint.deactivate();
  107. var findServiceAreasService, parameter, analystParameter, resultSetting;
  108. resultSetting = new SuperMap.REST.TransportationAnalystResultSetting({
  109. returnEdgeFeatures: true,
  110. returnEdgeGeometry: true,
  111. returnEdgeIDs: true,
  112. returnNodeFeatures: true,
  113. returnNodeGeometry: true,
  114. returnNodeIDs: true,
  115. returnPathGuides: true,
  116. returnRoutes: true
  117. });
  118. analystParameter = new SuperMap.REST.TransportationAnalystParameter({
  119. resultSetting: resultSetting,
  120. weightFieldName: "length"
  121. });
  122. parameter = new SuperMap.REST.FindServiceAreasParameters({
  123. centers: centersArray,
  124. isAnalyzeById: false,
  125. parameter: analystParameter,
  126. weights: weightsArray
  127. });
  128. findServiceAreasService = new SuperMap.REST.FindServiceAreasService(url2, {
  129. eventListeners: {"processCompleted": processCompleted}
  130. });
  131. findServiceAreasService.processAsync(parameter);
  132. }
  133. function processCompleted(findServiceAreasEventArgs) {
  134. vectorLayer.removeAllFeatures();
  135. var result = findServiceAreasEventArgs.result,
  136. features = [];
  137. if (result.serviceAreaList) {
  138. for (var i = 0, serviceAreaList = result.serviceAreaList, len = serviceAreaList.length; i < len; i++) {
  139. var feature = new SuperMap.Feature.Vector();
  140. feature.geometry = serviceAreaList[i].serviceRegion;
  141. feature.style = style;
  142. features.push(feature);
  143. }
  144. }
  145. vectorLayer.addFeatures(features);
  146. }
  147. function clearElements() {
  148. n = 0;
  149. centersArray = [];
  150. weightsArray = [];
  151. markerLayer.clearMarkers();
  152. vectorLayer.removeAllFeatures();
  153. }
  154. </script>
  155. </body>
  156. </html>