import { BaseNative } from '..'; import { IProjection } from '../projections'; import { DefaultLatLonKeys, MapBounds, MapPos, NativeVector } from '../core'; import { FeatureCollection } from '../geometry/feature'; import { CartoPackageManager } from '../packagemanager'; export interface GeocodingRequest { projection: IProjection; location?: MapPos; locationRadius?: number; query: string; } export interface ReverseGeocodingRequest { projection: IProjection; location?: MapPos; searchRadius?: number; } export interface GeocodingServiceOptions { // metaData?: { [k: string]: string }; } export interface ReverseGeocodingServiceOptions { // metaData?: { [k: string]: string }; } export abstract class GeocodingService extends BaseNative { public calculateAddresses(options: GeocodingRequest, callback: (error: Error, res: GeocodingResultVector) => void); } export abstract class ReverseGeocodingService extends BaseNative { public calculateAddresses(options: ReverseGeocodingRequest, callback: (error: Error, res: GeocodingResultVector) => void); } export interface Address { // street: string; // country: string; // name: string; // neighbourhood: string; // postcode: string; // houseNumber: string; // region: string; // locality: string; // categories: string[]; getStreet(): string; getCountry(): string; getCounty(): string; getName(): string; getCategories(): any; getNeighbourhood(): string; getPostcode(): string; getHouseNumber(): string; getRegion(): string; getLocality(): string; } export interface GeocodingResult { getAddress(): Address; getRank(): number; getFeatureCollection(): FeatureCollection; } export class GeocodingResultVector extends NativeVector {} export interface PackageManagerGeocodingServiceOptions extends GeocodingServiceOptions { language?: string; packageManager: CartoPackageManager; } export class PackageManagerGeocodingService extends GeocodingService { language: string; } export interface PackageManagerReverseGeocodingServiceOptions extends ReverseGeocodingServiceOptions { language?: string; packageManager: CartoPackageManager; } export class PackageManagerReverseGeocodingService extends ReverseGeocodingService { language: string; } export interface OSMOfflineGeocodingServiceOptions {} export class OSMOfflineGeocodingService extends GeocodingService {} export interface PeliasOnlineGeocodingServiceOptions { autoComplete?: boolean; language?: string; customServiceURL?: string; apiKey: string; } export class PeliasOnlineGeocodingService extends GeocodingService { autoComplete?: boolean; language?: string; customServiceURL?: string; } export interface PeliasOnlineReverseGeocodingServiceOptions { language?: string; customServiceURL?: string; apiKey: string; } export class PeliasOnlineReverseGeocodingService extends ReverseGeocodingService { language?: string; customServiceURL?: string; } export interface TomTomOnlineGeocodingServiceOptions { autoComplete?: boolean; language?: string; customServiceURL?: string; apiKey: string; } export class TomTomOnlineGeocodingService extends GeocodingService { autoComplete?: boolean; language?: string; customServiceURL?: string; } export interface TomTomOnlineReverseGeocodingServiceOptions { language?: string; customServiceURL?: string; apiKey: string; } export class TomTomOnlineReverseGeocodingService extends ReverseGeocodingService { language?: string; customServiceURL?: string; } export interface MapBoxOnlineGeocodingServiceOptions { autoComplete?: boolean; language?: string; customServiceURL?: string; apiKey: string; } export class MapBoxOnlineGeocodingService extends GeocodingService { autoComplete?: boolean; language?: string; customServiceURL?: string; } export interface MapBoxOnlineReverseGeocodingServiceOptions { language?: string; customServiceURL?: string; apiKey: string; } export class MapBoxOnlineReverseGeocodingService extends ReverseGeocodingService { language?: string; customServiceURL?: string; }