import type { IGeoPoint } from "../../core/util/IGeoPoint"; import type { GeoProjection } from "d3-geo"; /** * Notes down which call produced a geometry, and with what, so that serializing * can write out those few numbers instead of every coordinate they expand to. * * The note is not enumerable, so it stays out of the geometry itself. * * @ignore */ export declare function describeGeometry(geometry: T, name: string, args: { [index: string]: any; }): T; /** * Returns a circle on the globe as GeoJSON geometry, for the `geometry` of a * [[MapPolygon]]. * * @param geoPoint Center * @param radius Radius in degrees of arc along the surface * @return Polygon geometry */ export declare function getGeoCircle(geoPoint: IGeoPoint, radius: number): GeoJSON.Polygon; /** * Returns the geographic centroid of a geometry. */ export declare function getGeoCentroid(geometry: GeoJSON.GeometryObject): IGeoPoint; /** * Returns the area of a geometry on a sphere of radius 1, in steradians: the * whole globe is 4π. */ export declare function getGeoArea(geometry: GeoJSON.GeometryObject): number; /** * Returns the geographic bounds of a geometry, in degrees: longitudes `left` * and `right`, latitudes `top` and `bottom`. Bounds across the 180th meridian * take all longitudes, `-180` to `180`. */ export declare function getGeoBounds(geometry: GeoJSON.GeometryObject): { left: number; right: number; top: number; bottom: number; }; /** * Returns the area between two latitudes and two longitudes as GeoJSON * geometry, for the `geometry` of a [[MapPolygon]]. Its edges follow the * parallels and meridians. * * @param north North latitude * @param east East longitude * @param south South latitude * @param west West longitude * @return Polygon geometry */ export declare function getGeoRectangle(north: number, east: number, south: number, west: number): GeoJSON.MultiPolygon; /** * Brings a point's longitude within `-180` to `180` and its latitude within * `-90` to `90`: a latitude past a pole comes back down on the other side. * Changes `geoPoint` itself and returns it. * * @param geoPoint Input coordinates * @return Updated coordinates */ export declare function normalizeGeoPoint(geoPoint: IGeoPoint): IGeoPoint; /** * Returns the point where the sun is directly overhead at a given time, such * as for the `sunPosition` of a [[MapRasterSeries]]. Accurate to a fraction * of a degree. * * @param date Time (default: now) * @return The point * @since 5.21.0 */ export declare function getSunPosition(date?: Date): IGeoPoint; /** * @ignore */ export declare function wrapAngleTo180(angle: number): number; /** * Earth's mean radius in metres, which altitudes in metres are measured * against when drawn. * * @ignore */ export declare const EARTH_RADIUS = 6371008.8; /** * Whether a projection shows a globe: clipped at 90 degrees, which amCharts * sets at a hair over 90, or less. * * @ignore */ export declare function isGlobe(projection: GeoProjection): boolean; /** * Where a point raised above the surface appears on screen. * * `altitude` is in metres above the ground. On a globe (a projection * clipped at 90 degrees or less) the point rises away from the globe's center: * `far` says it is on the far side, and `hidden` that the globe also covers it, * which a far point high enough to show past the edge is not. On flat maps it * rises up the screen by the same measure. * * @ignore */ export declare function projectAltitude(projection: GeoProjection, longitude: number, latitude: number, altitude: number): { x: number; y: number; far: boolean; hidden: boolean; } | undefined; /** * [[projectAltitude]] for many points in the same view: the projection is * read once, not for every point. With `skipHidden`, points the globe covers * come back `undefined` without being projected. * * @ignore */ export declare function altitudeProjector(projection: GeoProjection, skipHidden?: boolean): (longitude: number, latitude: number, altitude: number) => { x: number; y: number; far: boolean; hidden: boolean; } | undefined; //# sourceMappingURL=MapUtils.d.ts.map