DefinitelyTyped/types/proj4leaflet/index.d.ts
Tomasz Janusz 16ce77ee6d Fix proj4leaflet tests & types errors
GeoJSON does not have a CRS object in the specification, so the proj4leaflet tests did not pass. Fixed :)
2017-12-21 17:26:48 +01:00

63 lines
1.9 KiB
TypeScript

// Type definitions for proj4leaflet 1.0
// Project: https://github.com/kartena/Proj4Leaflet#readme
// Definitions by: BendingBender <https://github.com/BendingBender>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
import * as geojson from 'geojson';
import * as L from 'leaflet';
import * as proj4 from 'proj4';
declare module 'leaflet' {
namespace Proj {
class CRS implements CRS {
projection: Projection;
transformation: Transformation;
code?: string;
wrapLng?: [number, number];
wrapLat?: [number, number];
infinite: boolean;
constructor(projection: proj4.InterfaceProjection, options?: ProjCRSOptions);
constructor(code: string, proj4def: string, options?: ProjCRSOptions);
latLngToPoint(latlng: LatLngExpression, zoom: number): Point;
pointToLatLng(point: PointExpression, zoom: number): LatLng;
project(latlng: LatLng | LatLngLiteral): Point;
unproject(point: PointExpression): LatLng;
scale(zoom: number): number;
zoom(scale: number): number;
getProjectedBounds(zoom: number): Bounds;
distance(latlng1: LatLngExpression, latlng2: LatLngExpression): number;
wrapLatLng(latlng: LatLng | LatLngLiteral): LatLng;
}
class GeoJSON extends L.GeoJSON {}
const geoJson: (geojson?: Proj4GeoJSONFeature, options?: GeoJSONOptions) => GeoJSON;
class ImageOverlay extends L.ImageOverlay {}
const imageOverlay: (imageUrl: string, bounds: LatLngBoundsExpression, options?: ImageOverlayOptions) => ImageOverlay;
interface ProjCRSOptions {
bounds?: Bounds;
origin?: [number, number];
scales?: number[];
resolutions?: number[];
transformation?: Transformation;
}
}
}
export type Proj4GeoJSONFeature = geojson.Feature<geojson.GeometryObject> & {
crs?: { type: string; properties: { name: string } }
};