an easy geo data system across languages and databases

Ruby Gem

gem install mapplz
mapstore << [ lat, lng, { key: value } ]
Docs and Source

Go Package

go get
mapstore.Add_Geojson_Feature(`{ "type": "Feature", "geometry": { "type": "LineString", "coordinates": [[0, 0], [10, 10]] } }`)
Docs and Source

Node Package

npm install mapplz
mapstore.add(lat, lng, { key: value }, function(err, pt){ });
Docs and Source


Adds, updates, queries, and deletes geospatial data in PostGIS.

pt = mapstore << [ lat, lng ] = 42.183!


Adds, updates, queries, and deletes geospatial data in MongoDB.

query := make(map[string]interface{})
query["key"] = "value"
results := mapstore.where(query)


Adds, updates, queries, and deletes geospatial data without any database. So scripting is OK!

mapstore.near({ lat: 40, lng: -70 }, 2, function(err, twoNearest){ });


Sometimes the code doesn't look like your regular API. Parameters and types are left loose. The goal is to allow you to store your data with as little converting / ETL work as possible.

When you query the database, complexities of point-in-polygon or sort-by-distance queries are hidden inside the module.

Script or Server

If you're writing your first mapping script, you don't want to set up a server and a DB. You shouldn't need to. Just add this module.

You can always run mapstore.to_geojson or the equivalent function to export all of your data in an open format.

Readymade Maps

Export an HTML+JS map using OpenStreetMap and Leaflet.js as an embed or as a full HTML page.

Eating up all your garbage data

The Goals

Simplify mapping for developers everywhere by:
  • Consuming any geo data format via one ETL function
  • Hiding complexity of geo queries and indexing
  • Exporting in open data formats and instant interactive maps
  • Supporting multiple languages and databases

Well Tested

Travis CI regularly tests each function in Ruby, Go, and Node using PostGIS, MongoDB, and no-db settings.

Live Map Editor

Start Over   Map Builder