前言
内容概览
实现方式1:leaflet前端直接读取tif文件
效果图如下:
var mymap = L.map('mapid').setView([-33, 147], 6); L.tileLayer('https://api.tiles./v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', { maxZoom: 18, attribution: 'Map data © <a href="http://">OpenStreetMap</a> contributors, ' + '<a href="http:///licenses/by-sa/2.0/">CC-BY-SA</a>, ' + 'Imagery © <a href="http://">Mapbox</a>', id: 'mapbox.streets'}).addTo(mymap); var renderer = L.LeafletGeotiff.plotty({displayMin:0,displayMax:30,clampLow:false,clampHigh:true,colorScale:'rainbow',arrowSize: 20});var windSpeed = L.leafletGeotiff('./wind_speed.tif', {band: 0,renderer:renderer}).addTo(mymap); /*var windDirection = L.leafletGeotiff( url='./wind_direction.tif', options={band: 0, displayMin: 0, displayMax: 360, name: 'Wind direction', //colorScale: 'rainbow', //clampLow: false, //clampHigh: true, vector:true, arrowSize: 20, } ).addTo(mymap);*/ document.getElementById('colorScaleImage').setAttribute('src',windSpeed.colorScaleData); mymap.on('click', function(e) {if (!marker) { marker = L.marker([e.latlng.lat,e.latlng.lng]).addTo(mymap); } else { marker.setLatLng([e.latlng.lat,e.latlng.lng]); } document.getElementById("windSpeedValue").innerHTML = windSpeed.getValueAtLatLng(e.latlng.lat,e.latlng.lng)? windSpeed.getValueAtLatLng(e.latlng.lat,e.latlng.lng).toFixed(1):'';//document.getElementById("windDirectionValue").innerHTML = windDirection.getValueAtLatLng(e.latlng.lat,e.latlng.lng).toFixed(0);}); 实现方式2:geoserver发布tif地图服务,leaflet读取tif地图服务形式实现
效果图如下:
var tiledMap = createMap('tiled-map', true); function createMap(div, tiled) {// Map configurationvar map = L.map(div); map.setView([-32.46461, 151.50146], 6); var basemaps = {'Basemap': basemap().addTo(map) }; // Add WMS source/layersvar source = wms.source("http://localhost:8080/geoserver/GIS/wms", {"format": "image/png","transparent": "true",//"attribution": "<a href='http://ows./'>terrestris</a>","info_format": "text/html","tiled": tiled } ); var layers = {//'Topographic': source.getLayer("sfdem").addTo(map),'dem': source.getLayer("wind_speed").addTo(map) }; // Create layer controlL.control.layers(basemaps, layers).addTo(map); return map; } function basemap() {// maps.//var attr = 'Map tiles by <a href="http://">Stamen Design</a>, under <a href="http:///licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://">OpenStreetMap</a>, under <a href="http://www./copyright">ODbL</a>.';return L.tileLayer("http://map./ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}", {//opacity: 0.1,//attribution: attr}); } 完整demo源码见小专栏文章尾部:小专栏 文章尾部提供源代码下载,对本专栏感兴趣的话,可以关注一波 |
|