universal-geocoder
Version:
Universal geocoding abstraction server-side and client-side with multiple built-in providers
108 lines • 4.23 kB
TypeScript
import { ExternalLoaderBody, ExternalLoaderHeaders, ExternalLoaderInterface, ExternalLoaderParams } from "../../ExternalLoader";
import { ErrorCallback, GeocodedResultsCallback, NominatimGeocoded, NominatimReverseQuery, NominatimReverseQueryObject, NominatimGeocodeQueryObject, NominatimGeocodeQuery, ProviderInterface, ProviderOptionsInterface } from "./..";
interface NominatimErrorResponse {
error: string;
}
export declare type NominatimOsmType = "node" | "way" | "relation";
export interface NominatimResult {
place_id: number;
licence: string;
osm_type: NominatimOsmType;
osm_id: number;
boundingbox: [string, string, string, string];
lat: string;
lon: string;
display_name: string;
category: string;
type: string;
importance: number;
icon: string;
address: {
attraction?: string;
pedestrian?: string;
house_name?: string;
house_number?: string;
road?: string;
retail?: string;
commercial?: string;
industrial?: string;
farmyard?: string;
farm?: string;
residental?: string;
city_block?: string;
quarter?: string;
allotments?: string;
neighbourhood?: string;
isolated_dwelling?: string;
croft?: string;
hamlet?: string;
city_district?: string;
district?: string;
borough?: string;
subdivision?: string;
suburb?: string;
municipality?: string;
city?: string;
town?: string;
village?: string;
region?: string;
state_district?: string;
state?: string;
county?: string;
postcode?: string;
country?: string;
country_code?: string;
continent?: string;
};
extratags?: {
phone?: string;
website?: string;
wikidata?: string;
wikipedia?: string;
wheelchair?: string;
opening_hours?: string;
};
namedetails?: {
name: string;
[name: string]: string;
};
geojson?: {
type: "Point";
coordinates: [number, number];
};
geokml?: string;
svg?: string;
geotext?: string;
}
export declare type NominatimResponse = NominatimErrorResponse | NominatimResult | NominatimResult[];
export interface NominatimProviderOptionsInterface extends ProviderOptionsInterface {
readonly host?: string;
readonly userAgent: string;
readonly referer?: string;
readonly countryCodes?: string[];
}
export declare const defaultNominatimProviderOptions: {
host: string;
userAgent: string;
useSsl?: boolean | undefined;
useJsonp?: boolean | undefined;
apiKey?: string | undefined;
};
declare type NominatimGeocodedResultsCallback = GeocodedResultsCallback<NominatimGeocoded>;
export default class NominatimProvider implements ProviderInterface<NominatimGeocoded> {
private externalLoader;
private options;
constructor(_externalLoader: ExternalLoaderInterface, options?: NominatimProviderOptionsInterface);
geocode(query: string | NominatimGeocodeQuery | NominatimGeocodeQueryObject): Promise<NominatimGeocoded[]>;
geocode(query: string | NominatimGeocodeQuery | NominatimGeocodeQueryObject, callback: NominatimGeocodedResultsCallback, errorCallback?: ErrorCallback): void;
geodecode(query: NominatimReverseQuery | NominatimReverseQueryObject): Promise<NominatimGeocoded[]>;
geodecode(query: NominatimReverseQuery | NominatimReverseQueryObject, callback: NominatimGeocodedResultsCallback, errorCallback?: ErrorCallback): void;
geodecode(latitude: number | string, longitude: number | string): Promise<NominatimGeocoded[]>;
geodecode(latitude: number | string, longitude: number | string, callback: NominatimGeocodedResultsCallback, errorCallback?: ErrorCallback): void;
private withCommonParams;
private getHeaders;
executeRequest(params: ExternalLoaderParams, callback: NominatimGeocodedResultsCallback, headers?: ExternalLoaderHeaders, body?: ExternalLoaderBody, errorCallback?: ErrorCallback): void;
static mapToGeocoded(result: NominatimResult): NominatimGeocoded;
}
export {};
//# sourceMappingURL=NominatimProvider.d.ts.map