From 7bfdf4de1a232df610f1f543b3c30fcc2b7126c3 Mon Sep 17 00:00:00 2001 From: Dr Ian Date: Fri, 1 Feb 2013 22:23:30 +0100 Subject: [PATCH 1/4] Change search to use OSM Nominatim API --- js/id/renderer/map.js | 4 ++++ js/id/ui/geocoder.js | 13 +++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/js/id/renderer/map.js b/js/id/renderer/map.js index 1f22a7c81..e076e33a5 100644 --- a/js/id/renderer/map.js +++ b/js/id/renderer/map.js @@ -346,6 +346,10 @@ iD.Map = function(context) { vZoomDiff = Math.log(Math.abs(vFactor)) / Math.LN2, newZoom = map.zoom() - Math.max(hZoomDiff, vZoomDiff); + if(newZoom > 19){ + newZoom = 19; + } + map.centerZoom(extent.center(), newZoom); } }; diff --git a/js/id/ui/geocoder.js b/js/id/ui/geocoder.js index ed37d2cb1..c54b8d6ad 100644 --- a/js/id/ui/geocoder.js +++ b/js/id/ui/geocoder.js @@ -6,18 +6,19 @@ iD.ui.geocoder = function() { function keydown() { if (d3.event.keyCode !== 13) return; d3.event.preventDefault(); - d3.json('http://a.tiles.mapbox.com/v3/openstreetmap.map-hn253zqn/geocode/' + - encodeURIComponent(this.value) + '.json', function(err, resp) { + var searchVal = this.value; + d3.json('http://nominatim.openstreetmap.org/search/' + + encodeURIComponent(searchVal) + '?limit=10&format=json', function(err, resp) { if (err) return hide(); hide(); - if (!resp.results.length) { + if (!resp.length) { return iD.ui.flash() .select('.content') .append('h3') - .text('No location found for "' + resp.query[0] + '"'); + .text('No location found for "' + searchVal + '"'); } - var bounds = resp.results[0][0].bounds; - map.extent(iD.geo.Extent([bounds[0], bounds[1]], [bounds[2], bounds[3]])); + var bounds = resp[0].boundingbox; + map.extent(iD.geo.Extent([parseFloat(bounds[3]), parseFloat(bounds[0])], [parseFloat(bounds[2]), parseFloat(bounds[1])])); }); } From 839844de274d3d3f6bcce3f39460fe598330629e Mon Sep 17 00:00:00 2001 From: Dr Ian Date: Fri, 1 Feb 2013 22:28:43 +0100 Subject: [PATCH 2/4] Convert tabs to spaces --- js/id/renderer/map.js | 6 +++--- js/id/ui/geocoder.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/js/id/renderer/map.js b/js/id/renderer/map.js index e076e33a5..5258f8701 100644 --- a/js/id/renderer/map.js +++ b/js/id/renderer/map.js @@ -346,9 +346,9 @@ iD.Map = function(context) { vZoomDiff = Math.log(Math.abs(vFactor)) / Math.LN2, newZoom = map.zoom() - Math.max(hZoomDiff, vZoomDiff); - if(newZoom > 19){ - newZoom = 19; - } + if(newZoom > 19){ + newZoom = 19; + } map.centerZoom(extent.center(), newZoom); } diff --git a/js/id/ui/geocoder.js b/js/id/ui/geocoder.js index c54b8d6ad..e6695792f 100644 --- a/js/id/ui/geocoder.js +++ b/js/id/ui/geocoder.js @@ -6,7 +6,7 @@ iD.ui.geocoder = function() { function keydown() { if (d3.event.keyCode !== 13) return; d3.event.preventDefault(); - var searchVal = this.value; + var searchVal = this.value; d3.json('http://nominatim.openstreetmap.org/search/' + encodeURIComponent(searchVal) + '?limit=10&format=json', function(err, resp) { if (err) return hide(); From f4975447f89cf9c2eba368ac03658d5e8951e53a Mon Sep 17 00:00:00 2001 From: Dr Ian Date: Fri, 1 Feb 2013 23:05:47 +0100 Subject: [PATCH 3/4] Limit zoom to 19 if geocode bounding box too small --- js/id/renderer/map.js | 4 ---- js/id/ui/geocoder.js | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/js/id/renderer/map.js b/js/id/renderer/map.js index 5258f8701..1f22a7c81 100644 --- a/js/id/renderer/map.js +++ b/js/id/renderer/map.js @@ -346,10 +346,6 @@ iD.Map = function(context) { vZoomDiff = Math.log(Math.abs(vFactor)) / Math.LN2, newZoom = map.zoom() - Math.max(hZoomDiff, vZoomDiff); - if(newZoom > 19){ - newZoom = 19; - } - map.centerZoom(extent.center(), newZoom); } }; diff --git a/js/id/ui/geocoder.js b/js/id/ui/geocoder.js index e6695792f..6d4d39d03 100644 --- a/js/id/ui/geocoder.js +++ b/js/id/ui/geocoder.js @@ -19,6 +19,7 @@ iD.ui.geocoder = function() { } var bounds = resp[0].boundingbox; map.extent(iD.geo.Extent([parseFloat(bounds[3]), parseFloat(bounds[0])], [parseFloat(bounds[2]), parseFloat(bounds[1])])); + if (map.zoom() > 19) map.zoom(19); }); } From 01e8f5f606ad5ce5affa54c8aac5fb7b91171af3 Mon Sep 17 00:00:00 2001 From: Dr Ian Date: Fri, 1 Feb 2013 23:08:11 +0100 Subject: [PATCH 4/4] Convert tabs to spaces --- js/id/ui/geocoder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/id/ui/geocoder.js b/js/id/ui/geocoder.js index 6d4d39d03..d7de24b37 100644 --- a/js/id/ui/geocoder.js +++ b/js/id/ui/geocoder.js @@ -19,7 +19,7 @@ iD.ui.geocoder = function() { } var bounds = resp[0].boundingbox; map.extent(iD.geo.Extent([parseFloat(bounds[3]), parseFloat(bounds[0])], [parseFloat(bounds[2]), parseFloat(bounds[1])])); - if (map.zoom() > 19) map.zoom(19); + if (map.zoom() > 19) map.zoom(19); }); }