Update control geocoder to v1.5.5.

This commit is contained in:
David Molineus committed 2017-10-17 09:56:11 +02:00
1 parent a2cdfddcc6
commit ed594cfdd1
9 files changed
+34 -23

No files matched your search

+24 -13
View File
@@ -132,17 +132,19 @@ module.exports = {
_geocode: function(suggest) {
var requestCount = ++this._requestCount,
mode = suggest ? 'suggest' : 'geocode';
mode = suggest ? 'suggest' : 'geocode',
eventData = {input: this._input.value};
this._lastGeocode = this._input.value;
if (!suggest) {
this._clearResults();
}
this.fire('start' + mode);
this.fire('start' + mode, eventData);
this.options.geocoder[mode](this._input.value, function(results) {
if (requestCount === this._requestCount) {
this.fire('finish' + mode);
eventData.results = results;
this.fire('finish' + mode, eventData);
this._geocodeResult(results, suggest);
}
}, this);
@@ -608,18 +610,26 @@ var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefi
module.exports = {
"class": L.Class.extend({
options: {
serviceUrl: 'https://api.tiles.mapbox.com/v4/geocode/mapbox.places-v1/'
serviceUrl: 'https://api.tiles.mapbox.com/v4/geocode/mapbox.places-v1/',
geocodingQueryParams: {},
reverseQueryParams: {}
},
initialize: function(accessToken, options) {
L.setOptions(this, options);
this._accessToken = accessToken;
this.options.geocodingQueryParams.access_token = accessToken;
this.options.reverseQueryParams.access_token = accessToken;
},
geocode: function(query, cb, context) {
Util.getJSON(this.options.serviceUrl + encodeURIComponent(query) + '.json', {
access_token: this._accessToken
}, function(data) {
var params = this.options.geocodingQueryParams;
if (typeof params.proximity !== 'undefined'
&& params.proximity.hasOwnProperty('lat')
&& params.proximity.hasOwnProperty('lng'))
{
params.proximity = params.proximity.lng + ',' + params.proximity.lat;
}
Util.getJSON(this.options.serviceUrl + encodeURIComponent(query) + '.json', params, function(data) {
var results = [],
loc,
latLng,
@@ -628,7 +638,7 @@ module.exports = {
for (var i = 0; i <= data.features.length - 1; i++) {
loc = data.features[i];
latLng = L.latLng(loc.center.reverse());
if(loc.hasOwnProperty('bbox'))
if (loc.hasOwnProperty('bbox'))
{
latLngBounds = L.latLngBounds(L.latLng(loc.bbox.slice(0, 2).reverse()), L.latLng(loc.bbox.slice(2, 4).reverse()));
}
@@ -653,9 +663,7 @@ module.exports = {
},
reverse: function(location, scale, cb, context) {
Util.getJSON(this.options.serviceUrl + encodeURIComponent(location.lng) + ',' + encodeURIComponent(location.lat) + '.json', {
access_token: this._accessToken
}, function(data) {
Util.getJSON(this.options.serviceUrl + encodeURIComponent(location.lng) + ',' + encodeURIComponent(location.lat) + '.json', this.options.reverseQueryParams, function(data) {
var results = [],
loc,
latLng,
@@ -664,7 +672,7 @@ module.exports = {
for (var i = 0; i <= data.features.length - 1; i++) {
loc = data.features[i];
latLng = L.latLng(loc.center.reverse());
if(loc.hasOwnProperty('bbox'))
if (loc.hasOwnProperty('bbox'))
{
latLngBounds = L.latLngBounds(L.latLng(loc.bbox.slice(0, 2).reverse()), L.latLng(loc.bbox.slice(2, 4).reverse()));
}
@@ -1043,6 +1051,9 @@ module.exports = {
results.push({
name: this._deocodeFeatureName(f),
html: this.options.htmlTemplate ?
this.options.htmlTemplate(f)
: undefined,
center: latLng,
bbox: bbox,
properties: f.properties
+1 -1
View File
@@ -1 +1 @@
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.leafletControlGeocoder=e()}}(function(){return function e(t,o,n){function s(r,a){if(!o[r]){if(!t[r]){var l="function"==typeof require&&require;if(!a&&l)return l(r,!0);if(i)return i(r,!0);var c=new Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c}var d=o[r]={exports:{}};t[r][0].call(d.exports,function(e){var o=t[r][1][e];return s(o?o:e)},d,d.exports,e,t,o,n)}return o[r].exports}for(var i="function"==typeof require&&require,r=0;r<n.length;r++)s(n[r]);return s}({1:[function(e,t,o){(function(o){var n="undefined"!=typeof window?window.L:"undefined"!=typeof o?o.L:null,s=e("./geocoders/nominatim").class;t.exports={class:n.Control.extend({options:{showResultIcons:!1,collapsed:!0,expand:"click",position:"topright",placeholder:"Search...",errorMessage:"Nothing found.",suggestMinLength:3,suggestTimeout:250,defaultMarkGeocode:!0},includes:n.Mixin.Events,initialize:function(e){n.Util.setOptions(this,e),this.options.geocoder||(this.options.geocoder=new s),this._requestCount=0},onAdd:function(e){var t,o="leaflet-control-geocoder",s=n.DomUtil.create("div",o+" leaflet-bar"),i=n.DomUtil.create("button",o+"-icon",s),r=this._form=n.DomUtil.create("div",o+"-form",s);return this._map=e,this._container=s,i.innerHTML="&nbsp;",i.type="button",t=this._input=n.DomUtil.create("input","",r),t.type="text",t.placeholder=this.options.placeholder,this._errorElement=n.DomUtil.create("div",o+"-form-no-error",s),this._errorElement.innerHTML=this.options.errorMessage,this._alts=n.DomUtil.create("ul",o+"-alternatives leaflet-control-geocoder-alternatives-minimized",s),n.DomEvent.disableClickPropagation(this._alts),n.DomEvent.addListener(t,"keydown",this._keydown,this),n.DomEvent.addListener(t,"blur",function(){this.options.collapsed&&!this._preventBlurCollapse&&this._collapse(),this._preventBlurCollapse=!1},this),this.options.collapsed?"click"===this.options.expand?n.DomEvent.addListener(i,"click",function(e){0===e.button&&2!==e.detail&&this._toggle()},this):(n.DomEvent.addListener(i,"mouseover",this._expand,this),n.DomEvent.addListener(i,"mouseout",this._collapse,this),this._map.on("movestart",this._collapse,this)):(n.DomEvent.addListener(i,"click",function(e){this._geocode(e)},this),this._expand()),this.options.defaultMarkGeocode&&this.on("markgeocode",this.markGeocode,this),this.on("startgeocode",function(){n.DomUtil.addClass(this._container,"leaflet-control-geocoder-throbber")},this),this.on("finishgeocode",function(){n.DomUtil.removeClass(this._container,"leaflet-control-geocoder-throbber")},this),n.DomEvent.disableClickPropagation(s),s},_geocodeResult:function(e,t){if(t||1!==e.length)if(e.length>0){this._alts.innerHTML="",this._results=e,n.DomUtil.removeClass(this._alts,"leaflet-control-geocoder-alternatives-minimized");for(var o=0;o<e.length;o++)this._alts.appendChild(this._createAlt(e[o],o))}else n.DomUtil.addClass(this._errorElement,"leaflet-control-geocoder-error");else this._geocodeResultSelected(e[0])},markGeocode:function(e){return e=e.geocode||e,this._map.fitBounds(e.bbox),this._geocodeMarker&&this._map.removeLayer(this._geocodeMarker),this._geocodeMarker=new n.Marker(e.center).bindPopup(e.html||e.name).addTo(this._map).openPopup(),this},_geocode:function(e){var t=++this._requestCount,o=e?"suggest":"geocode";this._lastGeocode=this._input.value,e||this._clearResults(),this.fire("start"+o),this.options.geocoder[o](this._input.value,function(n){t===this._requestCount&&(this.fire("finish"+o),this._geocodeResult(n,e))},this)},_geocodeResultSelected:function(e){this.options.collapsed||this._clearResults(),this.fire("markgeocode",{geocode:e})},_toggle:function(){this._container.className.indexOf("leaflet-control-geocoder-expanded")>=0?this._collapse():this._expand()},_expand:function(){n.DomUtil.addClass(this._container,"leaflet-control-geocoder-expanded"),this._input.select(),this.fire("expand")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-geocoder-expanded",""),n.DomUtil.addClass(this._alts,"leaflet-control-geocoder-alternatives-minimized"),n.DomUtil.removeClass(this._errorElement,"leaflet-control-geocoder-error"),this.fire("collapse")},_clearResults:function(){n.DomUtil.addClass(this._alts,"leaflet-control-geocoder-alternatives-minimized"),this._selection=null,n.DomUtil.removeClass(this._errorElement,"leaflet-control-geocoder-error")},_createAlt:function(e,t){var o=n.DomUtil.create("li",""),s=n.DomUtil.create("a","",o),i=this.options.showResultIcons&&e.icon?n.DomUtil.create("img","",s):null,r=e.html?void 0:document.createTextNode(e.name),a=function(t){this._preventBlurCollapse=!0,n.DomEvent.stop(t),this._geocodeResultSelected(e),n.DomEvent.on(o,"click",function(){this.options.collapsed&&this._collapLine truncated
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.leafletControlGeocoder=e()}}(function(){return function e(t,o,n){function s(r,a){if(!o[r]){if(!t[r]){var l="function"==typeof require&&require;if(!a&&l)return l(r,!0);if(i)return i(r,!0);var c=new Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c}var d=o[r]={exports:{}};t[r][0].call(d.exports,function(e){var o=t[r][1][e];return s(o||e)},d,d.exports,e,t,o,n)}return o[r].exports}for(var i="function"==typeof require&&require,r=0;r<n.length;r++)s(n[r]);return s}({1:[function(e,t,o){(function(o){var n="undefined"!=typeof window?window.L:void 0!==o?o.L:null,s=e("./geocoders/nominatim").class;t.exports={class:n.Control.extend({options:{showResultIcons:!1,collapsed:!0,expand:"click",position:"topright",placeholder:"Search...",errorMessage:"Nothing found.",suggestMinLength:3,suggestTimeout:250,defaultMarkGeocode:!0},includes:n.Mixin.Events,initialize:function(e){n.Util.setOptions(this,e),this.options.geocoder||(this.options.geocoder=new s),this._requestCount=0},onAdd:function(e){var t,o="leaflet-control-geocoder",s=n.DomUtil.create("div",o+" leaflet-bar"),i=n.DomUtil.create("button",o+"-icon",s),r=this._form=n.DomUtil.create("div",o+"-form",s);return this._map=e,this._container=s,i.innerHTML="&nbsp;",i.type="button",t=this._input=n.DomUtil.create("input","",r),t.type="text",t.placeholder=this.options.placeholder,this._errorElement=n.DomUtil.create("div",o+"-form-no-error",s),this._errorElement.innerHTML=this.options.errorMessage,this._alts=n.DomUtil.create("ul",o+"-alternatives leaflet-control-geocoder-alternatives-minimized",s),n.DomEvent.disableClickPropagation(this._alts),n.DomEvent.addListener(t,"keydown",this._keydown,this),n.DomEvent.addListener(t,"blur",function(){this.options.collapsed&&!this._preventBlurCollapse&&this._collapse(),this._preventBlurCollapse=!1},this),this.options.collapsed?"click"===this.options.expand?n.DomEvent.addListener(i,"click",function(e){0===e.button&&2!==e.detail&&this._toggle()},this):(n.DomEvent.addListener(i,"mouseover",this._expand,this),n.DomEvent.addListener(i,"mouseout",this._collapse,this),this._map.on("movestart",this._collapse,this)):(n.DomEvent.addListener(i,"click",function(e){this._geocode(e)},this),this._expand()),this.options.defaultMarkGeocode&&this.on("markgeocode",this.markGeocode,this),this.on("startgeocode",function(){n.DomUtil.addClass(this._container,"leaflet-control-geocoder-throbber")},this),this.on("finishgeocode",function(){n.DomUtil.removeClass(this._container,"leaflet-control-geocoder-throbber")},this),n.DomEvent.disableClickPropagation(s),s},_geocodeResult:function(e,t){if(t||1!==e.length)if(e.length>0){this._alts.innerHTML="",this._results=e,n.DomUtil.removeClass(this._alts,"leaflet-control-geocoder-alternatives-minimized");for(var o=0;o<e.length;o++)this._alts.appendChild(this._createAlt(e[o],o))}else n.DomUtil.addClass(this._errorElement,"leaflet-control-geocoder-error");else this._geocodeResultSelected(e[0])},markGeocode:function(e){return e=e.geocode||e,this._map.fitBounds(e.bbox),this._geocodeMarker&&this._map.removeLayer(this._geocodeMarker),this._geocodeMarker=new n.Marker(e.center).bindPopup(e.html||e.name).addTo(this._map).openPopup(),this},_geocode:function(e){var t=++this._requestCount,o=e?"suggest":"geocode",n={input:this._input.value};this._lastGeocode=this._input.value,e||this._clearResults(),this.fire("start"+o,n),this.options.geocoder[o](this._input.value,function(s){t===this._requestCount&&(n.results=s,this.fire("finish"+o,n),this._geocodeResult(s,e))},this)},_geocodeResultSelected:function(e){this.options.collapsed||this._clearResults(),this.fire("markgeocode",{geocode:e})},_toggle:function(){this._container.className.indexOf("leaflet-control-geocoder-expanded")>=0?this._collapse():this._expand()},_expand:function(){n.DomUtil.addClass(this._container,"leaflet-control-geocoder-expanded"),this._input.select(),this.fire("expand")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-geocoder-expanded",""),n.DomUtil.addClass(this._alts,"leaflet-control-geocoder-alternatives-minimized"),n.DomUtil.removeClass(this._errorElement,"leaflet-control-geocoder-error"),this.fire("collapse")},_clearResults:function(){n.DomUtil.addClass(this._alts,"leaflet-control-geocoder-alternatives-minimized"),this._selection=null,n.DomUtil.removeClass(this._errorElement,"leaflet-control-geocoder-error")},_createAlt:function(e,t){var o=n.DomUtil.create("li",""),s=n.DomUtil.create("a","",o),i=this.options.showResultIcons&&e.icon?n.DomUtil.create("img","",s):null,r=e.html?void 0:document.createTextNode(e.name),a=function(t){this._preventBlurCollapse=!0,n.DomEvent.stop(t),this._geocodeResultSelected(e),n.DomEvent.on(o,"click",function(){thisLine truncated
+1 -1
View File
@@ -160,7 +160,7 @@ An object that represents a result from a geocoding query.
| Property | Type | Description |
| ---------- | ---------------- | ------------------------------------- |
| name | String | Name of found location |
| bounds | L.LatLngBounds | The bounds of the location |
| bbox | L.LatLngBounds | The bounds of the location |
| center | L.LatLng | The center coordinate of the location |
| icon | String | URL for icon representing result; optional |
| html | String | (optional) HTML formatted representation of the name |
+3 -3
View File
@@ -1,14 +1,14 @@
{
"name": "leaflet-control-geocoder",
"version": "1.5.4",
"version": "1.5.5",
"homepage": "https://github.com/perliedman/leaflet-control-geocoder",
"authors": [
"Per Liedman <per@liedman.net>"
],
"description": "Extendable geocoder with builtin OSM/Nominatim support",
"main": [
"Control.Geocoder.js",
"Control.Geocoder.css",
"dist/Control.Geocoder.js",
"dist/Control.Geocoder.css",
"images/geocoder.png",
"images/throbber.gif"
],
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "leaflet-control-geocoder",
"version": "1.5.4",
"version": "1.5.5",
"description": "Extendable geocoder with builtin support for Nominatim, Bing, Google, Mapbox, Photon, What3Words, MapQuest, Mapzen, HERE",
"main": "dist/Control.Geocoder.js",
"scripts": {