MCPcopy
hub / github.com/mariusandra/pigeon-maps

github.com/mariusandra/pigeon-maps @v0.22.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.22.0 ↗
87 symbols 142 edges 17 files 0 documented · 0%
README

Pigeon Maps - ReactJS maps without external dependencies

npm version minified minified + gzipped

Demo: https://pigeon-maps.js.org/ (using maps from MapTiler, OSM and Stamen)

What is it?

Are you tired of waiting 3 seconds to parse 200kb of Google Maps JavaScript just to display a few tiles and a marker? 140kb of minified Leaflet too much?

Welcome to the club!

This project aims to provide a performance-first React-centric extendable map engine.

We're currently at: - minified - minified + gzipped

Implemented:

  • Show tiles
  • Arbitrary overlays (markers, etc)
  • Move the map by dragging
  • Move the map by touch on mobile
  • Zooming with the scroll wheel
  • Zooming by touch
  • Fractional zooming (e.g. to level 12.2)
  • Zoom without flickering (keep old tiles until new ones load)
  • Smooth animated zooming
  • Slide when dragging and letting go
  • Event handling (clicks, etc)
  • Double click and double tap zooming
  • Option to block dragging with one finger and mouse wheel scrolling without holding meta key
  • Enable/disable touch and mouse events as needed - you could make a 100% static server rendered react map
  • Support for 100% width/height containers
  • Markers
  • Overlays
  • Draggable Overlays
  • Zoom Controls

Missing: - Double tap and then swipe touch zooming - Many other components

Install

Read the docs here!

Yeah, but why "pigeon"??

Pigeons are experts in magnetoreception. Good pigeons can find their way home from anywhere.

Magnets were essential in making the first maps. With a good map you can find your way home from anywhere.

Thus, pigeon.

Source: https://en.wikipedia.org/wiki/Homing_pigeon

Extension points exported contracts — how you extend this code

Bounds (Interface)
(no doc)
src/types.ts
ZoomProps (Interface)
(no doc)
src/controls/ZoomControl.tsx
DraggableProps (Interface)
(no doc)
src/overlays/Draggable.tsx
MapProps (Interface)
(no doc)
src/types.ts
DraggableState (Interface)
(no doc)
src/overlays/Draggable.tsx
TileComponentProps (Interface)
(no doc)
src/types.ts
GeoJsonProps (Interface)
(no doc)
src/overlays/GeoJson.tsx
Tile (Interface)
(no doc)
src/types.ts

Core symbols most depended-on inside this repo

setState
called by 16
demo/Demo.tsx
getMousePixel
called by 12
src/map/Map.tsx
tile2lng
called by 7
src/map/Map.tsx
tile2lat
called by 7
src/map/Map.tsx
lng2tile
called by 6
src/map/Map.tsx
lat2tile
called by 6
src/map/Map.tsx
wa
called by 6
src/overlays/Draggable.tsx
wr
called by 6
src/overlays/Draggable.tsx

Shape

Function 56
Interface 18
Method 11
Class 2

Languages

TypeScript100%

Modules by API surface

src/map/Map.tsx24 symbols
src/overlays/GeoJson.tsx15 symbols
demo/Demo.tsx13 symbols
src/overlays/Draggable.tsx10 symbols
src/types.ts9 symbols
src/providers.ts5 symbols
src/utils.ts3 symbols
src/overlays/Marker.tsx3 symbols
src/overlays/Overlay.tsx2 symbols
src/controls/ZoomControl.tsx2 symbols
demo/PigeonIcon.tsx1 symbols

Dependencies from manifests, versioned

@babel/cli7.16.8 · 1×
@babel/core7.16.12 · 1×
@babel/plugin-proposal-class-properties7.16.7 · 1×
@babel/plugin-proposal-decorators7.16.7 · 1×
@babel/plugin-proposal-do-expressions7.16.7 · 1×
@babel/plugin-proposal-export-default-from7.16.7 · 1×
@babel/plugin-proposal-export-namespace-from7.16.7 · 1×
@babel/plugin-proposal-function-bind7.16.7 · 1×
@babel/plugin-proposal-function-sent7.16.7 · 1×
@babel/plugin-proposal-json-strings7.16.7 · 1×
@babel/plugin-proposal-logical-assignment-operators7.16.7 · 1×
@babel/plugin-proposal-nullish-coalescing-operator7.16.7 · 1×

For agents

$ claude mcp add pigeon-maps \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact