/cmv-app

A configurable map viewer built with the Esri JavaScript API

Primary LanguageJavaScriptMIT LicenseMIT

Configurable Map Viewer (CMV)

Build Status ![Gitter](https://badges.gitter.im/Join Chat.svg)

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.

screen shot 2014-08-20 at 9 59 48 pm

Demo Site:

http://demo.cmv.io/viewer/

Widgets Included:

  • 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
  • Print
  • 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.

Installation:

  • 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!

Customization:

  • 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.

Change log:

See releases for change logs.

Community

We have a gitter.im chat room. Come on by if you have questions. The community is very helpful. https://gitter.im/cmv/cmv-app ![Gitter](https://badges.gitter.im/Join Chat.svg)

Contributing to the Project

There are many ways to contribute to CMV:

  1. Propose a Feature - If there is a feature you would like to request, add it to the issues list for consideration.

  2. Submit an Issue - If you find a possible bug, please submit an issue in the issues log.

  3. User contributed widgets - For general information on how to build a CMV widget read [Builiding Custom Widgets] (https://github.com/cmv/cmv-app/wiki/building-custom-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.

  4. Create documentation Please make constructive in the wiki.

  5. 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.

Grunt tasks

This project uses grunt to automate tasks like minifying css and js as well as js linting and css prefixing.

To get started setup you dev machine:

  • 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.

Get the code and install dev dependencies:

  • 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 a dist folder with minified code ready for deployment.

    • There are other grunt tasks, use: grunt -h to see a list.

License

MIT