0.0.21 • Published 8 months ago

trackasia-gl-leaflet v0.0.21

Weekly downloads
-
License
ISC
Repository
github
Last release
8 months ago

Trackasia GL Leaflet

This is a binding from Trackasia GL JS to the familiar Leaflet API. It was originally developed for Mapbox (https://github.com/mapbox/mapbox-gl-leaflet) and was migrated to Trackasia from Maplibre.

Code example

var map = L.map('map').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.trackasiaGL({
    style: 'https://tiles.track-asia.com/tiles/v1/style-streets.json?key=public'
}).addTo(map);

Note that you can use any vector tile source useable by trackasia-gl. For instance, you can use OSM2VectorTiles with:

var gl = L.trackasiaGL({
	style: 'https://tiles.track-asia.com/tiles/v1/style-streets.json?key=public'
}).addTo(map);

Once you have created the leaflet layer, the trackasia-gl map object can be accessed using

gl.getTrackasiaMap()....
// add a source to the trackasia-gl layer
gl.getTrackasiaMap().addSource({...})

Examples

Code for these examples is hosted in the examples folder

Installation

Add a script tag referencing trackasia-gl-leaflet after adding leaflet and trackasia-gl-js in your website:

<!-- Leaflet -->
<link rel="stylesheet" href="https://unpkg.com/trackasia-leaflet@1.9.3/dist/leaflet.css">
<script src="https://unpkg.com/trackasia-leaflet@1.9.3/dist/leaflet.js"></script>

<!-- Trackasia GL -->
<script src='https://unpkg.com/trackasia-gl@1.0.5/dist/trackasia-gl.js'></script>
<link href='https://unpkg.com/trackasia-gl@1.0.5/dist/trackasia-gl.css' rel='stylesheet' />

<script src="https://unpkg.com/trackasia-gl-leaflet@0.0.21/leaflet-trackasia-gl.js"></script>

Motivation

This project makes it possible to easily add a trackasia-gl-js layer in your Leaflet map. When using trackasia-gl-leaflet, you won't be able to use some of the trackasia-gl-js features. Here are the main differences between a "pure" trackasia-gl-js map and a Leaflet map using trackasia-gl-leaflet:

  • No rotation / bearing / pitch support
  • Slower performances: When using trackasia-gl-leaflet, trackasia-gl-js is set as not interactive. Leaflet receives the touch/mouse events and updates the trackasia-gl-js map behind the scenes. Because trackasia-gl-js doesn't redraw as fast as Leaflet, the map can seem slower.

On the bright side, the trackasia-gl-leaflet binding will allow you to use all the leaflet features and plugins.

If you only need the trackasia-gl-js features (adding a map with a mapbox-style, adding a GeoJSON, etc.), you are probably better off using it directly.

API Reference

API Reference

Bug Reports & Feature Requests

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.

License

ISC © Trackasia ISC © Maplibre © Mapbox