map.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>OpenLayers 加载天地图</title>
  7. <link rel="stylesheet"
  8. href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@latest/en/v6.5.0/css/ol.css" type="text/css">
  9. <script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@latest/en/v6.5.0/build/ol.js"></script>
  10. <script src="https://cdn.jsdelivr.net/npm/geotiff/dist/geotiff.bundle.js"></script>
  11. <script src="https://cdn.jsdelivr.net/npm/ol-geoTIFF/dist/ol-geotiff.js"></script>
  12. <style>
  13. /* 设置 body 和 html 占满全屏 */
  14. html,
  15. body {
  16. height: 100%;
  17. margin: 0;
  18. padding: 0;
  19. }
  20. /* 确保 map 元素也占满全屏 */
  21. #map {
  22. width: 100%;
  23. height: 100vh;
  24. /* 视口高度,确保地图占满整个窗口 */
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <div id="map" class="map"></div>
  30. <script>
  31. var key = "12df6e32906dbb916fad14dc65ebdbf8"; // 请替换成你的key
  32. // 矢量底图
  33. var vecLayer = new ol.layer.Tile({
  34. source: new ol.source.XYZ({
  35. url: 'http://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=' + key
  36. })
  37. });
  38. // 矢量标注
  39. var cvaLayer = new ol.layer.Tile({
  40. source: new ol.source.XYZ({
  41. url: 'http://t0.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=' + key
  42. })
  43. });
  44. // 影像底图
  45. var imgLayer = new ol.layer.Tile({
  46. source: new ol.source.XYZ({
  47. url: "http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=" + key
  48. })
  49. });
  50. // 影像标注
  51. var imgCiaLayer = new ol.layer.Tile({
  52. source: new ol.source.XYZ({
  53. url: "http://t0.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=" + key
  54. })
  55. });
  56. // 地形晕染
  57. var terLayer = new ol.layer.Tile({
  58. source: new ol.source.XYZ({
  59. url: 'http://t0.tianditu.gov.cn/ter_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=' + key
  60. })
  61. });
  62. // 地形标注层
  63. var ctaLayer = new ol.layer.Tile({
  64. source: new ol.source.XYZ({
  65. url: 'http://t0.tianditu.gov.cn/cta_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=' + key
  66. })
  67. });
  68. // 创建地图
  69. var map = new ol.Map({
  70. target: 'map',
  71. layers: [
  72. vecLayer, // 矢量底图
  73. cvaLayer, // 矢量标注
  74. // tiffLayer
  75. // imgLayer, // 影像底图
  76. // imgCiaLayer, // 影像标注
  77. // terLayer, // 地形晕染
  78. // ctaLayer // 地形标注
  79. ],
  80. view: new ol.View({
  81. center: ol.proj.fromLonLat([106.672956731, 38.207187209]), // 设置中心点为北京
  82. zoom: 18 // 初始缩放级别
  83. })
  84. });
  85. // var marker = new ol.Feature({
  86. // geometry: new ol.geom.Point(ol.proj.fromLonLat([106.672956731, 38.207187209]))
  87. // });
  88. // var vectorSource = new ol.source.Vector({
  89. // features: [marker]
  90. // });
  91. // var markerLayer = new ol.layer.Vector({
  92. // source: vectorSource,
  93. // style: new ol.style.Style({
  94. // image: new ol.style.Circle({
  95. // radius: 7,
  96. // fill: new ol.style.Fill({ color: 'red' })
  97. // })
  98. // })
  99. // });
  100. // map.addLayer(markerLayer);
  101. // 加载 GeoTIFF 图层
  102. var geoTiffLayer = new ol.layer.Image({
  103. source: new ol.source.GeoTIFF({
  104. // 替换为你的 GeoTIFF 文件的 URL
  105. sources: [{
  106. url: 'http://192.168.60.4:9201/spotfile/64018120240902/QDOM/6401812024070108270001QDOM.tif',
  107. // 处理图像范围,可以不设置,自动推断
  108. // imageExtent: ol.proj.transformExtent([106.672956731, 38.207187209, 106.678449895, 38.212680373], 'EPSG:4326', 'EPSG:3857')
  109. }]
  110. })
  111. });
  112. // 将 GeoTIFF 图层添加到地图
  113. map.addLayer(geoTiffLayer);
  114. </script>
  115. </body>
  116. </html>