01_measure_distance.html 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. <script type="text/javascript" include="bootstrap,jquery,widgets.alert" src="../js/include-web.js"></script>
  10. <script type="text/javascript" src="../../dist/ol/include-ol.js"></script>
  11. </head>
  12. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%; position: absolute;top: 0;">
  13. <div id="map" style="width: 100%;height:100%"></div>
  14. <script type="text/javascript">
  15. var map, interaction, vectorLayer, feature,
  16. url = (window.isLocal ? window.server : "https://iserver.supermap.io") + "/iserver/services/map-world/rest/maps/World";
  17. map = new ol.Map({
  18. target: 'map',
  19. controls: ol.control.defaults({attributionOptions: {collapsed: false}})
  20. .extend([new ol.supermap.control.Logo()]),
  21. view: new ol.View({
  22. center: [0, 0],
  23. zoom: 3,
  24. projection: 'EPSG:4326',
  25. multiWorld: true
  26. })
  27. });
  28. var layer = new ol.layer.Tile({
  29. source: new ol.source.TileSuperMapRest({
  30. url: url
  31. }),
  32. projection: 'EPSG:4326'
  33. });
  34. map.addLayer(layer);
  35. var source = new ol.source.Vector({wrapX: false});
  36. vectorLayer = new ol.layer.Vector({
  37. source: source
  38. });
  39. map.addLayer(vectorLayer);
  40. interaction = new ol.interaction.Draw({
  41. source: source,
  42. type: "LineString"
  43. });
  44. interaction.on('drawstart', function (evt) {
  45. feature = evt.feature;
  46. });
  47. interaction.on('drawend', function () {
  48. var distanceMeasureParam = new SuperMap.MeasureParameters(feature.getGeometry());
  49. new ol.supermap.MeasureService(url, {measureMode: ""}).measureDistance(distanceMeasureParam, function (serviceResult) {
  50. widgets.alert.showAlert(serviceResult.result.distance + resources.msg_m, true);
  51. });
  52. });
  53. map.addInteraction(interaction);
  54. </script>
  55. </body>
  56. </html>