var geoCoordMap = { '庄行':[121.392731086,30.904295066], '颛桥':[121.416398316,31.071385051], '祝桥':[121.788510225,31.144282959], '朱泾':[121.195069534,30.883788799], '朱家角':[121.022169308,31.106800236], '周浦':[121.586130271,31.104518546], '周家嘴路':[121.544000784,31.279484824], '重固':[121.185913769,31.210154814], '中远两湾城':[121.446787787,31.257673096], '中原':[121.540072857,31.327600582], '中山公园':[121.424710634,31.226582902], '植物园':[121.449437657,31.153811657], '镇宁路':[121.440338923,31.223181564], '真如':[121.415196038,31.258309019], '真光':[121.383318875,31.265592612], '柘林':[121.456633582,30.855834996], '赵巷':[121.206533711,31.148234408], '张堰':[121.288372618,30.80897653], '张庙':[121.459536548,31.340804507], '张江':[121.635729685,31.196648815], '闸北公园':[121.468387286,31.277461132], '月浦':[121.418457,31.446995928], '源深':[121.541484636,31.239317891], '豫园':[121.49671169,31.22945342], '御桥':[121.578128127,31.161696509], '永和':[121.439073908,31.302815901], '盈浦':[121.074903161,31.156485842], '叶榭':[121.304466451,30.940100866], '洋泾':[121.556691,31.247637], '杨行':[121.455932114,31.380407276], '杨东':[121.54634086,31.213981814], '阳城':[121.43947554,31.288623747], '宣桥':[121.698275031,31.033128656], '徐行':[121.241797498,31.433988152], '徐泾':[121.286729043,31.186900481], '徐家汇':[121.441761286,31.197288839], '徐汇滨江':[121.466280592,31.174255952], '新天地':[121.484014019,31.223047204], '新桥':[121.317811752,31.057453333], '新江湾城':[121.517559827,31.336735109], '新华路':[121.430782776,31.210876828], '新成路':[121.274943867,31.387296928], '新场':[121.642580051,31.051069312], '新浜':[121.078401269,30.942076288], '莘庄':[121.377028325,31.110775623], '莘闵别墅':[121.358613342,31.090207832], '斜土路':[121.468485867,31.202840433], '小昆山':[121.142362267,31.035092958], '香花桥':[121.134332325,31.205547847], '仙霞':[121.397415543,31.21426763], '夏阳':[121.142678046,31.134667401], '西郊':[121.363601145,31.202141218], '西渡':[121.434153935,30.981055677], '西藏北路':[121.480596701,31.255814204], '武宁':[121.428643379,31.243228412], '五里桥':[121.488284571,31.212922881], '五角场':[121.515888989,31.301700833], '吴泾':[121.464380566,31.057645424], '潍坊':[121.531452486,31.225669257], '万祥镇':[121.824546824,30.971493095], '万体馆':[121.447210262,31.185395967], '万里':[121.416598594,31.273671506], '外高桥':[121.56919451,31.367867893], '外冈':[121.161536952,31.363720616], '通河':[121.457559593,31.33531563], '亭林':[121.315413311,30.869814084], '田林':[121.425488662,31.188866338], '天山':[121.396884452,31.22130675], '桃浦':[121.36949987,31.290002688], '塘桥':[121.53065997,31.21973931], '唐镇':[121.666921348,31.227656188], '淞南':[121.499666878,31.355981026], '淞宝':[121.497589673,31.392106064], '松江新城':[121.221324453,31.040069535], '松江老城':[121.224726788,30.994649137], '松江大学城':[121.234431015,31.069476956], '泗泾':[121.269197024,31.118302234], '四团':[121.752203735,30.937688072], '四川北路':[121.490485796,31.260948109], '书院镇':[121.87990827,30.961196683], '世博滨江':[121.492263636,31.203443182], '世博':[121.498741932,31.183564814], '石化':[121.326570737,30.715833853], '石湖荡':[121.166601394,30.979194097], '佘山':[121.178878329,31.103491714], '上海南站':[121.441009023,31.151716163], '上大':[121.361209585,31.31375776], '山阳':[121.360398596,30.776065254], '三林':[121.510196078,31.140115222], '人民广场':[121.475234063,31.242111479], '曲阳':[121.49890938,31.285931543], '青村':[121.565145703,30.935124], '七宝':[121.343318812,31.159286084], '浦江':[121.538246369,31.070695778], '蓬莱公园':[121.49735879,31.213898339], '彭浦':[121.456102587,31.31577028], '泥城镇':[121.833161357,30.915268464], '南翔':[121.318499256,31.314513615], '南桥':[121.478701082,30.933722097], '南码头':[121.517251256,31.196623651], '南京西路':[121.463368797,31.239402593], '南京东路':[121.489425152,31.244314582], '梅陇':[121.412976241,31.131066931], '泖港':[121.174043601,30.939740243], '马桥':[121.353638162,31.046465749], '马陆':[121.317269893,31.36865613], '罗泾':[121.346587479,31.482010188], '罗店':[121.357845836,31.407839662], '吕巷':[121.20422225,30.847113244], '陆家嘴':[121.519288695,31.236849293], '鲁迅公园':[121.488682822,31.274465329], '龙华':[121.455392522,31.174271217], '龙柏':[121.372762531,31.183020625], '临平路':[121.504360841,31.267112159], '临港新城':[121.907197746,30.927243451], '凉城':[121.476675966,31.291471464], '练塘':[121.037459744,30.992274326], '联洋':[121.557673333,31.231277154], '老西门':[121.491522107,31.22535225], '老闵行':[121.378126074,31.008535148], '老港镇':[121.871391495,31.029738187], '廊下':[121.193268414,30.804596316], '控江路':[121.539931861,31.291323194], '康桥':[121.595505182,31.144443498], '康健':[121.427030455,31.166707424], '菊园新区':[121.225302843,31.385868659], '九亭':[121.321318712,31.13559726], '静安新城':[121.385720039,31.166410412], '静安寺':[121.451044867,31.227976949], '金泽':[120.928212933,31.078832633], '金杨':[121.581334394,31.26171302], '金山':[121.273445585,30.762716256], '金桥':[121.59371275,31.284679716], '金汇':[121.381638761,31.184893022], '金虹桥':[121.400999793,31.188034976], '江湾镇':[121.482394735,31.311535653], '江桥':[121.299216655,31.271679268], '江宁路':[121.451693162,31.242369667], '建国西路':[121.462914444,31.21434063], '嘉定新城':[121.263963459,31.34923599], '嘉定老城':[121.253642931,31.385011448], '惠南':[121.779836954,31.037013281], '黄兴公园':[121.544544803,31.300674667], '黄浦滨江':[121.508440985,31.221492924], '淮海中路':[121.471605067,31.2226863], '华新':[121.223333288,31.218367586], '华亭':[121.274619015,31.475787803], '华泾':[121.457105821,31.120455815], '华东理工':[121.432673125,31.1444979], '华漕':[121.306107446,31.216354317], '花木':[121.561247836,31.215555345], '虹桥':[121.407229327,31.208476345], '衡山路':[121.453801214,31.217111729], '横沙岛':[121.869442,31.337311429], '合庆':[121.737025158,31.231268589], '航头':[121.586907114,31.056024762], '航华':[121.35655375,31.181540917], '海湾':[121.607751112,30.860539981], '光新':[121.435837197,31.259265197], '顾村':[121.368699249,31.362771765], '古美':[121.396926576,31.150862242], '古北':[121.409940708,31.2013015], '共康':[121.434011673,31.332557158], '共富':[121.424116,31.3490235], '高行':[121.619015379,31.294198448], '高境':[121.4924635,31.327708571], '高东':[121.642204067,31.327268493], '甘泉宜川':[121.442842229,31.269159927], '奉贤金汇':[121.580114958,30.980328537], '奉城':[121.670790196,30.966293207], '枫泾':[121.052772433,30.893621594], '丰庄':[121.370876414,31.255089216], '董家渡':[121.504982422,31.221144278], '东外滩':[121.537689976,31.264866565], '大团镇':[121.780361385,30.980434714], '大宁':[121.457135205,31.285704783], '大华':[121.417915669,31.288244746], '大场镇':[121.413211476,31.315624387], '打浦桥':[121.474234529,31.209484706], '春申':[121.444480269,31.107016486], '川沙':[121.721025256,31.159964864], '崇明新城':[121.420050714,31.639806143], '崇明其它':[121.50151469,31.685294], '陈家镇':[121.884927,31.51566125], '车墩':[121.290936366,30.994618159], '长征':[121.376916,31.240668794], '长兴岛':[121.686595833,31.408153833], '长寿路':[121.444009384,31.248764791], '长桥':[121.447044395,31.139297105], '长风':[121.404312859,31.235218941], '漕泾':[121.394304017,30.814604099], '漕河泾':[121.407882247,31.179464364], '曹杨':[121.415957961,31.243296481], '曹路':[121.670494914,31.27458932], '曹家渡':[121.440586235,31.235000184], '不夜城':[121.462753585,31.253300363], '碧云':[121.599049771,31.241602143], '北新泾':[121.361285659,31.229004095], '北外滩':[121.508853265,31.257418675], '北蔡':[121.559379,31.181123626], '堡镇':[121.6308335,31.58143325], '白鹤':[121.121548296,31.250190635], '鞍山':[121.5139178,31.282479689], '安亭':[121.2028438,31.303483611], ' ':[121.510196078,31.140115222], // 三林的,1个空格 ' ':[121.538246369,31.070695778], // 浦江的,2个空格 ' ':[121.368699249,31.362771765] // 顾村的,3个空格 }; var aData = [ [{name:'顾村'},{name:'顾村',value:304} ], [{name:'顾村'},{name:'甘泉宜川',value:15} ], [{name:'顾村'},{name:'杨行',value:14} ], [{name:'顾村'},{name:'淞南',value:11} ], [{name:'顾村'},{name:'高境',value:10} ], [{name:'顾村'},{name:'共康',value:9} ], [{name:'顾村'},{name:'彭浦',value:9} ], [{name:'顾村'},{name:'中原',value:9} ], [{name:'顾村'},{name:'上大',value:8} ], [{name:'顾村'},{name:'大华',value:7} ], [{name:'顾村'},{name:'大宁',value:6} ], [{name:'顾村'},{name:'江湾镇',value:6} ], [{name:'顾村'},{name:'金桥',value:6} ], [{name:'顾村'},{name:'控江路',value:6} ], [{name:'顾村'},{name:'月浦',value:6} ], [{name:'顾村'},{name:'共富',value:5} ], [{name:'顾村'},{name:'凉城',value:5} ], [{name:'顾村'},{name:'张庙',value:5} ], ]; var bData = [ [{name:'江桥'},{name:'江桥',value:272} ], [{name:'江桥'},{name:'丰庄',value:22} ], [{name:'江桥'},{name:'长征',value:14} ], [{name:'江桥'},{name:'真光',value:9} ], [{name:'江桥'},{name:'北新泾',value:8} ], [{name:'江桥'},{name:'泗泾',value:7} ], [{name:'江桥'},{name:' ',value:6} ], [{name:'江桥'},{name:'华漕',value:6} ], [{name:'江桥'},{name:'真如',value:6} ], [{name:'江桥'},{name:'曹杨',value:5} ], [{name:'江桥'},{name:'龙柏',value:5} ], [{name:'江桥'},{name:' ',value:5} ], [{name:'江桥'},{name:'桃浦',value:5} ], [{name:'江桥'},{name:'长风',value:5} ], [{name:'江桥'},{name:'中山公园',value:5} ], ]; var cData = [ [{name:'浦江'},{name:'浦江',value:280} ], [{name:'浦江'},{name:' ',value:33} ], [{name:'浦江'},{name:'世博',value:12} ], [{name:'浦江'},{name:'北蔡',value:8} ], [{name:'浦江'},{name:'金桥',value:8} ], [{name:'浦江'},{name:'陆家嘴',value:7} ], [{name:'浦江'},{name:'洋泾',value:7} ], [{name:'浦江'},{name:'中原',value:7} ], [{name:'浦江'},{name:'周浦',value:5} ], [{name:'浦江'},{name:'颛桥',value:5} ], ]; var dData = [ [{name:'三林'},{name:'三林',value:274} ], [{name:'三林'},{name:'世博',value:25} ], [{name:'三林'},{name:'南码头',value:17} ], [{name:'三林'},{name:' ',value:14} ], [{name:'三林'},{name:'金杨',value:9} ], [{name:'三林'},{name:'北蔡',value:8} ], [{name:'三林'},{name:'周浦',value:6} ], [{name:'三林'},{name:' ',value:5} ], [{name:'三林'},{name:'惠南',value:5} ], ]; var eData = [ [{name:'莘庄'},{name:'莘庄',value:348} ], [{name:'莘庄'},{name:'颛桥',value:26} ], [{name:'莘庄'},{name:'老闵行',value:20} ], [{name:'莘庄'},{name:'春申',value:13} ], [{name:'莘庄'},{name:'九亭',value:13} ], [{name:'莘庄'},{name:'古美',value:9} ], [{name:'莘庄'},{name:'梅陇',value:9} ], [{name:'莘庄'},{name:' ',value:8} ], [{name:'莘庄'},{name:'泗泾',value:8} ], [{name:'莘庄'},{name:'新桥',value:8} ], [{name:'莘庄'},{name:'康健',value:7} ], [{name:'莘庄'},{name:'莘闵别墅',value:6} ], [{name:'莘庄'},{name:'吴泾',value:6} ], [{name:'莘庄'},{name:' ',value:5} ], [{name:'莘庄'},{name:'龙华',value:5} ], [{name:'莘庄'},{name:'西渡',value:5} ], [{name:'莘庄'},{name:'徐泾',value:5} ], ]; var planePath = 'path://M.6,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705'; var convertData = function(data) { var res = []; for (var i = 0; i < data.length; i++) { var dataItem = data[i]; // 反向 var fromCoord = geoCoordMap[dataItem[1].name]; var toCoord = geoCoordMap[dataItem[0].name]; if (fromCoord && toCoord) { res.push([{ coord: fromCoord }, { coord: toCoord }]); } } return res; }; var color = ['#3ed4ff', '#ffa022', '#a6c84c','#c71585','#ffff99' ]; var series = []; [ ['顾村', aData], ['江桥', bData], ['浦江', cData], ['三林', dData], ['莘庄', eData] ].forEach(function(item, i) { series.push({ name: item[0] + ' Top10', type: 'lines', zlevel: 1, effect: { show: true, period: 6, trailLength: 0.7, color: '#fff', symbolSize: 3 }, lineStyle: { normal: { color: color[i], width: 0, curveness: 0.2 } }, data: convertData(item[1]) }, { name: item[0] + ' Top10', type: 'lines', zlevel: 2, effect: { show: true, period: 6, trailLength: 0, symbol: planePath, symbolSize: 15 }, lineStyle: { normal: { color: color[i], width: 1, opacity: 0.4, curveness: 0.2 } }, data: convertData(item[1]) }, { name: item[0] + ' Top10', type: 'effectScatter', coordinateSystem: 'geo', zlevel: 2, rippleEffect: { brushType: 'stroke' }, label: { normal: { show: true, position: 'right', formatter: '{b}' } }, symbolSize: function(val) { return val[2] / 8; }, itemStyle: { normal: { color: color[i] } }, data: item[1].map(function(dataItem) { return { name: dataItem[1].name, value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value]) }; }) }); }); option = { backgroundColor: '#080a20', title: { text: '模拟迁徙', subtext: '数据纯属虚构', left: 'left', textStyle: { color: '#fff' } }, tooltip: { trigger: 'item' }, legend: { orient: 'vertical', top: 'bottom', left: 'right', data: ['北京 Top10', '上海 Top10', '广州 Top10'], textStyle: { color: '#fff' }, selectedMode: 'single' }, geo: { map: 'china', label: { emphasis: { show: false } }, roam: true, itemStyle: { normal: { areaColor: '#132937', borderColor: '#0692a4' }, emphasis: { areaColor: '#0b1c2d' } } }, series: series };