mirror of https://gitee.com/antv-l7/antv-l7
112 lines
3.7 KiB
HTML
112 lines
3.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<link rel="stylesheet" href="https://gw.alipayobjects.com/os/rmsportal/PqLCOJpqoOUfuPRacUzE.css" />
|
|
<title>气泡图</title>
|
|
<style> ::-webkit-scrollbar{display:none;}html,body{overflow:hidden;margin:0;}
|
|
#map { position:absolute; top:0; bottom:0; width:100%; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="map"></div>
|
|
<script>/*Fixing iframe window.innerHeight 0 issue in Safari*/ document.body.clientHeight; </script>
|
|
<script src="https://webapi.amap.com/maps?v=1.4.8&key=15cd8a57710d40c9b7c0e3cc120f1200&plugin=Map3D"></script>
|
|
<script src="https://gw.alipayobjects.com/os/antv/assets/lib/jquery-3.2.1.min.js"></script>
|
|
<script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.g2-3.5.1/dist/g2.min.js"></script>
|
|
<script src="../build/l7.js"></script>
|
|
<style>
|
|
#map { position:absolute; top:0; bottom:0; width:100%; }
|
|
</style>
|
|
<script>
|
|
G2.Global.renderer = 'svg'
|
|
var scene = new L7.Scene({
|
|
id: 'map',
|
|
mapStyle: 'light', // 样式URL
|
|
center: [120.19382669582967, 30.258134],
|
|
pitch: 0,
|
|
minZoom:5,
|
|
maxZoom:15,
|
|
zoom: 3
|
|
});
|
|
window.scene = scene;
|
|
scene.on('loaded', function() {
|
|
$.getJSON('https://gw.alipayobjects.com/os/rmsportal/UpapMomPYUeiBjbHNAma.json', region => {
|
|
const color = [ 'rgb(22,32,101)', 'rgb(28,43,127)', 'rgb(36,68,142)', 'rgb(45,94,158)', 'rgb(53,119,174)', 'rgb(61,145,190)', 'rgb(70,170,206)', 'rgb(98,190,210)', 'rgb(138,205,206)', 'rgb(179,221,204)', 'rgb(220,236,201)' ];
|
|
var points = region.features.map((feature)=>{
|
|
return feature.properties;
|
|
})
|
|
|
|
const layer = scene.PolygonLayer({
|
|
zIndex:1,
|
|
})
|
|
.source(region)
|
|
.color('cname',(value)=>{
|
|
return (value =='中国' ? 'rgba(46,149,169,0.45)': 'rgba(227,244,244,0.1)');
|
|
})
|
|
.shape('fill')
|
|
.render();
|
|
});
|
|
$.getJSON('https://gw.alipayobjects.com/os/basement_prod/0b96cca4-7e83-449a-93d0-2a77053e74ab.json', function(data) {
|
|
console.log(data);
|
|
data.nodes.forEach(item=>{
|
|
const el = document.createElement('div');
|
|
const total = item.gdp.Agriculture + item.gdp.Industry + item.gdp.Service;
|
|
|
|
const size =Math.max(Math.min(parseInt(total / 20000), 150),40)
|
|
var data = [{
|
|
item: 'Agriculture',
|
|
count: item.gdp.Agriculture,
|
|
percent: item.gdp.Agriculture / total
|
|
}, {
|
|
item: 'Industry',
|
|
count: item.gdp.Industry,
|
|
percent: item.gdp.Industry / total
|
|
}, {
|
|
item: 'Service',
|
|
count: item.gdp.Service,
|
|
percent: item.gdp.Service / total
|
|
}];
|
|
var chart = new G2.Chart({
|
|
container: el,
|
|
width:size,
|
|
height:size,
|
|
render:'svg',
|
|
padding:5,
|
|
});
|
|
chart.source(data, {
|
|
percent: {
|
|
formatter: function formatter(val) {
|
|
val = val * 100 + '%';
|
|
return val;
|
|
}
|
|
}
|
|
});
|
|
chart.coord('theta', {
|
|
radius: 1.0
|
|
});
|
|
chart.legend(false);
|
|
chart.tooltip(false);
|
|
chart.intervalStack().position('percent').color('item').style({
|
|
lineWidth: 1,
|
|
stroke: '#fff'
|
|
});
|
|
chart.render();
|
|
const popup = new L7.Popup({anchor:'left'}).setText(item.name);
|
|
const marker = new L7.Marker({color:'blue', element:el})
|
|
.setLnglat( item.coordinates)
|
|
.setPopup(popup)
|
|
.addTo(scene);
|
|
|
|
|
|
})
|
|
|
|
})
|
|
});
|
|
|
|
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|