01_mapQueryByDistance.html 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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_mapQueryByDistance"></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/mapboxgl/include-mapboxgl.js"></script>
  14. <script type="text/javascript">
  15. var decodeMarkers = [];
  16. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  17. var url = host + "/iserver/services/map-world/rest/maps/World";
  18. var attribution = "<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox </a>" +
  19. "with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a> | </span>" +
  20. " Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> ";
  21. var map = new mapboxgl.Map({
  22. container: 'map',
  23. style: {
  24. "version": 8,
  25. "sources": {
  26. "raster-tiles": {
  27. "attribution": attribution,
  28. "type": "raster",
  29. "tiles": [host + '/iserver/services/maps/rest/maps/World/zxyTileImage.png?prjCoordSys='+encodeURIComponent('{"epsgCode":3857}')+'&z={z}&x={x}&y={y}'],
  30. "tileSize": 256,
  31. },
  32. },
  33. "layers": [{
  34. "id": "simple-tiles",
  35. "type": "raster",
  36. "source": "raster-tiles",
  37. "minzoom": 0,
  38. "maxzoom": 22
  39. }],
  40. },
  41. center: [100, 0],
  42. maxZoom: 18,
  43. zoom: 2
  44. });
  45. map.addControl(new mapboxgl.supermap.LogoControl(), 'bottom-right');
  46. map.addControl(new mapboxgl.NavigationControl(), 'top-left');
  47. function query() {
  48. //添加查询中心点
  49. var img = new Image();
  50. img.src = '../img/markerbig_select.png';
  51. var marker = new mapboxgl.Marker(img).setLngLat([104, 30]);
  52. decodeMarkers.push(marker);
  53. var point = new mapboxgl.LngLat(104, 30);
  54. var param = new SuperMap.QueryByDistanceParameters({
  55. queryParams: {name: "Capitals@World.1"},
  56. distance: 10,
  57. geometry: point
  58. });
  59. var queryService = new mapboxgl.supermap.QueryService(url);
  60. queryService.queryByDistance(param, callback);
  61. }
  62. map.on('load', function () {
  63. query();
  64. });
  65. function callback(serviceResult) {
  66. var recordsets = serviceResult && serviceResult.result && serviceResult.result.recordsets;
  67. var features = recordsets && recordsets[0] && recordsets[0].features;
  68. decodeMarkers[0].addTo(map);
  69. map.addLayer({
  70. "id": "points",
  71. "type": "circle",
  72. "paint": {
  73. "circle-radius": 6,
  74. "circle-color": "#007cbf",
  75. "circle-opacity": 0.1,
  76. "circle-stroke-width": 2,
  77. "circle-stroke-color": "#007cbf",
  78. "circle-stroke-opacity": 0.5
  79. },
  80. "source": {
  81. "type": "geojson",
  82. "data": features
  83. }
  84. });
  85. }
  86. </script>
  87. </body>
  88. </html>