Skip to content

Instantly share code, notes, and snippets.

@mad
Created March 26, 2012 17:31
Show Gist options
  • Save mad/2207010 to your computer and use it in GitHub Desktop.
Save mad/2207010 to your computer and use it in GitHub Desktop.

Deps:

jquery jquery ui openlayers

function installSearch() {
$("#search>#query").autocomplete({
source: function (request, response) {
var query = request.term;
Utils.searchAddress(query, function(places) {
response(places.map(function(place) {
return {
label: place["display_name"],
value: place["display_name"],
option: {
lat: +place["lat"],
lon: +place["lon"]
}
};
}));
});
},
select: function(event, ui) {
var lat = ui.item.option.lat;
var lon = ui.item.option.lon;
map.setCenter(
new OpenLayers.LonLat(lon, lat)
.transform(map.displayProjection, map.projection));
return false;
}
});
}
<div id="search">
<input id="query" type="text" style="width:100%;" placeholder="Введите запрос..."></input>
</div>
"use strict";
window.Utils = {
searchAddress: function(address, cb) {
$.ajax({
url: "http://nominatim.openstreetmap.org/search",
data: {
format: "json",
q: address,
addressdetails: 1,
limit: 10,
countrycodes: "ru"
},
global: false,
success: function(data) {
cb(data);
},
error: function() {
cb(null);
}
});
},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment