
Security News
NVD Concedes Inability to Keep Pace with Surging CVE Disclosures in 2025
Security experts warn that recent classification changes obscure the true scope of the NVD backlog as CVE volume hits all-time highs.
react-leaflet-vectorgrid
Advanced tools
React wrapper of Leaflet.VectorGrid. Display gridded vector data (sliced GeoJSON, TopoJSON or protobuf vector tiles).
React wrapper of Leaflet.VectorGrid for react-leaflet.
Display gridded vector data (sliced GeoJSON, TopoJSON or protobuf vector tiles) in Leaflet 1.0.0
Tested with Leaflet 1.3.4 and React-Leaflet 1.9.1, React-Leaflet 2.1.4
Version | Demo | Description |
---|---|---|
react-leaflet@1.9.1 | JSFiddle , CodePen | Sliced GeoJSON |
react-leaflet@2.1.4 | JSFiddle , CodePen | Sliced GeoJSON |
npm install --save react-leaflet-vectorgrid
react-leaflet-vectorgrid
requires lodash
as peerDependency
(React, PropTypes, Leaflet, react-leaflet also should be installed)
npm install --save lodash
import { Map, TileLayer } from 'react-leaflet';
import VectorGrid from 'react-leaflet-vectorgrid';
const options = {
type: 'slicer',
data: {geojson},
idField: 'OBJECTID',
tooltip: 'NAME',
popup: (layer) => `<div>${layer.properties.NAME}</div>`,
style: {
weight: 0.5,
opacity: 1,
color: '#ccc',
fillColor: '#390870',
fillOpacity: 0.6,
fill: true,
stroke: true
},
hoverStyle: {
fillColor: '#390870',
fillOpacity: 1
},
activeStyle: {
fillColor: '#390870',
fillOpacity: 1
},
zIndex: 401
};
<Map center={[2.935403, 101.448205]} zoom={4}>
<TileLayer
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
/>
<VectorGrid {...options} onClick={this.onClick} />
</Map>
Option | Type | Default | Description |
---|---|---|---|
data | Object | {} | Required when using type slicer . A valid GeoJSON FeatureCollection object. |
type | String | 'slicer' | Decides between using VectoGrid.Slicer and VectorGrid.Protobuf. Available options: slicer , protobuf . |
idField | String | '' | A unique identifier field in the vector feature. |
tooltip | String | function | undefined |
popup | Function | undefined | Similar to tooltip , this props will be passed to leaflet bindPopup function to create popup for vector features. |
style | Object | undefined | Apply default style to all vector features. Use this props when not using vectorTileLayerStyles |
hoverStyle | Object | undefined | Style to apply to features on mouseover event. |
activeStyle | Object | undefined | Style to apply to features on click event. Can be use to show user selection when feature is clicked. Double click to clear selection. |
zIndex | Integer | undefined | Sets the VectorGrid z-index. |
interactive | Boolean | true | Whether VectorGrid fires Interactive Layer events. |
onClick | Function | undefined | Listens to VectorGrid click events. interactive option must be set to true . |
onMouseover | Function | undefined | Listens to VectorGrid mouseover events. interactive option must be set to true . |
onMouseout | Function | undefined | Listens to VectorGrid mouseout events. interactive option must be set to true . |
onDblclick | Function | undefined | Listens to VectorGrid dblclick events. interactive option must be set to true . |
import { Map, TileLayer } from 'react-leaflet';
import VectorGrid from 'react-leaflet-vectorgrid';
const options = {
type: 'protobuf',
url: 'https://free-{s}.tilehosting.com/data/v3/{z}/{x}/{y}.pbf.pict?key={key}'
vectorTileLayerStyles: { ... },
subdomains: 'abcd',
key: 'abcdefghi01234567890'
};
<Map center={[2.935403, 101.448205]} zoom={4}>
<TileLayer
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
/>
<VectorGrid {...options} />
</Map>
Option | Type | Default | Description |
---|---|---|---|
type | String | 'slicer' | Decides between using VectoGrid.Slicer and VectorGrid.Protobuf. Available options: slicer , protobuf . |
url | String | '' | Required when using type protobuf . Pass a url template that points to vector tiles (usually .pbf or .mvt ). |
subdomains | String | 'abc' | Akin to the subdomains option to L.TileLayer . |
accessKey | String | '' | Tile server access key. |
accessToken | String | '' | Tile server access token. |
vectorTileLayerStyles | Object | undefined | A data structure holding initial symbolizer definitions for the vector features. Refer Leaflet.VectorGrid doc for more info. |
This is compatible with version 2 of React-Leaflet, but you have to wrap the VectorGrid
using the withLeaflet
higher-order component to give it access to the new context mechanism. For example:
import { Map, withLeaflet } from 'react-leaflet';
import VectorGridDefault from 'react-leaflet-vectorgrid';
// wrap the VectorGrid component using `withLeaflet` HOC
const VectorGrid = withLeaflet(VectorGridDefault);
// use <VectorGrid /> component as you would use it in react-leaflet v1
Credits goes to all the contributors of the original work and everyone who contributed to this project.
MIT License
FAQs
React wrapper of Leaflet.VectorGrid. Display gridded vector data (sliced GeoJSON, TopoJSON or protobuf vector tiles).
The npm package react-leaflet-vectorgrid receives a total of 846 weekly downloads. As such, react-leaflet-vectorgrid popularity was classified as not popular.
We found that react-leaflet-vectorgrid 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
Security experts warn that recent classification changes obscure the true scope of the NVD backlog as CVE volume hits all-time highs.
Security Fundamentals
Attackers use obfuscation to hide malware in open source packages. Learn how to spot these techniques across npm, PyPI, Maven, and more.
Security News
Join Socket for exclusive networking events, rooftop gatherings, and one-on-one meetings during BSidesSF and RSA 2025 in San Francisco.