<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta name="geometry" content="diagram"> <link rel="stylesheet" href="./assets/common.css"> <link rel="stylesheet" href="./assets/info.css"> <title>hexagon demo</title> <style> body {margin: 0;} #map { position:absolute; top:0; bottom:0; width:100%; } </style> </head> <body> <div id="map"></div> <div id ="info" class ="tooltip" style="display:none"></div> <div class='info-panel top-right'> <p> <label>min</label><input name="minaqi" type="range" step="1" min="0" max="200" value=0> <label>0</label> </p> <p> <label>max</label><input name="maxaqi" type="range" step="1" min="0" max="300" value=300><label>300</label> </p> <p><label>color</label><select> <option value ="default">default</option> <option value ="blue">blue</option> <option value ="red">red</option> <option value="orange">orange</option> <option value="green">green</option> <option value="yellow">yellow</option> <option value="purple">purple</option> </select> </p> <div> <script src="https://webapi.amap.com/maps?v=1.4.8&key=15cd8a57710d40c9b7c0e3cc120f1200&plugin=Map3D"></script> <script src="./assets/jquery-3.2.1.min.js"></script> <script src="./assets/dat.gui.min.js"></script> <script src="../build/L7.js"></script> <script> const colorObj ={ blue: ["#E8FCFF", "#CFF6FF", "#98E3FA", "#65CEF7", "#3CB4F0", "#2894E0", "#1A76C7", "#105CB3", "#0D408C", "#002466"], red: ["#FFF4F2", "#FFDFDB", "#FAADAA", "#F77472", "#F04850", "#D63147", "#BD223E", "#A81642", "#820C37", "#5C0023"], orange:["#FFF7EB", "#FFECD4", "#FAD09D", "#F7B16A", "#F08D41", "#DB6C2C", "#C2491D", "#AD2B11", "#871D0C", "#610800"], green:["#FAFFF0", "#EBF7D2", "#C8E695", "#A5D660", "#7DC238", "#59A616", "#3F8C0B", "#237804", "#125200", "#082B00"], yellow:["#FFFFE8", "#FFFECC", "#FAF896", "#F7E463", "#F0CE3A", "#DBB125", "#C29117", "#AD7410", "#87500C", "#613000"], purple:["#FCF2FF", "#F5DEFF", "#DDB3F2", "#BE7BE3", "#9B4ECF", "#7737B3", "#5B2899", "#411C85", "#270F5E", "#100338"], } const scene = new L7.Scene({ id: 'map', mapStyle: 'dark', // 样式URL center: [104.838088,34.075889 ], pitch: 0, zoom: 4.5, }); window.scene = scene; scene.on('loaded', () => { var colors = ["#FFF5B8","#FFDC7D","#FFAB5C","#F27049","#D42F31","#730D1C"]; $.getJSON('https://gw.alipayobjects.com/os/rmsportal/JToMOWvicvJOISZFCkEI.json', city => { const citylayer = scene.PolygonLayer() .source(city) //.color('pm2_5_24h',["#FFF5B8","#FFDC7D","#FFAB5C","#F27049","#D42F31","#730D1C"]) .color('pm2_5_24h',(p)=>{ if(p>120){ return colors[5]; } else if(p>65){ return colors[4]; } else if(p>30) { return colors[3]; } else if(p>15){ return colors[2]; } else if(p>8){ return colors[1]; }else { return colors[0]; } }) .shape('fill') .active(true) .style({ opacity: 1 }) .render(); const citylayer2 = scene.PolygonLayer() .source(city) .shape('line') .color('#fff') .style({ opacity: 1.0 }) //.render(); console.log(citylayer); citylayer.on('click',(e)=>{ $("#info").css({'left': e.pixel.x,'top':e.pixel.y, display:'block'}); $("#info").html(`<p>${e.feature.properties.area || e.feature.properties.name }<span">${e.feature.properties.pm2_5_24h || 0}</span></p>`); }) $('.info-panel input').change(function(){ $(this).next().text($(this).val()); const min = $('.info-panel input').val(); const max = $($('.info-panel input')[1]).val(); citylayer.filter('pm2_5_24h',(value)=>{ return (value>=min && value<=max) }).render(); }) $('.info-panel select').change(function(){ const color = $(this).val(); citylayer.color('pm2_5_24h',colorObj[color]).render(); console.timeEnd('color') }) }); }); </script> </body> </html>