Skip to content
This repository has been archived by the owner on Jul 6, 2023. It is now read-only.

Latest commit

 

History

History
64 lines (47 loc) · 3.29 KB

README.md

File metadata and controls

64 lines (47 loc) · 3.29 KB

protomaps.js

A vector map renderer for the web.

npm Test suite minzipped size

This project is a complete web map renderer - including quality label layout, pattern fills, and icons - in as simple as possible of an implementation. It's an alternative to renderers like Mapbox GL JS in a fraction of the size.

Features

  • Render static maps to Canvas elements or interactive maps with Leaflet integration
  • Supports variable web fonts with multiple weights and italics in a single font file
  • Can read normal Z/X/Y tile URLs or offline, S3-hosted tile archives in PMTiles format
  • Full out-of-the-box support for right-to-left and Indic/Brahmic writing systems
  • Configurable via plain JavaScript
  • Extensible API for defining your own symbolizers

See the docs on what protomaps.js is, what protomaps.js is not

Demos

How to use

<script src="https://unpkg.com/protomaps@latest/dist/protomaps.min.js"></script>
<script>
    const map = L.map('map')
    var layer = protomaps.leafletLayer({url:'FILE.pmtiles OR ENDPOINT/{z}/{x}/{y}.pbf'})
    layer.addTo(map)
</script>

Exports of OpenStreetMap data in PMTiles format can be obtained from https://protomaps.com/bundles.

Benchmarking

  • Go into the benchmarks folder and run npm install and npm run start.
  • If you want to add benchmarks, take a look at the benchmarks/benchs/benchmarks.ts file

Benchmarking the felt style

  • Felt benchmarking is done in the map-benchmarks private repo. That compares the last @feltmaps/protomaps published package against the benchmarking-base branch of this repo

Project Status

The design is still evolving rapidly, so do not expect any kind of stable internal or external-facing API between minor versions. But please do report bugs and discuss requirements in the Issues.

See Also