This JS web app can be easily configured or used as a boilerplate/starting point for basic viewers. It also demonstrates best practices for modular design and OOP via classes in JS using dojo's great declare system.
- Base Maps
- Bookmarks
- Directions
- Draw
- Editor
- Find
- Geocoder
- Growler
- Help
- Home
- Identify
- Layer Control (Table of Contents)
- Legend
- Locate Button (Geolocation)
- MapInfo
- Measure
- Overview Map
- Scalebar
- StreetView
- Map Right click menu with various widget functions.
- Highly configurable UI, right or left sidebars with widgets in both, top and bottom regions for other content.
-
Download the latest release here.
-
Move to your web server
-
configure the proper proxy page. Should work out of the box if using IIS.
-
Edit the config.js file to include your services and desired widgets.
-
Enjoy!
-
Use the configuration files in the
/js/config
folder to customize your own map layers, task urls and widgets. -
Use the documentation for getting started and guidance on configuring individual widgets.
See releases for change logs.
We have an IRC channel: #cmv
on freenode for the project. If you have questions, stop on by. We recommend HexChat as an IRC client or you can use freenode's webchat client.
There are many ways to contribute to CMV:
-
Propose a Feature - If there is a feature you would like to request, add it to the issues list for consideration.
-
Submit an Issue - If you find a possible bug, please submit an issue in the issues log.
-
User contributed widgets - Users can submit widgets to the cmv-contrib-widgets repo. These widgets are created and submitted by users. Head on over and read the details.
-
Create documentation Please make constructive in the wiki.
-
Submit a Pull Request - If you are developer and have an enhancement or bug fix you would like to submit, pull requests are welcome. Please review the CONTRIBUTING.md documentation before submitting any Pull Requests.
This project uses grunt to automate tasks like minifying css and js as well as js linting and css prefixing.
-
Install node.
-
Install the grunt cli (command line interface) globally from the command line with :
npm install -g grunt-cli
, this only needs to be done once per dev machine. -
Install jshint globally from the command line with :
npm install -g jshint
, this only needs to be done once per dev machine.
-
Fork the repo into your own github account.
-
Clone your fork and in cloned directory:
-
Install the local dev dependencies for the project in the repo from the command line:
npm install
, this only needs to be done once per dev machine. -
Run grunt from the repo with:
grunt
this will launch a mini dev server and lint your js as you code. -
Run grunt from the repo with:
grunt build
this will create adist
folder with minified code ready for deployment. -
There are other grunt tasks, use:
grunt -h
to see a list.
MIT