2018-10-30 11:22:18 +08:00
|
|
|
<!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">
|
2018-11-20 15:04:21 +08:00
|
|
|
<link rel="stylesheet" href="./assets/info.css">
|
2018-10-30 11:22:18 +08:00
|
|
|
<title>point_distribute</title>
|
|
|
|
<style>
|
2018-11-20 15:04:21 +08:00
|
|
|
body {
|
|
|
|
margin:0px;
|
|
|
|
}
|
2018-10-30 11:22:18 +08:00
|
|
|
#map { position:absolute; top:0; bottom:0; width:100%; }
|
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
<div id="map"></div>
|
2018-11-20 15:04:21 +08:00
|
|
|
<div class ='info'>
|
|
|
|
<div class="input-card" style='width: 12rem;'>
|
|
|
|
<div class="input-item">
|
|
|
|
<input type="radio" name='func' checked=true value=0><span class="input-text">全部</span>
|
|
|
|
<input type="radio" name='func' value=0><span class="input-text">可用车</span>
|
|
|
|
<input type="radio" name='func' value=1><span class="input-text">不可用</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2018-10-30 11:22:18 +08:00
|
|
|
<script src="https://webapi.amap.com/maps?v=1.4.8&key=15cd8a57710d40c9b7c0e3cc120f1200&plugin=Map3D"></script>
|
2018-11-16 16:52:25 +08:00
|
|
|
<script src="https://unpkg.com/supercluster@4.1.1/dist/supercluster.min.js"></script>
|
2018-10-30 11:22:18 +08:00
|
|
|
<script src="./assets/jquery-3.2.1.min.js"></script>
|
|
|
|
<script src="../build/L7.js"></script>
|
|
|
|
<script>
|
|
|
|
|
|
|
|
const scene = new L7.Scene({
|
|
|
|
id: 'map',
|
|
|
|
mapStyle: 'light', // 样式URL
|
|
|
|
center: [ 120.1243238, 30.27331571 ],
|
|
|
|
pitch: 0,
|
2018-11-03 16:39:22 +08:00
|
|
|
zoom: 14,
|
2018-11-01 14:31:14 +08:00
|
|
|
minZoom: 9
|
2018-10-30 11:22:18 +08:00
|
|
|
});
|
|
|
|
window.scene = scene;
|
2018-11-03 16:39:22 +08:00
|
|
|
scene.on('loaded', () => {
|
2018-11-20 15:04:21 +08:00
|
|
|
|
2018-11-03 16:39:22 +08:00
|
|
|
$.get('./data/pointbike.json', data => {
|
2018-11-16 16:52:25 +08:00
|
|
|
var extent = [ 110,29.2378,122.189,33.3173]
|
|
|
|
var dataindex = supercluster({radius:80});
|
|
|
|
dataindex.load(data.features);
|
|
|
|
|
|
|
|
var clusterData = dataindex.getClusters(extent,13);
|
2018-10-30 11:22:18 +08:00
|
|
|
scene.PointLayer({
|
2018-11-20 15:04:21 +08:00
|
|
|
zIndex: 4,
|
|
|
|
maxZoom:15.5
|
2018-10-30 11:22:18 +08:00
|
|
|
})
|
2018-11-16 16:52:25 +08:00
|
|
|
.source({
|
|
|
|
"type": "FeatureCollection",
|
|
|
|
"features":clusterData
|
|
|
|
})
|
2018-11-19 10:45:40 +08:00
|
|
|
.color('#6492E9')
|
2018-11-16 16:52:25 +08:00
|
|
|
.size('point_count',[1,30])
|
|
|
|
.shape('2d:circle')
|
|
|
|
.style({
|
|
|
|
opacity:0.8
|
|
|
|
})
|
|
|
|
.render();
|
2018-11-20 15:04:21 +08:00
|
|
|
|
|
|
|
// 自行车数据
|
|
|
|
scene.PointLayer({
|
|
|
|
zIndex: 4,
|
|
|
|
minZoom:15.5,
|
|
|
|
|
|
|
|
})
|
|
|
|
.source(data)
|
|
|
|
.color('power',(v)=>{
|
|
|
|
return v > 5 ? '#4F93EA' :'#F5684A'
|
|
|
|
})
|
|
|
|
.active({fill:'#91C25B'})
|
|
|
|
.size(8)
|
|
|
|
.shape('2d:circle')
|
|
|
|
.style({
|
2018-11-20 20:07:22 +08:00
|
|
|
opacity:0.7
|
2018-11-20 15:04:21 +08:00
|
|
|
})
|
|
|
|
.render();
|
|
|
|
|
2018-11-01 14:31:14 +08:00
|
|
|
});
|
2018-11-20 15:04:21 +08:00
|
|
|
|
2018-11-01 14:31:14 +08:00
|
|
|
$.get('./data/fence.json', data => {
|
2018-11-16 16:52:25 +08:00
|
|
|
scene.LineLayer({
|
|
|
|
zIndex: 5
|
2018-10-30 11:22:18 +08:00
|
|
|
})
|
2018-11-06 11:27:16 +08:00
|
|
|
.source(data)
|
2018-11-19 10:45:40 +08:00
|
|
|
.shape('line')
|
2018-11-16 16:52:25 +08:00
|
|
|
.size([2,0])
|
|
|
|
.color('#2F54EB')
|
2018-11-01 14:31:14 +08:00
|
|
|
.style({
|
2018-11-16 16:52:25 +08:00
|
|
|
opacity:1.0,
|
2018-11-03 16:39:22 +08:00
|
|
|
})
|
|
|
|
.render();
|
2018-11-16 16:52:25 +08:00
|
|
|
scene.PolygonLayer({
|
|
|
|
zIndex: 0
|
|
|
|
})
|
|
|
|
.source(data)
|
|
|
|
.shape('fill')
|
|
|
|
.size([2,0])
|
|
|
|
.color('#2F54EB')
|
|
|
|
.style({
|
|
|
|
opacity:0.05,
|
|
|
|
})
|
|
|
|
.render();
|
2018-11-03 16:39:22 +08:00
|
|
|
});
|
2018-11-16 16:52:25 +08:00
|
|
|
|
|
|
|
|
2018-11-03 16:39:22 +08:00
|
|
|
$.getJSON('./data/pointZone.json', data => {
|
2018-11-16 16:52:25 +08:00
|
|
|
const fenceLayer = scene.LineLayer({
|
|
|
|
zIndex: 1,
|
|
|
|
minZoom:16,
|
2018-11-03 16:39:22 +08:00
|
|
|
})
|
2018-11-16 16:52:25 +08:00
|
|
|
.source(data)
|
|
|
|
.size([1.5,0])
|
2018-11-20 15:04:21 +08:00
|
|
|
.shape('line')
|
2018-11-16 16:52:25 +08:00
|
|
|
.color("#2F54EB")
|
2018-11-20 15:04:21 +08:00
|
|
|
.style({
|
2018-11-16 16:52:25 +08:00
|
|
|
opacity:1.0,
|
2018-11-01 14:31:14 +08:00
|
|
|
})
|
2018-10-30 11:22:18 +08:00
|
|
|
.render();
|
2018-11-16 16:52:25 +08:00
|
|
|
|
2018-10-30 11:22:18 +08:00
|
|
|
});
|
2019-01-24 16:26:47 +08:00
|
|
|
|
|
|
|
scene.on('zoomchange',(e)=>{
|
|
|
|
console.log(e);
|
|
|
|
})
|
2018-11-06 11:27:16 +08:00
|
|
|
|
2018-10-30 11:22:18 +08:00
|
|
|
});
|
|
|
|
|
2018-11-16 16:52:25 +08:00
|
|
|
|
2018-10-30 11:22:18 +08:00
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
|