| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <script src="https://unpkg.com/d3-array@3"></script> |
| <script src="https://unpkg.com/d3-geo@3/dist/d3-geo.js"></script> |
| |
| <script src="lib/simpleRequire.js"></script> |
| <script src="lib/config.js"></script> |
| <script src="lib/jquery.min.js"></script> |
| <script src="lib/facePrint.js"></script> |
| <script src="lib/testHelper.js"></script> |
| <!-- <script src="ut/lib/canteen.js"></script> --> |
| <link rel="stylesheet" href="lib/reset.css" /> |
| </head> |
| <body> |
| <div id="main0"></div> |
| <div id="main1"></div> |
| <div id="main2"></div> |
| <div id="main3"></div> |
| |
| |
| |
| |
| |
| |
| <script> |
| require([ |
| 'echarts', |
| 'map/json/china-new.json' |
| ], function (echarts, chinaJson) { |
| echarts.registerMap('china', chinaJson) |
| |
| option = { |
| series: { |
| type: 'map', |
| map: 'china', |
| itemStyle: { |
| areaColor: '#eee', |
| borderColor: '#000' |
| }, |
| projection: { |
| project: (point) => [point[0] / 180 * Math.PI, -Math.log(Math.tan((Math.PI / 2 + point[1] / 180 * Math.PI) / 2))], |
| unproject: (point) => [point[0] * 180 / Math.PI, 2 * 180 / Math.PI * Math.atan(Math.exp(point[1])) - 90] |
| } |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main0', { |
| title: [ |
| 'China with Mercator projection' |
| ], |
| height: 500, |
| option: option |
| }); |
| }); |
| </script> |
| |
| <script> |
| require([ |
| 'echarts', |
| './data/map/json/world.json' |
| ], function (echarts, worldJson) { |
| echarts.registerMap('world', worldJson) |
| |
| const projection = d3.geoProjection((x, y) => ([x, y / 0.75])) |
| .rotate([-115, 0]); |
| |
| option = { |
| series: { |
| type: 'map', |
| map: 'world', |
| top: 0, |
| bottom: 0, |
| itemStyle: { |
| areaColor: '#eee', |
| borderColor: '#000' |
| }, |
| projection: { |
| project: (pt) => { |
| return projection(pt) |
| }, |
| unproject: (pt) => projection.invert(pt), |
| stream: projection.stream |
| } |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main1', { |
| title: [ |
| 'Move China to Center' |
| ], |
| height: 500, |
| option: option |
| }); |
| }); |
| </script> |
| |
| <script> |
| |
| require([ |
| 'echarts', |
| './data/map/json/world.json' |
| ], function (echarts, worldJson) { |
| |
| echarts.registerMap('world', worldJson); |
| const projection = d3.geoConicEqualArea(); |
| |
| var latlong = {}; |
| { |
| latlong['AD'] = {'latitude':42.5, 'longitude':1.5}; |
| latlong['AE'] = {'latitude':24, 'longitude':54}; |
| latlong['AF'] = {'latitude':33, 'longitude':65}; |
| latlong['AG'] = {'latitude':17.05, 'longitude':-61.8}; |
| latlong['AI'] = {'latitude':18.25, 'longitude':-63.1667}; |
| latlong['AL'] = {'latitude':41, 'longitude':20}; |
| latlong['AM'] = {'latitude':40, 'longitude':45}; |
| latlong['AN'] = {'latitude':12.25, 'longitude':-68.75}; |
| latlong['AO'] = {'latitude':-12.5, 'longitude':18.5}; |
| latlong['AP'] = {'latitude':35, 'longitude':105}; |
| latlong['AQ'] = {'latitude':-90, 'longitude':0}; |
| latlong['AR'] = {'latitude':-34, 'longitude':-64}; |
| latlong['AS'] = {'latitude':-14.3333, 'longitude':-170}; |
| latlong['AT'] = {'latitude':47.3333, 'longitude':13.3333}; |
| latlong['AU'] = {'latitude':-27, 'longitude':133}; |
| latlong['AW'] = {'latitude':12.5, 'longitude':-69.9667}; |
| latlong['AZ'] = {'latitude':40.5, 'longitude':47.5}; |
| latlong['BA'] = {'latitude':44, 'longitude':18}; |
| latlong['BB'] = {'latitude':13.1667, 'longitude':-59.5333}; |
| latlong['BD'] = {'latitude':24, 'longitude':90}; |
| latlong['BE'] = {'latitude':50.8333, 'longitude':4}; |
| latlong['BF'] = {'latitude':13, 'longitude':-2}; |
| latlong['BG'] = {'latitude':43, 'longitude':25}; |
| latlong['BH'] = {'latitude':26, 'longitude':50.55}; |
| latlong['BI'] = {'latitude':-3.5, 'longitude':30}; |
| latlong['BJ'] = {'latitude':9.5, 'longitude':2.25}; |
| latlong['BM'] = {'latitude':32.3333, 'longitude':-64.75}; |
| latlong['BN'] = {'latitude':4.5, 'longitude':114.6667}; |
| latlong['BO'] = {'latitude':-17, 'longitude':-65}; |
| latlong['BR'] = {'latitude':-10, 'longitude':-55}; |
| latlong['BS'] = {'latitude':24.25, 'longitude':-76}; |
| latlong['BT'] = {'latitude':27.5, 'longitude':90.5}; |
| latlong['BV'] = {'latitude':-54.4333, 'longitude':3.4}; |
| latlong['BW'] = {'latitude':-22, 'longitude':24}; |
| latlong['BY'] = {'latitude':53, 'longitude':28}; |
| latlong['BZ'] = {'latitude':17.25, 'longitude':-88.75}; |
| latlong['CA'] = {'latitude':54, 'longitude':-100}; |
| latlong['CC'] = {'latitude':-12.5, 'longitude':96.8333}; |
| latlong['CD'] = {'latitude':0, 'longitude':25}; |
| latlong['CF'] = {'latitude':7, 'longitude':21}; |
| latlong['CG'] = {'latitude':-1, 'longitude':15}; |
| latlong['CH'] = {'latitude':47, 'longitude':8}; |
| latlong['CI'] = {'latitude':8, 'longitude':-5}; |
| latlong['CK'] = {'latitude':-21.2333, 'longitude':-159.7667}; |
| latlong['CL'] = {'latitude':-30, 'longitude':-71}; |
| latlong['CM'] = {'latitude':6, 'longitude':12}; |
| latlong['CN'] = {'latitude':35, 'longitude':105}; |
| latlong['CO'] = {'latitude':4, 'longitude':-72}; |
| latlong['CR'] = {'latitude':10, 'longitude':-84}; |
| latlong['CU'] = {'latitude':21.5, 'longitude':-80}; |
| latlong['CV'] = {'latitude':16, 'longitude':-24}; |
| latlong['CX'] = {'latitude':-10.5, 'longitude':105.6667}; |
| latlong['CY'] = {'latitude':35, 'longitude':33}; |
| latlong['CZ'] = {'latitude':49.75, 'longitude':15.5}; |
| latlong['DE'] = {'latitude':51, 'longitude':9}; |
| latlong['DJ'] = {'latitude':11.5, 'longitude':43}; |
| latlong['DK'] = {'latitude':56, 'longitude':10}; |
| latlong['DM'] = {'latitude':15.4167, 'longitude':-61.3333}; |
| latlong['DO'] = {'latitude':19, 'longitude':-70.6667}; |
| latlong['DZ'] = {'latitude':28, 'longitude':3}; |
| latlong['EC'] = {'latitude':-2, 'longitude':-77.5}; |
| latlong['EE'] = {'latitude':59, 'longitude':26}; |
| latlong['EG'] = {'latitude':27, 'longitude':30}; |
| latlong['EH'] = {'latitude':24.5, 'longitude':-13}; |
| latlong['ER'] = {'latitude':15, 'longitude':39}; |
| latlong['ES'] = {'latitude':40, 'longitude':-4}; |
| latlong['ET'] = {'latitude':8, 'longitude':38}; |
| latlong['EU'] = {'latitude':47, 'longitude':8}; |
| latlong['FI'] = {'latitude':62, 'longitude':26}; |
| latlong['FJ'] = {'latitude':-18, 'longitude':175}; |
| latlong['FK'] = {'latitude':-51.75, 'longitude':-59}; |
| latlong['FM'] = {'latitude':6.9167, 'longitude':158.25}; |
| latlong['FO'] = {'latitude':62, 'longitude':-7}; |
| latlong['FR'] = {'latitude':46, 'longitude':2}; |
| latlong['GA'] = {'latitude':-1, 'longitude':11.75}; |
| latlong['GB'] = {'latitude':54, 'longitude':-2}; |
| latlong['GD'] = {'latitude':12.1167, 'longitude':-61.6667}; |
| latlong['GE'] = {'latitude':42, 'longitude':43.5}; |
| latlong['GF'] = {'latitude':4, 'longitude':-53}; |
| latlong['GH'] = {'latitude':8, 'longitude':-2}; |
| latlong['GI'] = {'latitude':36.1833, 'longitude':-5.3667}; |
| latlong['GL'] = {'latitude':72, 'longitude':-40}; |
| latlong['GM'] = {'latitude':13.4667, 'longitude':-16.5667}; |
| latlong['GN'] = {'latitude':11, 'longitude':-10}; |
| latlong['GP'] = {'latitude':16.25, 'longitude':-61.5833}; |
| latlong['GQ'] = {'latitude':2, 'longitude':10}; |
| latlong['GR'] = {'latitude':39, 'longitude':22}; |
| latlong['GS'] = {'latitude':-54.5, 'longitude':-37}; |
| latlong['GT'] = {'latitude':15.5, 'longitude':-90.25}; |
| latlong['GU'] = {'latitude':13.4667, 'longitude':144.7833}; |
| latlong['GW'] = {'latitude':12, 'longitude':-15}; |
| latlong['GY'] = {'latitude':5, 'longitude':-59}; |
| latlong['HK'] = {'latitude':22.25, 'longitude':114.1667}; |
| latlong['HM'] = {'latitude':-53.1, 'longitude':72.5167}; |
| latlong['HN'] = {'latitude':15, 'longitude':-86.5}; |
| latlong['HR'] = {'latitude':45.1667, 'longitude':15.5}; |
| latlong['HT'] = {'latitude':19, 'longitude':-72.4167}; |
| latlong['HU'] = {'latitude':47, 'longitude':20}; |
| latlong['ID'] = {'latitude':-5, 'longitude':120}; |
| latlong['IE'] = {'latitude':53, 'longitude':-8}; |
| latlong['IL'] = {'latitude':31.5, 'longitude':34.75}; |
| latlong['IN'] = {'latitude':20, 'longitude':77}; |
| latlong['IO'] = {'latitude':-6, 'longitude':71.5}; |
| latlong['IQ'] = {'latitude':33, 'longitude':44}; |
| latlong['IR'] = {'latitude':32, 'longitude':53}; |
| latlong['IS'] = {'latitude':65, 'longitude':-18}; |
| latlong['IT'] = {'latitude':42.8333, 'longitude':12.8333}; |
| latlong['JM'] = {'latitude':18.25, 'longitude':-77.5}; |
| latlong['JO'] = {'latitude':31, 'longitude':36}; |
| latlong['JP'] = {'latitude':36, 'longitude':138}; |
| latlong['KE'] = {'latitude':1, 'longitude':38}; |
| latlong['KG'] = {'latitude':41, 'longitude':75}; |
| latlong['KH'] = {'latitude':13, 'longitude':105}; |
| latlong['KI'] = {'latitude':1.4167, 'longitude':173}; |
| latlong['KM'] = {'latitude':-12.1667, 'longitude':44.25}; |
| latlong['KN'] = {'latitude':17.3333, 'longitude':-62.75}; |
| latlong['KP'] = {'latitude':40, 'longitude':127}; |
| latlong['KR'] = {'latitude':37, 'longitude':127.5}; |
| latlong['KW'] = {'latitude':29.3375, 'longitude':47.6581}; |
| latlong['KY'] = {'latitude':19.5, 'longitude':-80.5}; |
| latlong['KZ'] = {'latitude':48, 'longitude':68}; |
| latlong['LA'] = {'latitude':18, 'longitude':105}; |
| latlong['LB'] = {'latitude':33.8333, 'longitude':35.8333}; |
| latlong['LC'] = {'latitude':13.8833, 'longitude':-61.1333}; |
| latlong['LI'] = {'latitude':47.1667, 'longitude':9.5333}; |
| latlong['LK'] = {'latitude':7, 'longitude':81}; |
| latlong['LR'] = {'latitude':6.5, 'longitude':-9.5}; |
| latlong['LS'] = {'latitude':-29.5, 'longitude':28.5}; |
| latlong['LT'] = {'latitude':55, 'longitude':24}; |
| latlong['LU'] = {'latitude':49.75, 'longitude':6}; |
| latlong['LV'] = {'latitude':57, 'longitude':25}; |
| latlong['LY'] = {'latitude':25, 'longitude':17}; |
| latlong['MA'] = {'latitude':32, 'longitude':-5}; |
| latlong['MC'] = {'latitude':43.7333, 'longitude':7.4}; |
| latlong['MD'] = {'latitude':47, 'longitude':29}; |
| latlong['ME'] = {'latitude':42.5, 'longitude':19.4}; |
| latlong['MG'] = {'latitude':-20, 'longitude':47}; |
| latlong['MH'] = {'latitude':9, 'longitude':168}; |
| latlong['MK'] = {'latitude':41.8333, 'longitude':22}; |
| latlong['ML'] = {'latitude':17, 'longitude':-4}; |
| latlong['MM'] = {'latitude':22, 'longitude':98}; |
| latlong['MN'] = {'latitude':46, 'longitude':105}; |
| latlong['MO'] = {'latitude':22.1667, 'longitude':113.55}; |
| latlong['MP'] = {'latitude':15.2, 'longitude':145.75}; |
| latlong['MQ'] = {'latitude':14.6667, 'longitude':-61}; |
| latlong['MR'] = {'latitude':20, 'longitude':-12}; |
| latlong['MS'] = {'latitude':16.75, 'longitude':-62.2}; |
| latlong['MT'] = {'latitude':35.8333, 'longitude':14.5833}; |
| latlong['MU'] = {'latitude':-20.2833, 'longitude':57.55}; |
| latlong['MV'] = {'latitude':3.25, 'longitude':73}; |
| latlong['MW'] = {'latitude':-13.5, 'longitude':34}; |
| latlong['MX'] = {'latitude':23, 'longitude':-102}; |
| latlong['MY'] = {'latitude':2.5, 'longitude':112.5}; |
| latlong['MZ'] = {'latitude':-18.25, 'longitude':35}; |
| latlong['NA'] = {'latitude':-22, 'longitude':17}; |
| latlong['NC'] = {'latitude':-21.5, 'longitude':165.5}; |
| latlong['NE'] = {'latitude':16, 'longitude':8}; |
| latlong['NF'] = {'latitude':-29.0333, 'longitude':167.95}; |
| latlong['NG'] = {'latitude':10, 'longitude':8}; |
| latlong['NI'] = {'latitude':13, 'longitude':-85}; |
| latlong['NL'] = {'latitude':52.5, 'longitude':5.75}; |
| latlong['NO'] = {'latitude':62, 'longitude':10}; |
| latlong['NP'] = {'latitude':28, 'longitude':84}; |
| latlong['NR'] = {'latitude':-0.5333, 'longitude':166.9167}; |
| latlong['NU'] = {'latitude':-19.0333, 'longitude':-169.8667}; |
| latlong['NZ'] = {'latitude':-41, 'longitude':174}; |
| latlong['OM'] = {'latitude':21, 'longitude':57}; |
| latlong['PA'] = {'latitude':9, 'longitude':-80}; |
| latlong['PE'] = {'latitude':-10, 'longitude':-76}; |
| latlong['PF'] = {'latitude':-15, 'longitude':-140}; |
| latlong['PG'] = {'latitude':-6, 'longitude':147}; |
| latlong['PH'] = {'latitude':13, 'longitude':122}; |
| latlong['PK'] = {'latitude':30, 'longitude':70}; |
| latlong['PL'] = {'latitude':52, 'longitude':20}; |
| latlong['PM'] = {'latitude':46.8333, 'longitude':-56.3333}; |
| latlong['PR'] = {'latitude':18.25, 'longitude':-66.5}; |
| latlong['PS'] = {'latitude':32, 'longitude':35.25}; |
| latlong['PT'] = {'latitude':39.5, 'longitude':-8}; |
| latlong['PW'] = {'latitude':7.5, 'longitude':134.5}; |
| latlong['PY'] = {'latitude':-23, 'longitude':-58}; |
| latlong['QA'] = {'latitude':25.5, 'longitude':51.25}; |
| latlong['RE'] = {'latitude':-21.1, 'longitude':55.6}; |
| latlong['RO'] = {'latitude':46, 'longitude':25}; |
| latlong['RS'] = {'latitude':44, 'longitude':21}; |
| latlong['RU'] = {'latitude':60, 'longitude':100}; |
| latlong['RW'] = {'latitude':-2, 'longitude':30}; |
| latlong['SA'] = {'latitude':25, 'longitude':45}; |
| latlong['SB'] = {'latitude':-8, 'longitude':159}; |
| latlong['SC'] = {'latitude':-4.5833, 'longitude':55.6667}; |
| latlong['SD'] = {'latitude':15, 'longitude':30}; |
| latlong['SE'] = {'latitude':62, 'longitude':15}; |
| latlong['SG'] = {'latitude':1.3667, 'longitude':103.8}; |
| latlong['SH'] = {'latitude':-15.9333, 'longitude':-5.7}; |
| latlong['SI'] = {'latitude':46, 'longitude':15}; |
| latlong['SJ'] = {'latitude':78, 'longitude':20}; |
| latlong['SK'] = {'latitude':48.6667, 'longitude':19.5}; |
| latlong['SL'] = {'latitude':8.5, 'longitude':-11.5}; |
| latlong['SM'] = {'latitude':43.7667, 'longitude':12.4167}; |
| latlong['SN'] = {'latitude':14, 'longitude':-14}; |
| latlong['SO'] = {'latitude':10, 'longitude':49}; |
| latlong['SR'] = {'latitude':4, 'longitude':-56}; |
| latlong['ST'] = {'latitude':1, 'longitude':7}; |
| latlong['SV'] = {'latitude':13.8333, 'longitude':-88.9167}; |
| latlong['SY'] = {'latitude':35, 'longitude':38}; |
| latlong['SZ'] = {'latitude':-26.5, 'longitude':31.5}; |
| latlong['TC'] = {'latitude':21.75, 'longitude':-71.5833}; |
| latlong['TD'] = {'latitude':15, 'longitude':19}; |
| latlong['TF'] = {'latitude':-43, 'longitude':67}; |
| latlong['TG'] = {'latitude':8, 'longitude':1.1667}; |
| latlong['TH'] = {'latitude':15, 'longitude':100}; |
| latlong['TJ'] = {'latitude':39, 'longitude':71}; |
| latlong['TK'] = {'latitude':-9, 'longitude':-172}; |
| latlong['TM'] = {'latitude':40, 'longitude':60}; |
| latlong['TN'] = {'latitude':34, 'longitude':9}; |
| latlong['TO'] = {'latitude':-20, 'longitude':-175}; |
| latlong['TR'] = {'latitude':39, 'longitude':35}; |
| latlong['TT'] = {'latitude':11, 'longitude':-61}; |
| latlong['TV'] = {'latitude':-8, 'longitude':178}; |
| latlong['TW'] = {'latitude':23.5, 'longitude':121}; |
| latlong['TZ'] = {'latitude':-6, 'longitude':35}; |
| latlong['UA'] = {'latitude':49, 'longitude':32}; |
| latlong['UG'] = {'latitude':1, 'longitude':32}; |
| latlong['UM'] = {'latitude':19.2833, 'longitude':166.6}; |
| latlong['US'] = {'latitude':38, 'longitude':-97}; |
| latlong['UY'] = {'latitude':-33, 'longitude':-56}; |
| latlong['UZ'] = {'latitude':41, 'longitude':64}; |
| latlong['VA'] = {'latitude':41.9, 'longitude':12.45}; |
| latlong['VC'] = {'latitude':13.25, 'longitude':-61.2}; |
| latlong['VE'] = {'latitude':8, 'longitude':-66}; |
| latlong['VG'] = {'latitude':18.5, 'longitude':-64.5}; |
| latlong['VI'] = {'latitude':18.3333, 'longitude':-64.8333}; |
| latlong['VN'] = {'latitude':16, 'longitude':106}; |
| latlong['VU'] = {'latitude':-16, 'longitude':167}; |
| latlong['WF'] = {'latitude':-13.3, 'longitude':-176.2}; |
| latlong['WS'] = {'latitude':-13.5833, 'longitude':-172.3333}; |
| latlong['YE'] = {'latitude':15, 'longitude':48}; |
| latlong['YT'] = {'latitude':-12.8333, 'longitude':45.1667}; |
| latlong['ZA'] = {'latitude':-29, 'longitude':24}; |
| latlong['ZM'] = {'latitude':-15, 'longitude':30}; |
| latlong['ZW'] = {'latitude':-20, 'longitude':30}; |
| |
| var mapData = [ |
| {'code':'AF' , 'name':'Afghanistan', 'value':32358260, 'color':'#eea638'}, |
| {'code':'AL' , 'name':'Albania', 'value':3215988, 'color':'#d8854f'}, |
| {'code':'DZ' , 'name':'Algeria', 'value':35980193, 'color':'#de4c4f'}, |
| {'code':'AO' , 'name':'Angola', 'value':19618432, 'color':'#de4c4f'}, |
| {'code':'AR' , 'name':'Argentina', 'value':40764561, 'color':'#86a965'}, |
| {'code':'AM' , 'name':'Armenia', 'value':3100236, 'color':'#d8854f'}, |
| {'code':'AU' , 'name':'Australia', 'value':22605732, 'color':'#8aabb0'}, |
| {'code':'AT' , 'name':'Austria', 'value':8413429, 'color':'#d8854f'}, |
| {'code':'AZ' , 'name':'Azerbaijan', 'value':9306023, 'color':'#d8854f'}, |
| {'code':'BH' , 'name':'Bahrain', 'value':1323535, 'color':'#eea638'}, |
| {'code':'BD' , 'name':'Bangladesh', 'value':150493658, 'color':'#eea638'}, |
| {'code':'BY' , 'name':'Belarus', 'value':9559441, 'color':'#d8854f'}, |
| {'code':'BE' , 'name':'Belgium', 'value':10754056, 'color':'#d8854f'}, |
| {'code':'BJ' , 'name':'Benin', 'value':9099922, 'color':'#de4c4f'}, |
| {'code':'BT' , 'name':'Bhutan', 'value':738267, 'color':'#eea638'}, |
| {'code':'BO' , 'name':'Bolivia', 'value':10088108, 'color':'#86a965'}, |
| {'code':'BA' , 'name':'Bosnia and Herzegovina', 'value':3752228, 'color':'#d8854f'}, |
| {'code':'BW' , 'name':'Botswana', 'value':2030738, 'color':'#de4c4f'}, |
| {'code':'BR' , 'name':'Brazil', 'value':196655014, 'color':'#86a965'}, |
| {'code':'BN' , 'name':'Brunei', 'value':405938, 'color':'#eea638'}, |
| {'code':'BG' , 'name':'Bulgaria', 'value':7446135, 'color':'#d8854f'}, |
| {'code':'BF' , 'name':'Burkina Faso', 'value':16967845, 'color':'#de4c4f'}, |
| {'code':'BI' , 'name':'Burundi', 'value':8575172, 'color':'#de4c4f'}, |
| {'code':'KH' , 'name':'Cambodia', 'value':14305183, 'color':'#eea638'}, |
| {'code':'CM' , 'name':'Cameroon', 'value':20030362, 'color':'#de4c4f'}, |
| {'code':'CA' , 'name':'Canada', 'value':34349561, 'color':'#a7a737'}, |
| {'code':'CV' , 'name':'Cape Verde', 'value':500585, 'color':'#de4c4f'}, |
| {'code':'CF' , 'name':'Central African Rep.', 'value':4486837, 'color':'#de4c4f'}, |
| {'code':'TD' , 'name':'Chad', 'value':11525496, 'color':'#de4c4f'}, |
| {'code':'CL' , 'name':'Chile', 'value':17269525, 'color':'#86a965'}, |
| {'code':'CN' , 'name':'China', 'value':1347565324, 'color':'#eea638'}, |
| {'code':'CO' , 'name':'Colombia', 'value':46927125, 'color':'#86a965'}, |
| {'code':'KM' , 'name':'Comoros', 'value':753943, 'color':'#de4c4f'}, |
| {'code':'CD' , 'name':'Congo, Dem. Rep.', 'value':67757577, 'color':'#de4c4f'}, |
| {'code':'CG' , 'name':'Congo, Rep.', 'value':4139748, 'color':'#de4c4f'}, |
| {'code':'CR' , 'name':'Costa Rica', 'value':4726575, 'color':'#a7a737'}, |
| {'code':'CI' , 'name':'Cote d\'Ivoire', 'value':20152894, 'color':'#de4c4f'}, |
| {'code':'HR' , 'name':'Croatia', 'value':4395560, 'color':'#d8854f'}, |
| {'code':'CU' , 'name':'Cuba', 'value':11253665, 'color':'#a7a737'}, |
| {'code':'CY' , 'name':'Cyprus', 'value':1116564, 'color':'#d8854f'}, |
| {'code':'CZ' , 'name':'Czech Rep.', 'value':10534293, 'color':'#d8854f'}, |
| {'code':'DK' , 'name':'Denmark', 'value':5572594, 'color':'#d8854f'}, |
| {'code':'DJ' , 'name':'Djibouti', 'value':905564, 'color':'#de4c4f'}, |
| {'code':'DO' , 'name':'Dominican Rep.', 'value':10056181, 'color':'#a7a737'}, |
| {'code':'EC' , 'name':'Ecuador', 'value':14666055, 'color':'#86a965'}, |
| {'code':'EG' , 'name':'Egypt', 'value':82536770, 'color':'#de4c4f'}, |
| {'code':'SV' , 'name':'El Salvador', 'value':6227491, 'color':'#a7a737'}, |
| {'code':'GQ' , 'name':'Equatorial Guinea', 'value':720213, 'color':'#de4c4f'}, |
| {'code':'ER' , 'name':'Eritrea', 'value':5415280, 'color':'#de4c4f'}, |
| {'code':'EE' , 'name':'Estonia', 'value':1340537, 'color':'#d8854f'}, |
| {'code':'ET' , 'name':'Ethiopia', 'value':84734262, 'color':'#de4c4f'}, |
| {'code':'FJ' , 'name':'Fiji', 'value':868406, 'color':'#8aabb0'}, |
| {'code':'FI' , 'name':'Finland', 'value':5384770, 'color':'#d8854f'}, |
| {'code':'FR' , 'name':'France', 'value':63125894, 'color':'#d8854f'}, |
| {'code':'GA' , 'name':'Gabon', 'value':1534262, 'color':'#de4c4f'}, |
| {'code':'GM' , 'name':'Gambia', 'value':1776103, 'color':'#de4c4f'}, |
| {'code':'GE' , 'name':'Georgia', 'value':4329026, 'color':'#d8854f'}, |
| {'code':'DE' , 'name':'Germany', 'value':82162512, 'color':'#d8854f'}, |
| {'code':'GH' , 'name':'Ghana', 'value':24965816, 'color':'#de4c4f'}, |
| {'code':'GR' , 'name':'Greece', 'value':11390031, 'color':'#d8854f'}, |
| {'code':'GT' , 'name':'Guatemala', 'value':14757316, 'color':'#a7a737'}, |
| {'code':'GN' , 'name':'Guinea', 'value':10221808, 'color':'#de4c4f'}, |
| {'code':'GW' , 'name':'Guinea-Bissau', 'value':1547061, 'color':'#de4c4f'}, |
| {'code':'GY' , 'name':'Guyana', 'value':756040, 'color':'#86a965'}, |
| {'code':'HT' , 'name':'Haiti', 'value':10123787, 'color':'#a7a737'}, |
| {'code':'HN' , 'name':'Honduras', 'value':7754687, 'color':'#a7a737'}, |
| {'code':'HK' , 'name':'Hong Kong, China', 'value':7122187, 'color':'#eea638'}, |
| {'code':'HU' , 'name':'Hungary', 'value':9966116, 'color':'#d8854f'}, |
| {'code':'IS' , 'name':'Iceland', 'value':324366, 'color':'#d8854f'}, |
| {'code':'IN' , 'name':'India', 'value':1241491960, 'color':'#eea638'}, |
| {'code':'ID' , 'name':'Indonesia', 'value':242325638, 'color':'#eea638'}, |
| {'code':'IR' , 'name':'Iran', 'value':74798599, 'color':'#eea638'}, |
| {'code':'IQ' , 'name':'Iraq', 'value':32664942, 'color':'#eea638'}, |
| {'code':'IE' , 'name':'Ireland', 'value':4525802, 'color':'#d8854f'}, |
| {'code':'IL' , 'name':'Israel', 'value':7562194, 'color':'#eea638'}, |
| {'code':'IT' , 'name':'Italy', 'value':60788694, 'color':'#d8854f'}, |
| {'code':'JM' , 'name':'Jamaica', 'value':2751273, 'color':'#a7a737'}, |
| {'code':'JP' , 'name':'Japan', 'value':126497241, 'color':'#eea638'}, |
| {'code':'JO' , 'name':'Jordan', 'value':6330169, 'color':'#eea638'}, |
| {'code':'KZ' , 'name':'Kazakhstan', 'value':16206750, 'color':'#eea638'}, |
| {'code':'KE' , 'name':'Kenya', 'value':41609728, 'color':'#de4c4f'}, |
| {'code':'KP' , 'name':'Korea, Dem. Rep.', 'value':24451285, 'color':'#eea638'}, |
| {'code':'KR' , 'name':'Korea, Rep.', 'value':48391343, 'color':'#eea638'}, |
| {'code':'KW' , 'name':'Kuwait', 'value':2818042, 'color':'#eea638'}, |
| {'code':'KG' , 'name':'Kyrgyzstan', 'value':5392580, 'color':'#eea638'}, |
| {'code':'LA' , 'name':'Laos', 'value':6288037, 'color':'#eea638'}, |
| {'code':'LV' , 'name':'Latvia', 'value':2243142, 'color':'#d8854f'}, |
| {'code':'LB' , 'name':'Lebanon', 'value':4259405, 'color':'#eea638'}, |
| {'code':'LS' , 'name':'Lesotho', 'value':2193843, 'color':'#de4c4f'}, |
| {'code':'LR' , 'name':'Liberia', 'value':4128572, 'color':'#de4c4f'}, |
| {'code':'LY' , 'name':'Libya', 'value':6422772, 'color':'#de4c4f'}, |
| {'code':'LT' , 'name':'Lithuania', 'value':3307481, 'color':'#d8854f'}, |
| {'code':'LU' , 'name':'Luxembourg', 'value':515941, 'color':'#d8854f'}, |
| {'code':'MK' , 'name':'Macedonia, FYR', 'value':2063893, 'color':'#d8854f'}, |
| {'code':'MG' , 'name':'Madagascar', 'value':21315135, 'color':'#de4c4f'}, |
| {'code':'MW' , 'name':'Malawi', 'value':15380888, 'color':'#de4c4f'}, |
| {'code':'MY' , 'name':'Malaysia', 'value':28859154, 'color':'#eea638'}, |
| {'code':'ML' , 'name':'Mali', 'value':15839538, 'color':'#de4c4f'}, |
| {'code':'MR' , 'name':'Mauritania', 'value':3541540, 'color':'#de4c4f'}, |
| {'code':'MU' , 'name':'Mauritius', 'value':1306593, 'color':'#de4c4f'}, |
| {'code':'MX' , 'name':'Mexico', 'value':114793341, 'color':'#a7a737'}, |
| {'code':'MD' , 'name':'Moldova', 'value':3544864, 'color':'#d8854f'}, |
| {'code':'MN' , 'name':'Mongolia', 'value':2800114, 'color':'#eea638'}, |
| {'code':'ME' , 'name':'Montenegro', 'value':632261, 'color':'#d8854f'}, |
| {'code':'MA' , 'name':'Morocco', 'value':32272974, 'color':'#de4c4f'}, |
| {'code':'MZ' , 'name':'Mozambique', 'value':23929708, 'color':'#de4c4f'}, |
| {'code':'MM' , 'name':'Myanmar', 'value':48336763, 'color':'#eea638'}, |
| {'code':'NA' , 'name':'Namibia', 'value':2324004, 'color':'#de4c4f'}, |
| {'code':'NP' , 'name':'Nepal', 'value':30485798, 'color':'#eea638'}, |
| {'code':'NL' , 'name':'Netherlands', 'value':16664746, 'color':'#d8854f'}, |
| {'code':'NZ' , 'name':'New Zealand', 'value':4414509, 'color':'#8aabb0'}, |
| {'code':'NI' , 'name':'Nicaragua', 'value':5869859, 'color':'#a7a737'}, |
| {'code':'NE' , 'name':'Niger', 'value':16068994, 'color':'#de4c4f'}, |
| {'code':'NG' , 'name':'Nigeria', 'value':162470737, 'color':'#de4c4f'}, |
| {'code':'NO' , 'name':'Norway', 'value':4924848, 'color':'#d8854f'}, |
| {'code':'OM' , 'name':'Oman', 'value':2846145, 'color':'#eea638'}, |
| {'code':'PK' , 'name':'Pakistan', 'value':176745364, 'color':'#eea638'}, |
| {'code':'PA' , 'name':'Panama', 'value':3571185, 'color':'#a7a737'}, |
| {'code':'PG' , 'name':'Papua New Guinea', 'value':7013829, 'color':'#8aabb0'}, |
| {'code':'PY' , 'name':'Paraguay', 'value':6568290, 'color':'#86a965'}, |
| {'code':'PE' , 'name':'Peru', 'value':29399817, 'color':'#86a965'}, |
| {'code':'PH' , 'name':'Philippines', 'value':94852030, 'color':'#eea638'}, |
| {'code':'PL' , 'name':'Poland', 'value':38298949, 'color':'#d8854f'}, |
| {'code':'PT' , 'name':'Portugal', 'value':10689663, 'color':'#d8854f'}, |
| {'code':'PR' , 'name':'Puerto Rico', 'value':3745526, 'color':'#a7a737'}, |
| {'code':'QA' , 'name':'Qatar', 'value':1870041, 'color':'#eea638'}, |
| {'code':'RO' , 'name':'Romania', 'value':21436495, 'color':'#d8854f'}, |
| {'code':'RU' , 'name':'Russia', 'value':142835555, 'color':'#d8854f'}, |
| {'code':'RW' , 'name':'Rwanda', 'value':10942950, 'color':'#de4c4f'}, |
| {'code':'SA' , 'name':'Saudi Arabia', 'value':28082541, 'color':'#eea638'}, |
| {'code':'SN' , 'name':'Senegal', 'value':12767556, 'color':'#de4c4f'}, |
| {'code':'RS' , 'name':'Serbia', 'value':9853969, 'color':'#d8854f'}, |
| {'code':'SL' , 'name':'Sierra Leone', 'value':5997486, 'color':'#de4c4f'}, |
| {'code':'SG' , 'name':'Singapore', 'value':5187933, 'color':'#eea638'}, |
| {'code':'SK' , 'name':'Slovak Republic', 'value':5471502, 'color':'#d8854f'}, |
| {'code':'SI' , 'name':'Slovenia', 'value':2035012, 'color':'#d8854f'}, |
| {'code':'SB' , 'name':'Solomon Islands', 'value':552267, 'color':'#8aabb0'}, |
| {'code':'SO' , 'name':'Somalia', 'value':9556873, 'color':'#de4c4f'}, |
| {'code':'ZA' , 'name':'South Africa', 'value':50459978, 'color':'#de4c4f'}, |
| {'code':'ES' , 'name':'Spain', 'value':46454895, 'color':'#d8854f'}, |
| {'code':'LK' , 'name':'Sri Lanka', 'value':21045394, 'color':'#eea638'}, |
| {'code':'SD' , 'name':'Sudan', 'value':34735288, 'color':'#de4c4f'}, |
| {'code':'SR' , 'name':'Suriname', 'value':529419, 'color':'#86a965'}, |
| {'code':'SZ' , 'name':'Swaziland', 'value':1203330, 'color':'#de4c4f'}, |
| {'code':'SE' , 'name':'Sweden', 'value':9440747, 'color':'#d8854f'}, |
| {'code':'CH' , 'name':'Switzerland', 'value':7701690, 'color':'#d8854f'}, |
| {'code':'SY' , 'name':'Syria', 'value':20766037, 'color':'#eea638'}, |
| {'code':'TW' , 'name':'Taiwan', 'value':23072000, 'color':'#eea638'}, |
| {'code':'TJ' , 'name':'Tajikistan', 'value':6976958, 'color':'#eea638'}, |
| {'code':'TZ' , 'name':'Tanzania', 'value':46218486, 'color':'#de4c4f'}, |
| {'code':'TH' , 'name':'Thailand', 'value':69518555, 'color':'#eea638'}, |
| {'code':'TG' , 'name':'Togo', 'value':6154813, 'color':'#de4c4f'}, |
| {'code':'TT' , 'name':'Trinidad and Tobago', 'value':1346350, 'color':'#a7a737'}, |
| {'code':'TN' , 'name':'Tunisia', 'value':10594057, 'color':'#de4c4f'}, |
| {'code':'TR' , 'name':'Turkey', 'value':73639596, 'color':'#d8854f'}, |
| {'code':'TM' , 'name':'Turkmenistan', 'value':5105301, 'color':'#eea638'}, |
| {'code':'UG' , 'name':'Uganda', 'value':34509205, 'color':'#de4c4f'}, |
| {'code':'UA' , 'name':'Ukraine', 'value':45190180, 'color':'#d8854f'}, |
| {'code':'AE' , 'name':'United Arab Emirates', 'value':7890924, 'color':'#eea638'}, |
| {'code':'GB' , 'name':'United Kingdom', 'value':62417431, 'color':'#d8854f'}, |
| {'code':'US' , 'name':'United States', 'value':313085380, 'color':'#a7a737'}, |
| {'code':'UY' , 'name':'Uruguay', 'value':3380008, 'color':'#86a965'}, |
| {'code':'UZ' , 'name':'Uzbekistan', 'value':27760267, 'color':'#eea638'}, |
| {'code':'VE' , 'name':'Venezuela', 'value':29436891, 'color':'#86a965'}, |
| {'code':'PS' , 'name':'West Bank and Gaza', 'value':4152369, 'color':'#eea638'}, |
| {'code':'VN' , 'name':'Vietnam', 'value':88791996, 'color':'#eea638'}, |
| {'code':'YE' , 'name':'Yemen, Rep.', 'value':24799880, 'color':'#eea638'}, |
| {'code':'ZM' , 'name':'Zambia', 'value':13474959, 'color':'#de4c4f'}, |
| {'code':'ZW' , 'name':'Zimbabwe', 'value':12754378, 'color':'#de4c4f'}]; |
| } |
| |
| var max = -Infinity; |
| var min = Infinity; |
| mapData.forEach(function (itemOpt) { |
| itemOpt.value = Math.sqrt(itemOpt.value); |
| if (itemOpt.value > max) { |
| max = itemOpt.value; |
| } |
| if (itemOpt.value < min) { |
| min = itemOpt.value; |
| } |
| }); |
| |
| option = { |
| backgroundColor: '#3f3f50', |
| visualMap: { |
| show: false, |
| min: 0, |
| max: max, |
| inRange: { |
| symbolSize: [6, 50] |
| } |
| }, |
| geo: { |
| name: 'World Population (2010)', |
| type: 'map', |
| map: 'world', |
| roam: true, |
| projection: { |
| project: (pt) => { |
| return projection(pt) |
| }, |
| unproject: (pt) => projection.invert(pt) |
| }, |
| label: { |
| emphasis: { |
| show: false |
| } |
| }, |
| itemStyle: { |
| normal: { |
| areaColor: '#393948', |
| borderColor: '#111' |
| }, |
| emphasis: { |
| areaColor: '#393948' |
| } |
| } |
| }, |
| series : [ |
| { |
| type: 'scatter', |
| coordinateSystem: 'geo', |
| data: mapData.map(function (itemOpt) { |
| return { |
| name: itemOpt.name, |
| value: [ |
| latlong[itemOpt.code].longitude, |
| latlong[itemOpt.code].latitude, |
| itemOpt.value |
| ], |
| emphasis: { |
| label: { |
| show: true |
| } |
| }, |
| itemStyle: { |
| color: itemOpt.color |
| } |
| }; |
| }) |
| } |
| ] |
| }; |
| |
| var chart = testHelper.create(echarts, 'main2', { |
| title: [ |
| 'Projection of Geo', |
| 'Bubbles position should also be projected.' |
| ], |
| height: 600, |
| option: option |
| }); |
| }); |
| |
| </script> |
| |
| <script> |
| require([ |
| 'echarts', |
| './data/map/json/world.json' |
| ], function (echarts, worldJson) { |
| |
| var option; |
| |
| function createLineString(start, end) { |
| const dx = end[0] - start[0]; |
| const dy = end[1] - start[1]; |
| const segs = 100; |
| const stepX = dx / segs; |
| const stepY = dy / segs; |
| const points = []; |
| // TODO needs adaptive sampling on the -180 / 180 of azimuthal projections. |
| for (let i = 0; i <= segs; i++) { |
| points.push([ |
| start[0] + i * stepX, |
| start[1] + i * stepY |
| ]); |
| } |
| return points; |
| } |
| function normalizePoint(pt) { |
| if (pt[0] === -180) { |
| pt[0] += 1e-2; |
| } |
| if (pt[0] === 180) { |
| pt[0] -= 1e-2; |
| } |
| if (pt[1] === -80) { |
| pt[1] += 1e-2; |
| } |
| if (pt[1] === 80) { |
| pt[1] -= 1e-2; |
| } |
| return pt; |
| } |
| // Add graticule |
| var graticuleLineStrings = []; |
| for (var lat = -80; lat <= 80; lat += 10) { |
| graticuleLineStrings.push( |
| createLineString(normalizePoint([-180, lat]), normalizePoint([180, lat])) |
| ); |
| } |
| for (var lng = -180; lng <= 180; lng += 10) { |
| graticuleLineStrings.push( |
| createLineString(normalizePoint([lng, -80]), normalizePoint([lng, 80])) |
| ); |
| } |
| |
| // var projection = d3.geoStereographic().rotate([-27, 0]); |
| var projection = d3.geoOrthographic(); |
| |
| // Clone |
| worldJson = JSON.parse(JSON.stringify(worldJson)); |
| worldJson.features.unshift({ |
| geometry: { |
| type: 'MultiLineString', |
| coordinates: graticuleLineStrings |
| }, |
| properties: { |
| name: 'graticule' |
| } |
| }); |
| |
| echarts.registerMap('world-graticule', worldJson); |
| |
| option = { |
| series: [{ |
| animation: false, |
| type: 'map', |
| map: 'world-graticule', |
| itemStyle: { |
| borderColor: '#fff', |
| areaColor: '#000' |
| }, |
| roam: false, |
| data: [ |
| { |
| name: 'graticule', |
| itemStyle: { |
| borderColor: '#aaa' |
| }, |
| emphasis: { |
| itemStyle: { |
| borderColor: '#aaa' |
| } |
| } |
| } |
| ], |
| projection: { |
| project(pt) { |
| return projection(pt) |
| }, |
| unproject(pt) { |
| return projection.invert(pt); |
| }, |
| stream: projection.stream |
| } |
| }] |
| }; |
| |
| var chart = testHelper.create(echarts, 'main3', { |
| title: [ |
| 'Update projection through interaction' |
| ], |
| height: 500, |
| option: option |
| }); |
| |
| var ox; |
| var oy; |
| var oRot; |
| var dragging = false; |
| chart.getZr() |
| .on('mousedown', function (e) { |
| ox = e.offsetX; |
| oy = e.offsetY; |
| oRot = projection.rotate(); |
| dragging = true; |
| }) |
| .on('mousemove', function (e) { |
| if (!dragging) { |
| return; |
| } |
| const x = e.offsetX; |
| const y = e.offsetY; |
| |
| projection.rotate([oRot[0] + (x - ox) / 4, oRot[1] - (y - oy) / 4]); |
| |
| chart.setOption({ |
| series: [{ |
| projection: { |
| project(pt) { |
| return projection(pt) |
| }, |
| unproject(pt) { |
| return projection.invert(pt); |
| }, |
| stream: projection.stream |
| } |
| }] |
| }) |
| }) |
| .on('mouseup', function (e) { |
| dragging = false; |
| }); |
| }); |
| </script> |
| </body> |
| </html> |