/** * @class * Create osmNominatim service instance. * This service create nominatim query. */ class NominatimAPI{ /** * @param {Object} $http angular $http service * @param {Object} options set by the provider to set the url */ constructor($http, options) { this.url = options.url; this.$http = $http; this.cache = true; if (options.cache === false) { this.cache = false; } } /** * @param {Object/String} query * http://wiki.openstreetmap.org/wiki/Nominatim * @return {Promise} $http.get */ search(query) { //https://nominatim.openstreetmap.org/search //?X-Requested-With=overpass-turbo&format=json&q=vern-sur-seiche //params['accept-language'] = 'fr'; var params; if (typeof query === 'string' || !query) { params = { format: 'json', q: query }; } else { params = angular.copy(query); params.format = 'json'; } var config = { params: params, cache: this.cache }; let url = this.url + '/search'; return this.$http.get(url, config); } /** * @param {Object/String} query * http://wiki.openstreetmap.org/wiki/Nominatim * @return {Promise} $http.get */ reverse(query) { //https://nominatim.openstreetmap.org/reverse //?X-Requested-With=overpass-turbo&format=json&q=vern-sur-seiche //params['accept-language'] = 'fr'; var params; if (typeof query === 'string') { params = { format: 'json', q: query }; } else { params = angular.copy(query); params.format = 'json'; } var config = { params: params, cache: this.cache }; let url = this.url + '/reverse'; return this.$http.get(url, config); } /** * http://nominatim.openstreetmap.org/lookup?osm_ids=R146656,W104393803,N240109189 * @param {Object/String} query * http://wiki.openstreetmap.org/wiki/Nominatim * @return {Promise} $http.get */ lookup(query) { var params; if (typeof query === 'string') { params = { format: 'json', q: query }; } else { params = angular.copy(query); params.format = 'json'; } var config = { params: params, cache: this.cache }; let url = this.url + '/lookup'; return this.$http.get(url, config); } } NominatimAPI.$inject = ['$http']; export default NominatimAPI;