Leaflet geocoding controls
Simple Leaflet geocoding control, comes with an default set of providers:
<script src="http://olegsmith.github.com/leaflet.geocoding/leaflet.geocoding.js"></script> <script> var map = L.map('map').setView([55.751667, 37.617778], 13); L.control.scale().addTo(map); L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { maxZoom: 18 , attribution: '© OpenStreetMap contributors' }).addTo(map); var geocoding = new L.Geocoding({ apikeys : { 'bing' : 'bingKey' , 'nokia' : 'nokiaKey' } }); map.addControl(geocoding); </script>
<script> geocoding.geocode('address'); </script>
Name | type | default | description |
---|---|---|---|
provider | string | 'osm' | Current provider |
providers | object | {'osm' : function() {}, 'google' : function() {}, ...} | Providers geocode functions |
apikeys | object | {bing: 'bingKey', ...} | API keys |
apikeys.bing | string | Bing API key | |
apikeys.nokia | string | Nokia API key |
Name | argument type | description |
---|---|---|
geocode | string | Geocode |
setOptions | object | Set options |
<script> // OSM-like custom geocoding provider var custom_geocoding_provider = function(arg) { var that = this , query = arg.query , cb = arg.cb; $.ajax({ url : 'http://nominatim.openstreetmap.org/search' , dataType : 'jsonp' , jsonp : 'json_callback' , data : { 'q' : query , 'format' : 'json' } }) .done(function(data){ if (data.length>0) { var res=data[0]; cb({ query : query , content : res.display_name , latlng : new L.LatLng(res.lat, res.lon) , bounds : new L.LatLngBounds([res.boundingbox[0], res.boundingbox[2]], [res.boundingbox[1], res.boundingbox[3]]) }); } }); } // Add custom provider to provider list var geocoding = new L.Geocoding({ apikeys : { 'bing' : 'Anqm0F_JjIZvT0P3abS6KONpaBaKuTnITRrnYuiJCE0WOhH6ZbE4DzeT6brvKVR5' , 'nokia' : 'HGHGJHgdbndbmbsdf7675wefdvvdsnb' } , providers : { 'custom' : custom_geocoding_provider } }); // Set custom provider default geocoding.setOptions({provider:'custom'}) // Geocoding geocoding.geocode('address') </script>