antv-l7/demos/datafilter.html

69 lines
1.7 KiB
HTML

<!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>
<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 scene = new L7.Scene({
id: 'map',
mapStyle: 'dark', // 样式URL
center: [121.5558, 31.2481 ],
pitch: 0,
zoom: 11,
hash:true,
});
window.scene = scene;
scene.on('loaded', () => {
$.getJSON('https://gw.alipayobjects.com/os/basement_prod/7bb614db-bac0-48d7-93e7-9446392d3917.json', city => {
const layer = scene.PolygonLayer()
.source(city)
.color('unit_price',['#b2182b','#ef8a62','#fddbc7','#d1e5f0','#67a9cf','#2166ac'].reverse())
.shape('fill')
.active(false)
.style({
opacity: 1
})
.render()
const highlight = scene.LineLayer()
.source(city)
.color('#fff')
.filter('unit_price', (price)=> { return price > 40000})
.shape('line')
.size(4)
.render()
layer.on('click',(item)=>{
const { feature } = item;
highlight.filter('id',(id)=>{
return feature.properties.id === id;
}).render();
})
})
});
</script>
</body>
</html>