diff --git a/src/nominatim.constant.ts b/src/nominatim.constant.ts index 4fe0fc0..d894f03 100644 --- a/src/nominatim.constant.ts +++ b/src/nominatim.constant.ts @@ -1,4 +1,4 @@ export const NominatimConstant = { - GEOCODING_ENDPOINT: "http://nominatim.openstreetmap.org/search", - REVERSE_GEOCODING_ENDPOINT: "http://nominatim.openstreetmap.org/reverse" + GEOCODING_ENDPOINT: "https://nominatim.openstreetmap.org/search", + REVERSE_GEOCODING_ENDPOINT: "https://nominatim.openstreetmap.org/reverse" }; diff --git a/src/nominatim.service.ts b/src/nominatim.service.ts index e055f13..074fa84 100644 --- a/src/nominatim.service.ts +++ b/src/nominatim.service.ts @@ -7,7 +7,7 @@ import { GeocodeConfig } from "./geocode.config"; import { ReverseGeocodeConfig } from "./reversegeocode.config"; import { GeocodeResponse } from "./geocode.response"; import { ReverseGeocodeResponse } from "./reversegeocode.response"; -import { Observable } from "rxjs/Observable"; +import { Observable } from "rxjs"; @Injectable() export class NominatimService { @@ -27,9 +27,10 @@ export class NominatimService { polygon_geojson = 1; } let params = new HttpParams(); - params.set("q", q); - params.set("addressdetails", addressdetails.toString()); - params.set("polygon_geojson", polygon_geojson.toString()); + params = params.append("format", 'json'); + params = params.append("q", q); + params = params.append("addressdetails", addressdetails.toString()); + params = params.append("polygon_geojson", polygon_geojson.toString()); return this.http.get(NominatimConstant.GEOCODING_ENDPOINT, { params: params }); @@ -46,11 +47,26 @@ export class NominatimService { if (polygon_geojson != 0 && polygon_geojson != 1) { polygon_geojson = 1; } + let lang = config["accept-language"]; + if (!lang) + { + lang= 'es'; + } + let zoom = config.zoom; + if (!zoom) + { + zoom = 8; + } let params = new HttpParams(); - params.set("lat", lat.toString()); - params.set("lon", lon.toString()); - params.set("addressdetails", addressdetails.toString()); - params.set("polygon_geojson", polygon_geojson.toString()); + + params = params.append("format", 'json'); + params = params.append("lat", lat.toString()); + params = params.append("lon", lon.toString()); + params = params.append("zoom", zoom.toString()); + params = params.append("addressdetails", addressdetails.toString()); + params = params.append("polygon_geojson", polygon_geojson.toString()); + params = params.append("accept-language", lang); + console.log('Params: ', params) return this.http.get(NominatimConstant.REVERSE_GEOCODING_ENDPOINT, { params: params }); diff --git a/src/reversegeocode.config.ts b/src/reversegeocode.config.ts index ba78c27..2908ce5 100644 --- a/src/reversegeocode.config.ts +++ b/src/reversegeocode.config.ts @@ -1,6 +1,8 @@ export interface ReverseGeocodeConfig { lat: number; lon: number; + zoom?: number; addressdetails?: number; polygon_geojson?: number; + 'accept-language'?: string; } diff --git a/src/reversegeocode.response.ts b/src/reversegeocode.response.ts index d95ae3e..6412942 100644 --- a/src/reversegeocode.response.ts +++ b/src/reversegeocode.response.ts @@ -13,4 +13,14 @@ export interface ReverseGeocodeResponse { readonly importance: number; readonly addresstype: string; readonly name: string; + readonly address?: { + country?: string; + state?: string; + county?: string; + city?: string; + suburb?: string; + 'major streets'?: string; + 'major and minor streets'?: string; + building?: string; + }; }