02_getFeatureByGeometry.html 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html lang="en">
  6. <head>
  7. <meta charset="UTF-8">
  8. <title data-i18n="resources.title_getFeatureByGeometry"></title>
  9. <script type="text/javascript" include="bootstrap-css" src="../js/include-web.js"></script>
  10. <script type="text/javascript" src="../../dist/mapboxgl/include-mapboxgl.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="margin:0 auto;width: 100%;height: 100%"></div>
  14. <script>
  15. var map, queryPolygonGeometry,
  16. baseUrl = (window.isLocal ? window.server : "https://iserver.supermap.io") + "/iserver/services/map-world/rest/maps/World",
  17. mapUrl = baseUrl + "/zxyTileImage.png?z={z}&x={x}&y={y}",
  18. dataUrl = (window.isLocal ? window.server : "https://iserver.supermap.io") + "/iserver/services/data-world/rest/data";
  19. var attribution = "<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox </a>" +
  20. " with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a> | </span>" +
  21. " Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> ";
  22. map = new mapboxgl.Map({
  23. container: 'map',
  24. style: {
  25. "version": 8,
  26. "sources": {
  27. "raster-tiles": {
  28. "attribution": attribution,
  29. "type": "raster",
  30. "tiles": [mapUrl],
  31. "tileSize": 256
  32. }
  33. },
  34. "layers": [{
  35. "id": "simple-tiles",
  36. "type": "raster",
  37. "source": "raster-tiles",
  38. }]
  39. },
  40. center: [0, 0],
  41. zoom: 2
  42. });
  43. map.addControl(new mapboxgl.NavigationControl(), 'top-left');
  44. map.addControl(new mapboxgl.supermap.LogoControl(), 'bottom-right');
  45. map.on("load", function () {
  46. queryPolygonGeometry = {
  47. "type": "Polygon",
  48. "coordinates": [[[0, 0], [-10, 30], [-30, 0], [0, 0]]]
  49. };
  50. map.addLayer({
  51. "id": "queryPolygon",
  52. "type": "fill",
  53. "source": {
  54. "type": "geojson",
  55. "data": {
  56. "type": "Feature",
  57. "geometry": queryPolygonGeometry
  58. }
  59. },
  60. "paint": {
  61. "fill-color": "rgba(0, 0, 255, 0.1)",
  62. "fill-outline-color": "red",
  63. },
  64. });
  65. query();
  66. });
  67. function query() {
  68. var geometryParam = new SuperMap.GetFeaturesByGeometryParameters({
  69. datasetNames: ["World:Countries"],
  70. geometry: queryPolygonGeometry,
  71. spatialQueryMode: "INTERSECT"
  72. });
  73. new mapboxgl.supermap.FeatureService(dataUrl).getFeaturesByGeometry(geometryParam, function (serviceResult) {
  74. map.addSource("queryDatas", {
  75. "type": "geojson",
  76. "data": serviceResult.result.features
  77. });
  78. map.addLayer({
  79. "id": "queryDatas",
  80. "type": "fill",
  81. "source": "queryDatas",
  82. "paint": {
  83. "fill-color": "rgba(255, 251, 240, 0.4)",
  84. 'fill-outline-color': "#0066FF",
  85. },
  86. });
  87. });
  88. }
  89. </script>
  90. </body>
  91. </html>