npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

leaflet-search

v4.0.0

Published

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

Downloads

37,436

Readme

Leaflet Control Search

npm version

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

Image

Where

Demo: opengeo.tech/maps/leaflet-search

Source code: Github NPM

Install

npm install --save leaflet-search

Options

| 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 |

Events

| 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 |

Methods

| 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 |

Examples

(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
	}) );
});

Build

Therefore the deployment require npm installed in your system.

npm install
npx grunt

Use Cases

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)