01_measure_distance.html 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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_measureDistance"></title>
  9. </head>
  10. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
  11. <div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
  12. <script type="text/javascript" include="bootstrap,jquery,widgets.alert" src="../js/include-web.js"></script>
  13. <script type="text/javascript" include="draw" src="../../dist/mapboxgl/include-mapboxgl.js"></script>
  14. <script type="text/javascript">
  15. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  16. var url = host + "/iserver/services/map-world/rest/maps/World";
  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 map = new mapboxgl.Map({
  21. container: 'map',
  22. style: {
  23. "version": 8,
  24. "sources": {
  25. "raster-tiles": {
  26. "attribution": attribution,
  27. "type": "raster",
  28. "tiles": [host + '/iserver/services/maps/rest/maps/World/zxyTileImage.png?prjCoordSys='+encodeURIComponent('{"epsgCode":3857}')+'&z={z}&x={x}&y={y}'],
  29. "tileSize": 256,
  30. },
  31. },
  32. "layers": [{
  33. "id": "simple-tiles",
  34. "type": "raster",
  35. "source": "raster-tiles",
  36. "minzoom": 0,
  37. "maxzoom": 22
  38. }],
  39. },
  40. center: [0, 0],
  41. maxZoom: 18,
  42. zoom: 3
  43. });
  44. map.addControl(new mapboxgl.supermap.LogoControl(), 'bottom-right');
  45. map.addControl(new mapboxgl.NavigationControl(), 'top-left');
  46. var draw = new MapboxDraw({
  47. displayControlsDefault: false,
  48. controls: {
  49. line_string: true,
  50. trash: true
  51. }
  52. });
  53. map.addControl(draw, "top-left");
  54. function measureDistance(e) {
  55. if (!e.features) {
  56. widgets.alert.showAlert(resources.msg_noDataRedraw, false);
  57. }
  58. var param = new SuperMap.MeasureParameters(e.features[0]);
  59. new mapboxgl.supermap.MeasureService(url).measureDistance(param, function (serviceResult) {
  60. var distance = serviceResult.result.distance;
  61. widgets.alert.showAlert(distance + resources.msg_m, true);
  62. });
  63. }
  64. function removeMsg() {
  65. $('#msg_container').remove();
  66. }
  67. map.on('draw.create', measureDistance);
  68. map.on('draw.delete', removeMsg);
  69. </script>
  70. </body>
  71. </html>