
Security News
minimatch Patches 3 High-Severity ReDoS Vulnerabilities
minimatch patched three high-severity ReDoS vulnerabilities that can stall the Node.js event loop, and Socket has released free certified patches.
leaflet-search
Advanced tools
Leaflet Control for searching markers/features by attribute on map or remote searching in jsonp/ajax
A Leaflet control that search markers/features location by custom property.
Support ajax/jsonp autocompletion and JSON data filter/remapping.
Licensed under the MIT license.
Copyright Stefano Cudini
Tested in Leaflet 0.7.x and 1.3.x

Demo: opengeo.tech/maps/leaflet-search
npm install --save leaflet-search
| Option | Default | Description |
|---|---|---|
| url | '' | url for search by ajax request, ex: "search.php?q={s}". Can be function to returns string for dynamic parameter setting |
| layer | null | layer where search markers(is a L.LayerGroup) |
| sourceData | null | function to fill _recordsCache, passed searching text by first param and callback in second |
| jsonpParam | null | jsonp param name for search by jsonp service, ex: "callback" |
| propertyLoc | 'loc' | field for remapping location, using array: ['latname','lonname'] for select double fields(ex. ['lat','lon'] ) support dotted format: 'prop.subprop.title' |
| propertyName | 'title' | property in marker.options(or feature.properties for vector layer) trough filter elements in layer, |
| formatData | null | callback for reformat all data from source to indexed data object |
| filterData | null | callback for filtering data from text searched, params: textSearch, allRecords |
| moveToLocation | null | callback run on location found, params: latlng, title, map |
| buildTip | null | function to return row tip html node(or html string), receive text tooltip in first param |
| container | '' | container id to insert Search Control |
| zoom | null | default zoom level for move to location |
| minLength | 1 | minimal text length for autocomplete |
| initial | true | search elements only by initial text |
| casesensitive | false | search elements in case sensitive text |
| autoType | true | complete input with first suggested result and select this filled-in text. |
| delayType | 400 | delay while typing for show tooltip |
| tooltipLimit | -1 | limit max results to show in tooltip. -1 for no limit, 0 for no results |
| tipAutoSubmit | true | auto map panTo when click on tooltip |
| firstTipSubmit | false | auto select first result con enter click |
| autoResize | true | autoresize on input change |
| collapsed | true | collapse search control at startup |
| autoCollapse | false | collapse search control after submit(on button or on tips if enabled tipAutoSubmit) |
| autoCollapseTime | 1200 | delay for autoclosing alert and collapse after blur |
| textErr | 'Location not found' | error message |
| textCancel | 'Cancel | title in cancel button |
| textPlaceholder | 'Search' | placeholder value |
| hideMarkerOnCollapse | false | remove circle and marker on search control collapsed |
| position | 'topleft' | position in the map |
| marker | {} | custom L.Marker or false for hide |
| marker.icon | false | custom L.Icon for maker location or false for hide |
| marker.animate | true | animate a circle over location found |
| marker.circle | L.CircleMarker options | draw a circle in location found |
| Event | Data | Description |
|---|---|---|
| 'search:locationfound' | {latlng, title, layer} | fired after moved and show markerLocation |
| 'search:expanded' | {} | fired after control was expanded |
| 'search:collapsed' | {} | fired after control was collapsed |
| Method | Arguments | Description |
|---|---|---|
| setLayer() | L.LayerGroup() | set layer search at runtime |
| showAlert() | 'Text message' | show alert message |
| searchText() | 'Text searched' | search text by external code |
(require src/leaflet-search.css)
Adding the search control to the map:
var searchLayer = L.layerGroup().addTo(map);
//... adding data in searchLayer ...
map.addControl( new L.Control.Search({layer: searchLayer}) );
//searchLayer is a L.LayerGroup contains searched markers
Short way:
var searchLayer = L.geoJson().addTo(map);
//... adding data in searchLayer ...
L.map('map', { searchControl: {layer: searchLayer} });
AMD module:
require(["leaflet", "leafletSearch"],function(L, LeafletSearch) {
//... initialize leaflet map and dataLayer ...
map.addControl( new LeafletSearch({
layer: dataLayer
}) );
});
Therefore the deployment require npm installed in your system.
npm install
npx grunt
This list is intended to be of utility for all developers who are looking web mapping sample code to solve complex problems of integration with other systems using Leaflet Control Search.
Anyone can add the link of your website
(spamming urls will be automatically deleted)
FAQs
Leaflet Control for searching markers/features by attribute on map or remote searching in jsonp/ajax
The npm package leaflet-search receives a total of 3,858 weekly downloads. As such, leaflet-search popularity was classified as popular.
We found that leaflet-search demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
minimatch patched three high-severity ReDoS vulnerabilities that can stall the Node.js event loop, and Socket has released free certified patches.

Research
/Security News
Socket uncovered 26 malicious npm packages tied to North Korea's Contagious Interview campaign, retrieving a live 9-module infostealer and RAT from the adversary's C2.

Research
An impersonated golang.org/x/crypto clone exfiltrates passwords, executes a remote shell stager, and delivers a Rekoobe backdoor on Linux.