| /* |
| title: Mapbox 视角切换 |
| category: bar3D |
| titleCN: Mapbox 视角切换 |
| */ |
| |
| mapboxgl.accessToken = mapboxglToken; |
| |
| |
| $.getJSON(ROOT_PATH + '/data-gl/asset/data/population.json', function (data) { |
| |
| data = data.filter(function (dataItem) { |
| return dataItem[2] > 0; |
| }).map(function (dataItem) { |
| return [dataItem[0], dataItem[1], dataItem[2]]; |
| }); |
| |
| myChart.setOption({ |
| title: { |
| text: '空格键切换视角', |
| left: 'center' |
| }, |
| visualMap: { |
| show: false, |
| max: 1000, |
| calculable: true, |
| realtime: false, |
| inRange: { |
| color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] |
| }, |
| outOfRange: { |
| colorAlpha: 0 |
| } |
| }, |
| mapbox: { |
| center: [104.114129, 37.550339], |
| zoom: 3, |
| pitch: 50, |
| bearing: -10, |
| style: 'mapbox://styles/mapbox/light-v9', |
| boxHeight: 20, |
| // altitudeScale: 3e2, |
| postEffect: { |
| enable: true, |
| SSAO: { |
| enable: true, |
| radius: 2 |
| } |
| }, |
| light: { |
| main: { |
| intensity: 2, |
| shadow: true, |
| shadowQuality: 'high' |
| }, |
| ambient: { |
| intensity: 0. |
| }, |
| ambientCubemap: { |
| texture: ROOT_PATH + '/data-gl/asset/canyon.hdr', |
| exposure: 2, |
| diffuseIntensity: 0.5 |
| } |
| } |
| }, |
| series: [{ |
| type: 'bar3D', |
| coordinateSystem: 'mapbox', |
| shading: 'lambert', |
| minHeight: 0.1, |
| barSize: 0.3, |
| data: data, |
| silent: true |
| }] |
| }); |
| |
| function top() { |
| myChart.setOption({ |
| mapbox: { |
| pitch: 0, |
| bearing: 0, |
| boxHeight: 0 |
| } |
| }); |
| } |
| |
| function perspective() { |
| myChart.setOption({ |
| mapbox: { |
| pitch: 50, |
| bearing: -10, |
| boxHeight: 20, |
| } |
| }); |
| } |
| |
| var isPerspective = true; |
| window.addEventListener('keydown', function (e) { |
| if (e.keyCode === 32) { |
| isPerspective ? top() : perspective(); |
| isPerspective = !isPerspective; |
| } |
| }) |
| }); |