49 lines
1.3 KiB
Plaintext
49 lines
1.3 KiB
Plaintext
define(function (require) {
|
|
|
|
require('../coord/geo/GeoModel');
|
|
|
|
require('../coord/geo/geoCreator');
|
|
|
|
require('./geo/GeoView');
|
|
|
|
require('../action/geoRoam');
|
|
|
|
var echarts = require('../echarts');
|
|
var zrUtil = require('zrender/core/util');
|
|
|
|
function makeAction(method, actionInfo) {
|
|
actionInfo.update = 'updateView';
|
|
echarts.registerAction(actionInfo, function (payload, ecModel) {
|
|
var selected = {};
|
|
|
|
ecModel.eachComponent(
|
|
{ mainType: 'geo', query: payload},
|
|
function (geoModel) {
|
|
geoModel[method](payload.name);
|
|
var geo = geoModel.coordinateSystem;
|
|
zrUtil.each(geo.regions, function (region) {
|
|
selected[region.name] = geoModel.isSelected(region.name) || false;
|
|
});
|
|
}
|
|
);
|
|
|
|
return {
|
|
selected: selected,
|
|
name: payload.name
|
|
}
|
|
});
|
|
}
|
|
|
|
makeAction('toggleSelected', {
|
|
type: 'geoToggleSelect',
|
|
event: 'geoselectchanged'
|
|
});
|
|
makeAction('select', {
|
|
type: 'geoSelect',
|
|
event: 'geoselected'
|
|
});
|
|
makeAction('unSelect', {
|
|
type: 'geoUnSelect',
|
|
event: 'geounselected'
|
|
});
|
|
}); |