1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import { SVGParserResultNamedItem } from 'zrender/lib/tool/parseSVG.js';
- import Group from 'zrender/lib/graphic/Group.js';
- import { HashMap } from 'zrender/lib/core/util.js';
- import BoundingRect from 'zrender/lib/core/BoundingRect.js';
- import { GeoResource, GeoSVGSourceInput } from './geoTypes.js';
- import { GeoSVGRegion } from './Region.js';
- export interface GeoSVGGraphicRecord {
- root: Group;
- boundingRect: BoundingRect;
- named: SVGParserResultNamedItem[];
- }
- export declare class GeoSVGResource implements GeoResource {
- readonly type = "geoSVG";
- private _mapName;
- private _parsedXML;
- private _firstGraphic;
- private _boundingRect;
- private _regions;
- private _regionsMap;
- private _usedGraphicMap;
- private _freedGraphics;
- constructor(mapName: string, svg: GeoSVGSourceInput);
- load(): {
- boundingRect: BoundingRect;
- regions: GeoSVGRegion[];
- regionsMap: HashMap<GeoSVGRegion, string | number>;
- };
- private _buildGraphic;
- /**
- * Consider:
- * (1) One graphic element can not be shared by different `geoView` running simultaneously.
- * Notice, also need to consider multiple echarts instances share a `mapRecord`.
- * (2) Converting SVG to graphic elements is time consuming.
- * (3) In the current architecture, `load` should be called frequently to get boundingRect,
- * and it is called without view info.
- * So we maintain graphic elements in this module, and enables `view` to use/return these
- * graphics from/to the pool with it's uid.
- */
- useGraphic(hostKey: string): GeoSVGGraphicRecord;
- freeGraphic(hostKey: string): void;
- }
|