import { BaseNative } from '..'; import { IProjection } from '../projections'; import { DefaultLatLonKeys, MapBounds, MapPos, NativeVector } from '../core'; import { FeatureCollection } from '../geometry/feature'; 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 BaseOSMOfflineGeocodingServiceOptions { maxResults?: number; autocomplete?: boolean; language?: string; } export interface OSMOfflineGeocodingServiceOptions extends BaseOSMOfflineGeocodingServiceOptions { path?: string; } export abstract class BaseOSMOfflineGeocodingService extends GeocodingService { maxResults?: number; autocomplete?: boolean; language?: string; } export class OSMOfflineGeocodingService extends BaseOSMOfflineGeocodingService {} export interface BaseOSMOfflineReverseGeocodingServiceOptions { language?: string; } export interface OSMOfflineReverseGeocodingServiceOptions extends BaseOSMOfflineReverseGeocodingServiceOptions { path?: string; } export interface MultiOSMOfflineGeocodingServiceOptions extends BaseOSMOfflineGeocodingServiceOptions {} export class MultiOSMOfflineGeocodingService extends BaseOSMOfflineGeocodingService { add(database: string); remove(database: string); } export abstract class BaseOSMOfflineReverseGeocodingService extends GeocodingService { language?: string; } export class OSMOfflineReverseGeocodingService extends BaseOSMOfflineReverseGeocodingService {} export interface MultiOSMOfflineReverseGeocodingServiceOptions extends BaseOSMOfflineReverseGeocodingServiceOptions {} export class MultiOSMOfflineReverseGeocodingService extends BaseOSMOfflineReverseGeocodingService { add(database: string); remove(database: string); } 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; }