blob: c3f6bebd7ddc7ced490ee3524af63997e276419b [file] [log] [blame]
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Buildings - ECHARTS-GL</title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes"> <!-- Fullscreen Landscape on iOS -->
<link rel="stylesheet" href="../common/reset.css">
</head>
<body>
<div id="main"></div>
<script src="../common/echarts.min.js"></script>
<script src="../common/jquery.min.js"></script>
<script src="../common/echarts-gl.js"></script>
<script src="../data/buildings.json.js"></script>
<script src="../texture/woods.jpg.js"></script>
<script src="../texture/oakfloor2_basecolor.jpg.js"></script>
<script src="../texture/canyon.hdr.js"></script>
<script>
echarts.registerMap('buildings', buildingsGeoJSON);
var chart = echarts.init(document.getElementById('main'), null, {
devicePixelRatio: 1
});
var regions = buildingsGeoJSON.features.map(function (feature) {
return {
name: feature.properties.name,
height: Math.max(Math.sqrt(feature.properties.height), 0.1)
};
});
// console.profile('render');
chart.setOption({
series: [{
type: 'map3D',
map: 'buildings',
shading: 'realistic',
realisticMaterial: {
roughness: 0.6,
baseTexture: floorBaseColorTexture,
textureTiling: 40
},
postEffect: {
enable: true,
bloom: {
enable: false
},
SSAO: {
enable: true,
quality: 'low',
radius: 4,
intensity: 1.2
},
depthOfField: {
enable: true,
focalRange: 5,
fstop: 1,
blurRadius: 4,
quality: 'low'
}
},
groundPlane: {
show: true
},
light: {
main: {
intensity: 4,
shadow: true,
shadowQuality: 'high',
alpha: 30
},
ambient: {
intensity: 0
},
ambientCubemap: {
texture: canyonUrl,
exposure: 2,
diffuseIntensity: 1,
specularIntensity: 0.2
}
},
viewControl: {
distance: 50
},
itemStyle: {
areaColor: '#bbb'
// borderColor: '#222',
// borderWidth: 1
},
label: {
textStyle: {
color: 'white'
}
},
silent: true,
instancing: true,
boxWidth: 200,
boxHeight: 1,
data: regions
}]
});
// console.profileEnd('render');
window.onresize = chart.resize;
</script>
</body>
</html>