diff --git a/modules/services/index.js b/modules/services/index.js index 1f20acbc5..ea8f600c7 100644 --- a/modules/services/index.js +++ b/modules/services/index.js @@ -7,7 +7,7 @@ import serviceWikipedia from './wikipedia'; export var services = { mapillary: serviceMapillary, - nominatim: serviceNominatim, + geocoder: serviceNominatim, osm: serviceOsm, taginfo: serviceTaginfo, wikidata: serviceWikidata, diff --git a/modules/services/nominatim.js b/modules/services/nominatim.js index c1277f72a..d17d9cb8e 100644 --- a/modules/services/nominatim.js +++ b/modules/services/nominatim.js @@ -43,6 +43,11 @@ export default { callback(null, result.address.country_code); } ); + }, + + search: function (val, callback) { + var searchVal = encodeURIComponent(val); + d3.json('https://nominatim.openstreetmap.org/search/' + searchVal + '?limit=10&format=json', callback); } }; diff --git a/modules/ui/feature_list.js b/modules/ui/feature_list.js index 68d9dc616..f5e27572d 100644 --- a/modules/ui/feature_list.js +++ b/modules/ui/feature_list.js @@ -5,6 +5,8 @@ import { geoExtent, geoChooseEdge } from '../geo/index'; import { modeSelect } from '../modes/index'; import { osmEntity } from '../osm/index'; import { svgIcon } from '../svg/index'; +import { services } from '../services/index'; + import { utilDisplayName, utilDisplayType, @@ -181,7 +183,7 @@ export function uiFeatureList(context) { .data([0]) .enter().append('button') .attr('class', 'geocode-item') - .on('click', geocode) + .on('click', geocoderSearch) .append('div') .attr('class', 'label') .append('span') @@ -270,9 +272,8 @@ export function uiFeatureList(context) { } - function geocode() { - var searchVal = encodeURIComponent(search.property('value')); - d3.json('https://nominatim.openstreetmap.org/search/' + searchVal + '?limit=10&format=json', function(err, resp) { + function geocoderSearch() { + services.geocoder.search(search.property('value'), function (err, resp) { geocodeResults = resp || []; drawList(); });