Mapito is a web application that facilitates the creation of a map with custom controls and embedding it in a website. Mapito using multiple map services such as Google Maps and Bing Maps. The main feature here is the one-click switching between of these map services without affecting the previous settings. The system records the users activity on a map and stores it for later processing and analysis.
Route tracking is an additional feature of this system which allows to track routes through a web browser of a smartphone or tablet with GPS and HTML5 Geolocation support. GPS Track Smoothing is an another useful feature provided by Mapito and designed to remove outliers in trace data.
This web application provides two APIs. A JavaScript API that's designed for developers who use embedded Mapito Maps and provides methods to edit the maps. A HTTP API which is designed for web and mobile developers and provides all options of Mapito via HTTP requests and more options, such as for storing and retrieving gps routes.
Mapito is an open data and open source GIS system with an API that facilitates the development of Web services and Mobile Apps. Mapito is creating an abstraction layer above the generic services offered by the major web-based GIS systems, in order to facilitate the migration of the user applications to new services.
This web application integrates the following technologies and tools:
- HTML5
- CSS3
- JavaScript
- JQuery
- Bootstrap
- Node.js
- MongoDB
- Google Maps API
- Bing Maps API
Mapito is currently running at http://www.mapito.org.
git clone https://github.com/map1t0/mapito.git
- Use
npm
to install all dependencies for this app:
cd ./mapito
npm install
-
Open the file
./mapito/public/javascript/embed.js
and type in the first line your domain. If you're running the app in localhost typehttp://127.0.0.1:3000
. (See the comments in the file). -
Open the file
./mapito/config/auth.js
and type inmailer
your gmail and password. (See the comments in the file). -
Create a new project on Google console. Go to
APIs & auth
->Credentials
and click onCreate new Client ID
. In theAuthorized JavaScript origins
type your domain and inAuthorized redirect URIs
enterhttp://YOUR_DOMAIN/auth/google/callback
. Next copy theClient ID
andClient secret
and paste in the./mapito/config/auth.js
file. (See the comments in the file). -
Create a new apllication on Facebook. Next copy the
App ID
andApp Secret
and paste in the the./mapito/config/auth.js
file. (See the comments in the file). -
Run the app:
nodejs app.js
- Open the app in your browser using the address
http://127.0.0.1:3000
.
express
: Web frameworkejs
: View templatingmongoose
: MongoDB object modeling toolpassport
: Authentication middlewarepassport-facebook
: Facebook authentication strategy for Passportpassport-google-oauth
: Google authentication strategies for Passportpassport-local
: Local authentication strategy for Passportserve-favicon
: Favicon serving middlewareconnect-mongo
: MongoDB session storebcrypt-nodejs
: JS bcrypt librarybody-parser
: Body parsing middlewarecookie-parser
: Cookie parsingconnect-flash
: Flash message middlewarecookie-session
: cookie session middlewareerrorhandler
: Error handler middlewareexpress-session
: Session middlewaremethod-override
: Override HTTP verbsmorgan
: HTTP request loggernode-uuid
: Implementation of RFC4122 (v1 and v4) UUIDs.nodemailer
: Mailerwinston
: Logging libraryxmlbuilder
: XML builder