Cartes.io

Create live, community-driven, and anonymous maps and markers for anything.

123
6
PHP

About

This is an open source project based on Laravel 8 (upgraded from 5.7). Feel free to fork and use! This repo is the code behind Cartes.io.

The API docs are available in our wiki.

Want to just test out the site? There’s a demo map, or you can create your own map.

Using Cartes.io

You are free to use Cartes.io and/or it’s API free of charge. No authentication is required.

Please consider donating/sponsoring the project!

Use cases

You can create maps for anything! You can explore the existing public maps on the site, or get inspired with a few ideas here:

  • Do you have a couple of favorite restaurants? Create a map marking the spot so that you can always check back in and share your discoveries with friends
  • Friends/family from out of town coming to visit you? Create a map with all the helpful local destinations, like the best bakery or the nearest family doctor
  • Going hiking? Create a map showing where you plan to be, and regularly create new markers as you pass important checkpoints. Share the map with friends/family in case you get lost
  • Does your town have a few “little free libraries”? Create a map of where they are and share it with your community on Facebook or wherever
  • Going out to protest? Create a public community-driven map so that everyone can mark dangerous markers and be aware of what’s going on when and where
  • Own a fleet of vehicles? Create markers for each vehicle and add new locations to each marker as the vehicle moves! You’ll have a history of locations for each vehicle and you’ll be able to see where its been, and when

Notable maps created

Some awesome maps have already been created by the community and shared publicly.

Note, to see markers on some of these maps, you need to go into “Map display options”, and then check the “Show all markers” checkbox.

Interact with in Python

See the Cartes.io package at https://pypi.org/project/py-cartes-io/ - pip install py-cartes-io, which allows you to interact with the Cartes.io API in a fluent Pythonic way.

Interact with in JS

See the Cartes.io NPM package at https://www.npmjs.com/package/@m-media/npm-cartes-io - npm install @m-media/npm-cartes-io, which allows you to interact with the Cartes.io API in a fluent way in JS.

Interact with using iFrames

Cartes.io supports embedding maps on any site and also sends postMessages so your site can listen to map events. See the iFrame docs.

Development installation

After running composer and npm, run the following commands to create the permissions and roles:

  • php artisan migrate
  • php artisan make:permissions

Running the tests

Run tests with composer test.

Roadmap

The general plan is that this repo will be simplified to containing just the core app and its API, while the frontend will be developed in a seperate repo, here. If you’re a frontend developer, please feel free to contribute on that repo to the development of the web-app.

Thanks to

open-elevation.com - used to get elevation data for a given point
nominatim.openstreetmap.org - used to geocode marker locations

Getting support

Join our Discord https://discord.gg/GXP663Rw2W