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.
http://davidspriggs.github.io/ConfigurableViewerJSAPI/viewer
- 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
ConfigurableViewerJSAPI\js\config\viewer.js
file to customize your own map layers, task urls and widgets. - Use the wiki documentation for guidance on configuring individual widgets.
- Base Maps
- Bookmarks
- Directions
- Draw
- Editor
- Find
- Geocoder
- Growler
- Help
- Home
- Identify
- Legend
- Locate Button (Geolocation)
- Measure
- Overview Map
- Scalebar
- StreetView
- Table of contents
- Find
- 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.
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.
If there is a feature you would like to request, add it to the issues list for consideration.
See releases for change logs.
We have an IRC channel: #cmv
on freenode for the project. If you have questions, stop on by. I recommend HexChat as an IRC client or you can use freenode's webchat client.
There are many ways to contribute:
- Contribute code as widgets (see below).
- Created documentation in the wiki.
- Submit issues you find in the issues log.
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