Fetching, storing, and generating map tiles for use in Leaflet, Google maps, etc.
npm install maptile
Features
- Automatic canvas-based tile generation for GeoJSON points and polygons.
- Automatic polygon simplification using ogr2ogr (must have GDAL installed) for reducing complexities at high zoom levels.
- Helper projections (lat/lon, meters, pixels)
- Fit into custom/existing server structure; not forced to install standalone tile-server.
- Optional caching; live data when caching is off (or low).
- bounds offset to aid in drawing overlapping shapes from neighbor tiles that might not be caught by geospatial queries.
Forthcoming
- Documentation and tests, like every good module
- Overridable storage and fetch procedures, currently just storing and fetching from relative path. Would be nice to control where these went on a needs basis.
A couple of the math transforms were repurposed from Leaflet's source: https://github.com/Leaflet/Leaflet
Requirements
You'll need to install Cairo for canvas support. Check out the instructions here, it's fairly simple: http://github.com/learnboost/node-canvas.
Here is some code for using this currently, make sure to check out the example.js file.
// Define the maptile objectvar coolMap = path: __dirname + '/../public/tiles/some-map/{z}/{x}/{y}.png' { someKindaQuery; } // Get a map tile, in an express endpoint for example var { var coords = x: y: z: coolMap }