| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- import BoundingRect from 'zrender/lib/core/BoundingRect.js';
- import { HashMap } from 'zrender/lib/core/util.js';
- import { Group } from '../../util/graphic.js';
- import { Region } from './Region.js';
- export declare type GeoSVGSourceInput = string | Document | SVGElement;
- export declare type GeoJSONSourceInput = string | GeoJSON | GeoJSONCompressed;
- export interface NameMap {
- [regionName: string]: string;
- }
- export interface GeoSpecialAreas {
- [areaName: string]: {
- left: number;
- top: number;
- width?: number;
- height?: number;
- };
- }
- export interface GeoJSON extends GeoJSONFeatureCollection<GeoJSONGeometry> {
- }
- export interface GeoJSONCompressed extends GeoJSONFeatureCollection<GeoJSONGeometryCompressed> {
- UTF8Encoding?: boolean;
- UTF8Scale?: number;
- }
- interface GeoJSONFeatureCollection<G> {
- type: 'FeatureCollection';
- features: GeoJSONFeature<G>[];
- }
- interface GeoJSONFeature<G = GeoJSONGeometry> {
- type: 'Feature';
- id?: string | number;
- properties: {
- name?: string;
- cp?: number[];
- [key: string]: any;
- };
- geometry: G;
- }
- declare type GeoJSONGeometry = GeoJSONGeometryPoint | GeoJSONGeometryMultiPoint | GeoJSONGeometryLineString | GeoJSONGeometryMultiLineString | GeoJSONGeometryPolygon | GeoJSONGeometryMultiPolygon;
- declare type GeoJSONGeometryCompressed = GeoJSONGeometryPolygonCompressed | GeoJSONGeometryMultiPolygonCompressed | GeoJSONGeometryLineStringCompressed | GeoJSONGeometryMultiLineStringCompressed;
- interface GeoJSONGeometryPoint {
- type: 'Point';
- coordinates: number[];
- }
- interface GeoJSONGeometryMultiPoint {
- type: 'MultiPoint';
- coordinates: number[][];
- }
- interface GeoJSONGeometryLineString {
- type: 'LineString';
- coordinates: number[][];
- }
- interface GeoJSONGeometryLineStringCompressed {
- type: 'LineString';
- coordinates: string;
- encodeOffsets: number[];
- }
- interface GeoJSONGeometryMultiLineString {
- type: 'MultiLineString';
- coordinates: number[][][];
- }
- interface GeoJSONGeometryMultiLineStringCompressed {
- type: 'MultiLineString';
- coordinates: string[];
- encodeOffsets: number[][];
- }
- export interface GeoJSONGeometryPolygon {
- type: 'Polygon';
- coordinates: number[][][];
- }
- interface GeoJSONGeometryPolygonCompressed {
- type: 'Polygon';
- coordinates: string[];
- encodeOffsets: number[][];
- }
- export interface GeoJSONGeometryMultiPolygon {
- type: 'MultiPolygon';
- coordinates: number[][][][];
- }
- interface GeoJSONGeometryMultiPolygonCompressed {
- type: 'MultiPolygon';
- coordinates: string[][];
- encodeOffsets: number[][][];
- }
- export interface GeoResource {
- readonly type: 'geoJSON' | 'geoSVG';
- load(nameMap: NameMap, nameProperty: string): {
- boundingRect: BoundingRect;
- regions: Region[];
- regionsMap: HashMap<Region>;
- };
- }
- export interface GeoSVGGraphicRoot extends Group {
- isGeoSVGGraphicRoot: boolean;
- }
- /**
- * Geo stream interface compatitable with d3-geo
- * See the API detail in https://github.com/d3/d3-geo#streams
- */
- export interface ProjectionStream {
- point(x: number, y: number): void;
- lineStart(): void;
- lineEnd(): void;
- polygonStart(): void;
- polygonEnd(): void;
- /**
- * Not supported yet.
- */
- sphere(): void;
- }
- export interface GeoProjection {
- project(point: number[]): number[];
- unproject(point: number[]): number[];
- /**
- * Projection stream compatitable to d3-geo projection stream.
- *
- * When rotate projection is used. It may have antimeridian artifacts.
- * So we need to introduce the fule projection stream to do antimeridian clipping.
- *
- * project will be ignored if projectStream is given.
- */
- stream?(outStream: ProjectionStream): ProjectionStream;
- }
- export {};
|