05_findPathService.html 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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_findPath"></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/leaflet/include-leaflet.js"></script>
  14. <script type="text/javascript">
  15. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  16. var map, findPathService, findPathParameter,
  17. baseUrl = host + "/iserver/services/map-changchun/rest/maps/长春市区图",
  18. serviceUrl = host + "/iserver/services/transportationanalyst-sample/rest/networkanalyst/RoadNet@Changchun";
  19. //最佳路径分析必须按照指定顺序对站点进行访问
  20. map = L.map('map', {
  21. crs: L.CRS.NonEarthCRS({
  22. bounds: L.bounds([48.4, -7668.25], [8958.85, -55.58]),
  23. origin: L.point(48.4, -55.58)
  24. }),
  25. center: [-3600, 5000],
  26. maxZoom: 18,
  27. zoom: 2
  28. });
  29. L.supermap.tiledMapLayer(baseUrl, { noWrap: true })
  30. .addTo(map)
  31. .once("load", function () {
  32. findPathProcess();
  33. });
  34. function findPathProcess() {
  35. //添加站点
  36. var marker1 = L.marker([-3000, 4000]).addTo(map);
  37. marker1.bindPopup(resources.text_site1);
  38. var marker2 = L.marker([-2500, 5500]).addTo(map);
  39. marker2.bindPopup(resources.text_site2);
  40. var marker3 = L.marker([-4000, 6900]).addTo(map);
  41. marker3.bindPopup(resources.text_site3);
  42. //创建最佳路径分析服务实例
  43. findPathService = L.supermap.networkAnalystService(serviceUrl);
  44. //创建最佳路径分析参数实例
  45. var resultSetting = new SuperMap.TransportationAnalystResultSetting({
  46. returnEdgeFeatures: true,
  47. returnEdgeGeometry: true,
  48. returnEdgeIDs: true,
  49. returnNodeFeatures: true,
  50. returnNodeGeometry: true,
  51. returnNodeIDs: true,
  52. returnPathGuides: true,
  53. returnRoutes: true
  54. });
  55. var analystParameter = new SuperMap.TransportationAnalystParameter({
  56. resultSetting: resultSetting,
  57. weightFieldName: "length"
  58. });
  59. findPathParameter = new SuperMap.FindPathParameters({
  60. isAnalyzeById: false,
  61. nodes: [L.point(4000, -3000), L.point(5500, -2500), L.point(6900, -4000)],
  62. parameter: analystParameter
  63. });
  64. var myIcon = L.icon({
  65. iconUrl: "../img/walk.png",
  66. iconSize: [20, 20]
  67. });
  68. //进行查找
  69. findPathService.findPath(findPathParameter, function (serviceResult) {
  70. var result = serviceResult.result;
  71. result.pathList.map(function (result) {
  72. L.geoJSON(result.route).addTo(map);
  73. L.geoJSON(result.pathGuideItems, {
  74. pointToLayer: function (geoPoints, latlng) {
  75. L.marker(latlng, { icon: myIcon }).addTo(map);
  76. },
  77. filter: function (geoJsonFeature) {
  78. if (geoJsonFeature.geometry && geoJsonFeature.geometry.type === 'Point') {
  79. return true;
  80. }
  81. return false;
  82. }
  83. }).addTo(map);
  84. })
  85. });
  86. }
  87. </script>
  88. </body>
  89. </html>