
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@maplibre/maplibre-gl-leaflet
Advanced tools
Supports adding Maplibre GL Web to a Leaflet Map as a layer
This is a binding from MapLibre GL JS to the familiar Leaflet API. It was originally developed for Mapbox (https://github.com/mapbox/mapbox-gl-leaflet) and was migrated to MapLibre after Mapbox changed its license.
var map = L.map("map", {
maxBounds: [[180, -Infinity], [-180, Infinity]], // restrict bounds to avoid max latitude issues with MapLibre GL
maxBoundsViscosity: 1, // make the max bounds "solid" so users cannot pan past them
minZoom: 1 // prevent sync issues at zoom 0
}).setView([38.912753, -77.032194], 15);
L.marker([38.912753, -77.032194])
.bindPopup("Hello <b>Leaflet GL</b>!<br>Whoa, it works!")
.addTo(map)
.openPopup();
var gl = L.maplibreGL({
style: "mapbox://styles/mapbox/bright-v8",
}).addTo(map);
Note that you can use any vector tile source useable by maplibre-gl. For instance, you can use OSM2VectorTiles with:
var gl = L.maplibreGL({
style:
"https://api.maptiler.com/maps/topo/style.json?key=<YOUR_MAPTILER_API_KEY>",
}).addTo(map);
Once you have created the leaflet layer, the maplibre-gl map object can be accessed using
gl.getMaplibreMap()....
// add a source to the maplibre-gl layer
gl.getMaplibreMap().addSource({...})
Code for these examples is hosted in the examples folder
Add a script tag referencing maplibre-gl-leaflet after adding leaflet and maplibre-gl-js in your website:
<!-- Leaflet -->
<link
rel="stylesheet"
href="https://unpkg.com/leaflet@1.8.0/dist/leaflet.css"
/>
<script src="https://unpkg.com/leaflet@1.8.0/dist/leaflet.js"></script>
<!-- Maplibre GL -->
<link
href="https://unpkg.com/maplibre-gl@2.2.1/dist/maplibre-gl.css"
rel="stylesheet"
/>
<script src="https://unpkg.com/maplibre-gl@2.2.1/dist/maplibre-gl.js"></script>
<script src="https://unpkg.com/@maplibre/maplibre-gl-leaflet@0.0.20/leaflet-maplibre-gl.js"></script>
This project makes it possible to easily add a maplibre-gl-js layer in your Leaflet map. When using maplibre-gl-leaflet, you won't be able to use some of the maplibre-gl-js features. Here are the main differences between a "pure" maplibre-gl-js map and a Leaflet map using maplibre-gl-leaflet:
maxBounds: [[180, -Infinity], [-180, Infinity]]
and maxBoundsViscosity: 1
on your Leaflet Map
to prevent users from panning past the minimum and maximum latitude supported by MapLibre.minZoom: 1
is also recommended to reduce some issues with the map syncing at zoom level 0.On the bright side, the maplibre-gl-leaflet binding will allow you to use all the leaflet features and plugins.
If you only need the maplibre-gl-js features (adding a map with a mapbox-style, adding a GeoJSON, etc.), you are probably better off using it directly.
Please use the issue tracker to report any bugs or file feature requests. You can fork this jsfiddle template to reproduce a bug, then share the URL of your fork in the GitHub issue.
FAQs
Supports adding Maplibre GL Web to a Leaflet Map as a layer
We found that @maplibre/maplibre-gl-leaflet demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers 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.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.