UNPKG

leaflet-search

Version:

Leaflet Control for searching markers/features by attribute on map or remote searching in jsonp/ajax

70 lines (61 loc) 1.96 kB
/* this file is work in progress and represent an extension of the main plugin to support programmatically most famous geocoder services the base idea is: - any geocoder services is identified by name passed to the plugin option - any geocoder sub module implemnt custom parameters anc a custom callback to extract resulta in leaflet search format result - any geocoder accept only two parameters, api key and user key, passed to remote service any contributions is welcome <3 */ (function (factory) { if(typeof define === 'function' && define.amd) { //AMD define(['leaflet'], factory); } else if(typeof module !== 'undefined') { // Node/CommonJS module.exports = factory(require('leaflet')); } else { // Browser globals if(typeof window.L === 'undefined') throw 'Leaflet must be loaded first'; factory(window.L); } })(function (L) { L.Control.Search.include({ options: { geocoder: 'google', markerLocation: true, autoType: false, autoCollapse: true, minLength: 2 }, /* onAdd: function (map) { L.Control.Search.prototype.onAdd.call(this, map); console.log('Geocoder',this.options) },*/ geocoders: { /* 'google': { urlTmpl: "//maps.googleapis.com/maps/api/geocode/json?key={key}&address={text}" //todo others }, 'here': { urlTmpl: https://geocoder.ls.hereapi.com/6.2/geocode.json?apiKey={apiKey}&searchtext={text}" params: function(opts, text) { //opts is leaflet options input //text is input text searched return { 'apiKey': opts.apikey, 'format': 'json', 'q': text, 'jsonp': 'herejsoncallback', }; }, callback: function(resp) { //TODO refact resp data } "//nominatim.openstreetmap.org/search?" }*/ } }); });