<!doctype html> <html> <head> <meta charset="utf-8"> <title>Geo3D - 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.css"> </head> <body> <div id="main"></div> <script src="../node_modules/echarts/dist/echarts.js"></script> <script src="../dist/echarts-gl.js"></script> <script src="lib/jquery.min.js"></script> <script src="lib/dat.gui.js"></script> <script src="js/commonUI.js"></script> <script> var chart = echarts.init(document.getElementById('main')); chart.showLoading(); $.getJSON('data/buildings.json', function (buildingsGeoJSON) { chart.hideLoading(); echarts.registerMap('buildings', buildingsGeoJSON); var regions = buildingsGeoJSON.features.map(function (feature) { return { name: feature.properties.name, value: Math.random(), height: Math.max(Math.sqrt(feature.properties.height), 0.1) }; }); chart.setOption({ series: [{ type: 'map3D', map: 'buildings', shading: 'hatching', environment: '#fff', hatchingMaterial: { hatchingTextures: [ 'asset/tam/hatch_0.jpg', 'asset/tam/hatch_1.jpg', 'asset/tam/hatch_2.jpg', 'asset/tam/hatch_3.jpg', 'asset/tam/hatch_4.jpg', 'asset/tam/hatch_5.jpg' ], textureTiling: [40, 20] }, postEffect: { enable: true, screenSpaceAmbientOcclusion: { enable: true, radius: 8, intensity: 1.2 }, edge: { enable: true } }, groundPlane: { show: false }, light: { main: { intensity: 1, shadow: true, shadowQuality: 'high', alpha: 30 }, ambient: { intensity: 0 }, ambientCubemap: { texture: 'asset/canyon.hdr', exposure: 0, diffuseIntensity: 0.1 } }, viewControl: { alpha: 80, distance: 100, minBeta: -Infinity, maxBeta: Infinity }, itemStyle: { color: '#000' }, silent: true, boxWidth: 200, regionHeight: 1, data: regions }] }); var config = { color: '#000' }; var gui = new dat.GUI(); gui.addColor(config, 'color').onFinishChange(function () { chart.setOption({ series: [{ itemStyle: { color: config.color }, postEffect: { edge: { color: config.color } } }] }) }); }); window.addEventListener('resize', function () { chart.resize(); }); </script> </body> </html>