import BoundingRect from 'zrender/lib/core/BoundingRect.js';
|
import { GeoJSON, GeoProjection } from './geoTypes.js';
|
import Element from 'zrender/lib/Element.js';
|
export declare abstract class Region {
|
readonly name: string;
|
readonly type: 'geoJSON' | 'geoSVG';
|
protected _center: number[];
|
protected _rect: BoundingRect;
|
constructor(name: string);
|
setCenter(center: number[]): void;
|
/**
|
* Get center point in data unit. That is,
|
* for GeoJSONRegion, the unit is lat/lng,
|
* for GeoSVGRegion, the unit is SVG local coord.
|
*/
|
getCenter(): number[];
|
abstract calcCenter(): number[];
|
}
|
export declare class GeoJSONPolygonGeometry {
|
readonly type = "polygon";
|
exterior: number[][];
|
interiors?: number[][][];
|
constructor(exterior: number[][], interiors: number[][][]);
|
}
|
export declare class GeoJSONLineStringGeometry {
|
readonly type = "linestring";
|
points: number[][][];
|
constructor(points: number[][][]);
|
}
|
export declare class GeoJSONRegion extends Region {
|
readonly type = "geoJSON";
|
readonly geometries: (GeoJSONPolygonGeometry | GeoJSONLineStringGeometry)[];
|
properties: GeoJSON['features'][0]['properties'];
|
constructor(name: string, geometries: GeoJSONRegion['geometries'], cp: GeoJSON['features'][0]['properties']['cp']);
|
calcCenter(): number[];
|
getBoundingRect(projection?: GeoProjection): BoundingRect;
|
contain(coord: number[]): boolean;
|
/**
|
* Transform the raw coords to target bounding.
|
* @param x
|
* @param y
|
* @param width
|
* @param height
|
*/
|
transformTo(x: number, y: number, width: number, height: number): void;
|
cloneShallow(name: string): GeoJSONRegion;
|
}
|
export declare class GeoSVGRegion extends Region {
|
readonly type = "geoSVG";
|
private _elOnlyForCalculate;
|
constructor(name: string, elOnlyForCalculate: Element);
|
calcCenter(): number[];
|
}
|