基于vue-echarts的地图渐热效果实现,展示大陆金融业和房地产行业从1994年到2018年的发展情况,效果展示地址:https://dqinyuan.github.io/mapvisual/index.html
Element-ui VueVue-echarts
19942018
https://dqinyuan.github.io/mapvisual/index.html
clone/docs/index.html
![](imgs/.png)
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# /dist/index.html
cnpmnpm
/src/config.js
let config = {
start:1994, //1994
end:2018, //2018
interval:2, //2
time:150 //150
}
export default config;
198020181994-20181980-1994
echarts/src/components/StateGraph.vueecharts
/src/App.vue/src/Graphs.vue/src/components/StateGraph.vueStateGraph.vueecharts
App.vueGraphts.vueGraphs.vueStateGraph.vue
Vuevue-echarts
refreshMap(){
//console.log("refresh");
this.activeStep = 1;
bus.$emit("refresh_map");
}
"refresh_map"
bus.$on("refresh_map", function() {
clearInterval(that.timerId);
for (let i = 0; i < that.cursors.length; i++) {
that.cursors[i] = 0;
}
that.financedatas.splice(0, that.financedatas.length);
that.estatedatas.splice(0, that.estatedatas.length);
that.start_date = new Date(config.start, 0, 1, 0, 0, 0, 0);
that.timerId = setInterval(that.job, config.time);
});
financedatasestatedatassplicesetIntervalsetIntervalconfig.timejobjobfinancedatasestatedatas
Graphs.vue68job:
this.job = function() {
update(finances, that.financedatas, 0, that.start_date, 10);
update(estates, that.estatedatas, 1, that.start_date, 10);
//
let previousYear = that.start_date.getFullYear();
that.start_date = utils.upgradeDateByQuarter(that.start_date);
//console.log(previousYear);
//console.log(that.start_date.getFullYear());
//console.log("--------------------------------");
// console.log(that.start_date.getMonth());
if (previousYear != that.start_date.getFullYear()) {
inter_flag += 1;
if (inter_flag % config.interval == 0) {
bus.$emit("step");
}
if (previousYear == config.end - 1) {
//console.log("++++++++++++++++++++++++++++=");
clearInterval(that.timerId);
}
}
};
that.start_date = utils.upgradeDateByQuarter(that.start_date);
Quarterif (previousYear != that.start_date.getFullYear())``if (inter_flag % config.interval == 0)
"step"App.vueupdateupdatefinancesestatesthat.start_date
financedatasestatedatas
updateGraphs.vue50
/**
* fields:echarts
* field_datas:
* cursor_index:(cursors)
* com_date:
* factor:
*/
function update(fields, field_datas, cursor_index, com_date, factor) {
for (
;
that.cursors[cursor_index] < fields.length;
that.cursors[cursor_index]++
) {
let field = fields[that.cursors[cursor_index]];
// console.log(utils.date2string(this.start_date));
// console.log(finance.datestr);
if (utils.string2date(field.datestr).valueOf() <= com_date.valueOf()) {
field_datas.push([field.lon, field.lat, factor]);
} else {
break;
}
}
}
forif (utils.string2date(field.datestr).valueOf() <= com_date.valueOf())
(field_datas)push