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
Note: Not all functions work in the demo site due to a limitation in GitHub project hosting (no functioning proxy page).
- 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 widgets.
- Base Maps
- Bookmarks
- Directions
- Draw
- Editor
- Find
- Geocoder
- Growler
- Help Button
- Home
- Identify (for dynamic layers)
- Legend
- Locate Button (Geolocation)
- Measure
- Overview Map
- Print (Advanced)
- Scalebar
- StreetView
- Table of contents
- If there is a feature you would like to request, add it to the projects trello board 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 the the issue log.
- Vote, comment on, and submit ideas for things to build and improvements to the viewer in the trello board.
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-clithis only needs to be done once per dev machine. - Install jshint globally from the command line with :
npm install -g jshintthis only needs to be done once per dev machine.
- Fork the repo into your own github account.
- Clone your fork and in the repos directory:
- Install the local dev dependencies for the project in the repo from the command line:
npm installThis only needs to be done once per dev machine. - Run grunt from the repo with:
gruntthis will lint your js as you code. - Run grunt from the repo with:
grunt buildthis will create adistfolder with minified code ready for deployment. - There are other grunt tasks use:
grunt -hto see a list
MIT