Home

Awesome

cmv-contrib-widgets

User contributed widgets for the Configurable Map Viewer (CMV) project.

Have a widget to add? See Contributing.

Layer Widgets

Widgets that add new types of layers and additional layer data to a map.

WidgetDescription
Add WMS Layers dynamically A double widget for adding WMS Layers using a combobox or a textbox.
Advanced DrawAdd text, redo/undo drawn features and additional styling options.
Drag and DropAdd data to the map viewer by dragging and dropping resources onto the map or widget.
Dynamic Feature Layer Renderer It renders and adds a feature layer on the map dynamically. It can be used for map services hosted in ArcGIS for Server version 10.1 or above.
HeatmapThe Heatmap widget uses a HeatmapRenderer to render feature layer data into a raster visualization that emphasizes areas of higher density or weighted values.
Heatmap ToggleToggle a heat map on point layers using the dynamic sublayer menu.
Label LayersA configureable label widget allowing users to create and customize labels on dynamic and feature layers
Layer LabelsA simple widget to add labels for one or more Feature Layers.
Layer SwapperTitle pane widget to allow swapping in/out a configurable list of dynamic or tile layers.
Layer ToggleA simple widget to toggle the visibility of a set of layers. Only a single layer in the set can be visible at any time. All others are turned off when the target layer's visibility is set.
NEXRADNEXRAD weather radar widget.
PointClusteringPointClustering of point sublayer (CMV1.3.4)
Toggle StreetView TilesUsed in conjunction with the CMV StreetView widget or the Open External Map widget. Shows a StreetView tiles layer when waiting for a map click to get coordinates for the respective widgets.
WMS BasemapsUse WMS Layers as basemaps. Works in place of the core CMV Basemap widget.

Data, Search, And Query Widgets

Widgets that extract and manipulate the display of data in the application.

WidgetDescription
Advanced Search Widget Used together with Attributes Tables widget to query feature layers. With this widget you can: 1.search by attributes 2. search by location 3. search by address 4. search by other selected features.
Attributes TablesA highly configurable widget to display the results of one or more Query, Find or Geoprocessor Tasks.
ExportExport features from the Attributes Tables widget or other widgets. Features can be exported in tabular formats such as Excel and CSV as well as spatial formats such as Esri shapefiles, KML and GeoJSON.
Export GraphicsUsed with the Export widget to allow the user to export graphic features from one or more Graphic or Feature layers.
Export to shapefileA javascript library for generating ESRI shapefiles in the client from Arcgis javascript map graphics with supporting a UTF-8 encoding.
ExtractTitlePane widget to extract selected layer from current extents using geoprocessing tool (clip and ship).
FilterA simple widget allowing users to apply custom filters to a map layer or table
Identify PanelTitlePane widget to allow identify results to be viewed on the side instead of in a popup/infowindow.
NearbyDiscover features within a radius or drivetime of a map click location.
Query StatisticsQuery summary statistics for a selected feature service's features in the current map view.
Related RecordsQueries related records of feature layers and displays results in a tabbed dgrid tables.
ReportHighly configurable widget used to create a mult-page PDF report from a single feature or multiple features.
SearchUsed in conjunction with the Attributes Tables widget to provide a user interface for querying feature layers, tables and related records.

Time Widgets

Widgets that control and modify time (and potentially spacetime).

WidgetDescription
Map Refresh Timer WidgetIt refreshes the map layers periodically. You can set the preferred map layers and the refresh timer interval.
TimeSliderControl the current display of all time enabled layers on the map using a simple Esri TimeSlider widget.
TimeSlider AdvancedControl all time enabled layers on the map. It allows you to set the startTime and endTime dynamically.

Map Navigation and Control Widgets

Widgets that display and modify various aspects of the map.

WidgetDescription
FullScreenA simple widget containing a button to toggle the CMV map to a maximized full screen view and restore it to the original dimensions.
Google nearbyDiscover objects within a radius of a map click location from Google database. Add export on the objects to shapefile.
Goto CoordinateCenter the map at a specific location in geographic, UTM, or MGRS coordinates.
Locator Control WidgetA widget to allow the user to change the properties of the CMV Locate Button widget in real-time.
Map Extent WidgetCMV Widget to get map extent and zoom level.
MapillaryA replacement for the CMV Google StreetView widget that display street level imagery from Mapillary using MapillaryJS.
Navigation HashDisplay the map center point in the url and use the browser back/forward buttons as previous/next extent buttons.
Navigation ToolbarA toolbar for simple map navigation including previous and next extent tracker.
Open External MapOpen maps in an external window for Google Hybrid, Google StreetView, Bing Hybrid, Bing Bird's Eye, Bing Streetside, MapQuest and OpenStreetMap. The map is centered on the coordinates based on a map click or Latitude and Longitude values provided by the user. Can be combined with the Toggle StreetView Tiles widget to show the availability of Google StreetView while clicking on the map.
ProjectionsTitlePane widget for showing coordinates in selected projections, and for showing a specified location.
WazeCMV Widget to add embedded Waze (iFrame) to your CMV.
What3WordsA simple widget to send a 3 word address or lat/lng to what3words and zoom the map to the resulting location. The lat/lng and 3 word address for the location are displayed from the search result.
Zoom To ExtentZoom to a specific area on the map based off of a drawn extent.
Zoom To FeatureA simple widget to provide a drop-down list of features to zoom to on the map. Similar to bookmarks but driven by actual data in a Map Service.

Geoprocessing, Utilities, and Share Widgets

WidgetDescription
App SettingsAllows the user to save and share the current state of the map extent and visible layers via localStorage and URL.
DisclaimerA simple yet configurable disclaimer widget.
ElevationsProfileTitlePane widget to draw elevation profile.
ElevationsProfileTableBottom Pane widget to draw elevation profile.
Full Motion VideoFull Motion Video widgets for integration with FMV Server.
GeoprocessorAn example widget demonstrating the display of results from a Geoprocessing Task in the Attributes Tables widget.
Google AnalyticsSends Google Analytics events based on configurable parameters.
IntroductionThe Introduction Widget provides a product tour or tutorial for your application using IntroJS.
Map LoadingA widget to add a Loading indicator in the center of the map.
MaptiksA widget to add detailed map analytics to any CMV application using Maptiks. Maptiks provides in-depth user insights by tracking how visitors click, pan and zoom on your maps.
MessageBoxShow an Alert or Confirmation modal dialog box. Intended to be called from other widgets.
Metadata DialogQuery and display the sublayers metadata dialog using the dynamic sublayer menu.
My InfoAdd HTML to a specified dom node. Intended to be used to display information about your organization in the sidebarLeft node.
Print PlusAn updated version of the PrintPlus widget originally created by @LarryStout.
QR CodeShows a QR code for the current map to open mobile applications on your phone/tablet.
ShareShare your map by using Facebook, Twitter, Google+, E-Mail, Link, or embedded iFrame code.

Contributing

Create a repo for your widget. To list your widget here, simply add a row to the above widgets table with a link to your repo and description via a Pull Request.

Please follow these guidelines:

  1. In your repo include a README.md with:
  2. an example configuration object.
  3. additional documentation as needed.
  4. include the CMV version the widget built with.
  5. Make sure to include a screenshot in your README.md of your widget in action.
  6. Make sure your code is lint free. Use the included .jshintrc file for linting.