Configuration options for a
MapModel that control the
appearance of the map, the data/imagery displayed, and which UI
components are rendered. A MapConfig object can be used when
initializing a Map model, e.g. `new Map(myMapConfig)`
Properties:
Name |
Type |
Attributes |
Default |
Description |
homePosition |
MapConfig#CameraPosition
|
<optional>
|
|
A set of
coordinates that give the (3D) starting point of the Viewer. This
position is also where the "home" button in the Cesium widget will
navigate to when clicked. |
layers |
Array.<MapConfig#MapAssetConfig>
|
<optional>
|
|
A collection of
imagery, tiles, vector data, etc. to display on the map. Layers wil be
displayed in the order they appear. The array of the layer
MapAssetConfigs are passed to a MapAssets collection. When layerCategories
exist, this property will be ignored. |
layerCategories |
Array.<MapConfig#MapAssetConfig>
|
<optional>
|
|
A collection of
layer categories to display in the tool bar. Categories wil be
displayed in the order they appear. The array of the AssetCategoryConfig
are passed to a AssetCategories collection. When layerCategories
exist, the layers property will be ignored. |
terrains |
Array.<MapConfig#MapAssetConfig>
|
<optional>
|
|
Configuration for
one or more digital elevation models (DEM) for the surface of the
earth. Note: Though multiple terrains are supported, currently only the
first terrain is used in the CesiumWidgetView and there is not yet a UI
for switching terrains in the map. The array of the terrain
MapAssetConfigs are passed to a MapAssets collection. |
showToolbar |
boolean
|
<optional>
|
true
|
Whether or not to show the
side bar with layer list, etc. If true, the MapView will render
a ToolbarView. |
showLayerList |
boolean
|
<optional>
|
true
|
Whether or not to show the
layer list in the toolbar. If true, the ToolbarView will render
a LayerListView. |
showHomeButton |
boolean
|
<optional>
|
true
|
Whether or not to show the
home button in the toolbar. |
showViewfinder |
boolean
|
<optional>
|
false
|
Whether or not to show the
viewfinder UI and viewfinder button in the toolbar. The ViewfinderView
requires a Google Maps API key present in the AppModel. In order to
work properly the Geocoding API and Places API must be enabled. |
showShareUrl |
boolean
|
<optional>
|
false
|
Whether or not to show the
share as URL UI in the toolbar and update the URL as the user interacts
with the map. This feature requires a `layerId` field on any layers
that are expected to be saved to the URL search parameter, as that is
the only unique identifier which can be used to turn the layer
visibility on or off. |
toolbarOpen |
boolean
|
<optional>
|
false
|
Whether or not the toolbar is
open when the map is initialized. Set to false by default, so that the
toolbar is hidden by default. |
showScaleBar |
boolean
|
<optional>
|
true
|
Whether or not to show a
scale bar. If true, the MapView will render a
ScaleBarView. |
showFeatureInfo |
boolean
|
<optional>
|
true
|
Whether or not to allow
users to click on map features to show more information about them. If
true, the MapView will render a FeatureInfoView and
will initialize "picking" in the CesiumWidgetView. |
clickFeatureAction |
string
|
<optional>
|
"showDetails"
|
The default
action to take when a user clicks on a feature on the map. The
available options are "showDetails" (show the feature details in the
sidebar) or "zoom" (zoom to the feature's location). |
showNavHelp |
boolean
|
<optional>
|
true
|
Whether or not to show
navigation instructions in the toolbar. |
showFeedback |
boolean
|
<optional>
|
false
|
Whether or not to show a
feedback section in the toolbar with the text specified in
feedbackText. |
feedbackText |
string
|
<optional>
|
null
|
The text to show in the
feedback section. showFeedback must be true for this to be shown. |
globeBaseColor |
String
|
<optional>
|
null
|
The base color of the globe when no
layer is shown. |
zoomPresets |
ZoomPresets
|
<optional>
|
null
|
A Backbone.Collection of a
predefined list of locations with an enabled list of layer IDs to be
shown the zoom presets UI. Requires `showViewfinder` to be true as this
UI appears within the ViewfinderView.
UI appears within the ViewfinderView. |
- Source:
Example
{
"homePosition": {
"latitude": 74.23,
"longitude": -105.7
},
"layers": [
{
"label": "My 3D Tile layer",
"type": "Cesium3DTileset",
"description": "This is an example 3D tileset. This description will be visible in the LayerDetailsView. It will be the default color, since to colorPalette is specified.",
"cesiumOptions": {
"ionAssetId": "555"
},
}
],
"terrains": [
{
"label": "Arctic DEM",
"type": "CesiumTerrainProvider",
"cesiumOptions": {
"ionAssetId": "3956",
"requestVertexNormals": true
}
}
],
"showToolbar": true,
"showScaleBar": false,
"showFeatureInfo": false
}
Type Definitions
AssetCategoryConfig
The source of a specific category to show in the ToolBarView, as well as
display properties of the asset.
Type:
Properties:
Name |
Type |
Description |
label |
string
|
A user friendly name for this category, to be
displayed in a map. |
icon |
string
|
A PID for an SVG saved as a dataObject, or an SVG
string. The SVG will be used as an icon that will be displayed next to the
category label. It should be an SVG file that has no fills, borders, or styles
set on it (since the icon will be shaded dynamically by the maps CSS using a
fill attribute). It must use a viewbox property rather than a height and width. |
layers |
MapAssets
|
The data to render in the map. |
- Source:
CameraPosition
Coordinates that describe a camera position for Cesium. Requires at
least a longitude and latitude.
Type:
Properties:
Name |
Type |
Attributes |
Description |
longitude |
number
|
|
Longitude of the central home point |
latitude |
number
|
|
Latitude of the central home point |
height |
number
|
<optional>
|
Height above sea level (meters) |
heading |
number
|
<optional>
|
The rotation about the negative z axis
(degrees) |
pitch |
number
|
<optional>
|
The rotation about the negative y axis
(degrees) |
roll |
number
|
<optional>
|
The rotation about the positive x axis
(degrees) |
- Source:
Examples
{
longitude: -119.8489,
latitude: 34.4140
}
{
longitude: -65,
latitude: 56,
height: 10000000,
heading: 1,
pitch: -90,
roll: 0
}
ColorConfig
A color to use in a map color palette, along with the value that the color
represents.
Type:
Properties:
Name |
Type |
Attributes |
Description |
value |
string
|
number
|
|
The value of the attribute in a MapAsset that
corresponds to this color. If set to null, then this color will be the default
color. |
label |
string
|
<optional>
|
A user-facing name for this attribute value,
to show in map legends, etc. If not set, then the value will be displayed
instead. |
color |
string
|
Color
|
|
Either an object with 'red',
'green', 'blue' properties defining the intensity of each of the three colours
with a value between 0 and 1, OR a string with a hex color code beginning with
#, e.g. '#44A96A'. The AssetColor model will convert the string to an
AssetColor#Color object. |
- Source:
Examples
{
value: 0,
label: 'water',
color: {
red: 0,
green: 0.1,
blue: 1
}
}
{
value: 'landmark',
color: '#7B44A9'
}
ColorPaletteConfig
The ColorPaletteConfig specifies a color scale that is mapped to some
attribute of a
MapAsset. For vector assets, like 3D tilesets,
this palette is used to conditionally color features on a map. For any
type of asset, including imagery, it can be used to generate a legend.
The ColorPaletteConfig is passed to a
AssetColorPalette model.
Type:
Properties:
Name |
Type |
Attributes |
Default |
Description |
paletteType |
'categorical'
|
'continuous'
|
'classified'
|
<optional>
|
'categorical'
|
NOTE: Currently only categorical and
continuous palettes are supported.
- Categorical: the color conditions will be interpreted such that one
color represents a single value (e.g. a discrete palette).
- Continuous: each color in the colors attribute will represent a point
in a gradient. The point in the gradient will be associated with the
number set with the color, and numbers in between points will be set
to an interpolated color.
- Classified: the numbers set in the colors attribute will be
interpreted as maximums. Continuous properties will be forced into
discrete bins. |
property |
string
|
|
|
The name (ID) of the property in the asset
layer's attribute table to color the vector data by (or for imagery
data that does not have an attribute table, just the name of the
attribute that these colors represent). |
label |
string
|
<optional>
|
|
A user-friendly name to display instead of
the actual property name. |
colors |
Array.<MapConfig#ColorConfig>
|
|
|
The colors to use in the
color palette, along with the conditions associated with each color
(i.e. the properties of the feature that must be true to use the given
color). The array of ColorConfig objects are passed to a
AssetColors collection, which in turn passes each ColorConfig
to a AssetColor model. |
- Source:
Example
{
paletteType: 'categorical',
property: 'landUse',
label: 'Land Use in 2016',
colors: [
{ value: "agriculture", color: "#FF5733" },
{ value: "park", color: "#33FF80" }
]
}
CustomDateProperty
Type:
Properties:
Name |
Type |
Description |
type |
'date'
|
Must be set to 'date' to indicate that this is a custom
date property |
property |
string
|
The name/ID of the existing date property to format |
format |
string
|
A string that indicates the new format to use.
Follows the syntax used by Day.JS, see
https://day.js.org/docs/en/display/format |
- Since:
- Source:
CustomProperties
An object where the keys indicate the name/ID of the new custom property to
create, and the values are an object that defines the new property.
Type:
- Since:
- Source:
Example
{
"year": {
"type": "date",
"property": "dateTime",
"format": "YYYY",
},
"urlText": {
"type": "string",
"value": "Click here to learn more about this feature"
}
}
CustomStringProperty
Type:
Properties:
Name |
Type |
Description |
type |
'string'
|
Must be set to 'string' to indicate that this is a
custom string property |
value |
string
|
The new string to use. So far only static strings are
available. In the future, templates that include other properties may be
supported. |
- Since:
- Source:
FeatureTemplate
A feature template configures the format and content of information displayed
in the Feature Info panel (
FeatureInfoView). The Feature Info panel is
displayed in a map when a user clicks on a vector feature in a map.
Type:
Properties:
Name |
Type |
Attributes |
Default |
Description |
template |
'story'
|
'table'
|
<optional>
|
'table'
|
The name/ID of the template to
use. This must match the name of one of the templates available in
FeatureInfoView#contentTemplates. |
label |
string
|
<optional>
|
|
Sets which of the feature properties to use as the
title for the FeatureInfoView. The string must exactly match the key for a
property that exists in the feature. |
options |
MapConfig#StoryTemplateOptions
|
<optional>
|
|
A list of key-value pairs
that map the template variable to a property/attribute of the the feature. Keys
are the template variable names and values are the names of properties in the
feature. Template variable names are specific to each template. Currently only
the 'story' template allows variables. These are specified in the
FeatureInfoView#contentTemplates. |
- Since:
- Source:
Examples
// Use the "story" template, which shows a secondary title, image, description,
// and link.
{
"template": "story",
"label": "title",
"options": {
"subtitle": "formattedDate",
"description": "summary",
"thumbnail": "imageSrc",
"url": "newsLink",
"urlText": "newsTitle",
}
}
// Use the default template (a table), but use the "forestName" attribute for
// the FeatureInfo panel label
{
"label": "forestName"
}
MapAssetConfig
The source of a specific asset (i.e. layer or terrain data) to show on the map,
as well as metadata and display properties of the asset. Some properties listed
here do not apply to all asset types, but this is specified in the property
description.
Type:
Properties:
Name |
Type |
Attributes |
Default |
Description |
type |
'Cesium3DTileset'
|
'BingMapsImageryProvider'
|
'IonImageryProvider'
|
'WebMapTileServiceImageryProvider'
|
'WebMapServiceImageryProvider'
|
'TileMapServiceImageryProvider'
|
'NaturalEarthII'
|
'CesiumTerrainProvider'
|
'GeoJsonDataSource'
|
'USGSImageryTopo'
|
'OpenStreetMapImageryProvider'
|
|
|
A string indicating the format of the data. Some of these types correspond
directly to Cesium classes. The NaturalEarthII type is a special imagery layer
that automatically sets the cesiumOptions to load the Natural Earth II imagery
that is shipped with Cesium/MetacatUI. If this type is set, then no other
cesiumOptions are required. The same is true for USGSImageryTopo, which pulls
imagery directly from USGS. |
cesiumOptions |
Cesium3DTileset#cesiumOptions
|
CesiumImagery#cesiumOptions
|
CesiumTerrain#cesiumOptions
|
CesiumVectorData#cesiumOptions
|
<optional>
|
|
For MapAssets that are configured for Cesium, like
Cesium3DTilesets, an object with options to pass to the Cesium constructor
function that creates the Cesium model. Options are specific to each type of
asset. For details, see documentation for each of the types. |
label |
string
|
|
|
A user friendly name for this asset, to be displayed
in a map. |
icon |
string
|
<optional>
|
|
A PID for an SVG saved as a dataObject, or an SVG
string. The SVG will be used as an icon that will be displayed next to the
label in the layers list. It should be an SVG file that has no fills, borders,
or styles set on it (since the icon will be shaded dynamically by the maps CSS
using a fill attribute). It must use a viewbox property rather than a height
and width. |
opacity |
number
|
<optional>
|
1
|
A number between 0 and 1 indicating the
opacity of the layer on the map, with 0 representing fully transparent and 1
representing fully opaque. This applies to raster (imagery) and vector assets,
not to terrain assets. |
saturation |
number
|
<optional>
|
1
|
A number that indicates the saturation of
the layer on the map. Less than 1.0 reduces the saturation while greater than
1.0 increases it. This applies to raster (imagery) only. |
visible |
boolean
|
<optional>
|
true
|
Set to true if the layer is visible on the
map, false if it is hidden. This applies to raster (imagery) and vector assets,
not to terrain assets. |
description |
string
|
<optional>
|
|
A brief description about the asset, e.g.
which area it covers, the resolution, etc. |
attribution |
string
|
<optional>
|
|
A credit or attribution to display along with
this asset. |
moreInfoLink |
string
|
<optional>
|
|
A complete URL used to create a link to show
in a map where a user can find more information about this resource. |
downloadLink |
string
|
<optional>
|
|
A complete URL used to show a link in a map
where a user can go to download the source data. |
id |
string
|
<optional>
|
|
If this asset's data is archived in a DataONE
repository, the ID of the data package. |
colorPalette |
MapConfig#ColorPaletteConfig
|
<optional>
|
|
The color or colors
mapped to attributes of this asset. This applies to raster/imagery and vector
assets. For imagery, the colorPalette will be used to create a legend. For
vector assets (e.g. 3Dtilesets), it will also be used to style the features. |
featureTemplate |
MapConfig#FeatureTemplate
|
<optional>
|
|
Configuration for the
content and layout of the Feature Info panel (FeatureInfoView) - the
panel that shows information about a selected feature from a vector asset. If
no feature template is set, then the default table layout is used. |
customProperties |
MapConfig#CustomProperties
|
<optional>
|
|
Definitions of custom
properties of features, potentially based on existing properties. For example,
a custom property could be a formatted version of another date property. These
custom properties can be used in the filters, colorPalette, or featureTemplate.
So far, custom strings and formatted dates are supported. Eventually, the
custom properties may be expanded to support formatted numbers and booleans. |
filters |
MapConfig#VectorFilterConfig
|
<optional>
|
|
A set of conditions used
to show or hide specific features of this tileset. |
notification |
MapConfig#Notification
|
<optional>
|
|
A custom badge and message to
display about the layer in the Layer list. For example, this could highlight
the layer if it is new, give a warning if they layer is under development, etc. |
hideInLayerList |
boolean
|
<optional>
|
|
Set to true to hide this asset from the
layer list. |
- Source:
Notification
A notification displays a badge in the
LayerListView and a message in
the
LayerDetailsView. This is useful for indicating some special status
of the layer: "new", "under development", etc.
Type:
Properties:
Name |
Type |
Attributes |
Description |
style |
'yellow'
|
'green'
|
'blue'
|
'contrast'
|
<optional>
|
The badge and message
color. If none is set, then notification elements will be similar to the
background colour (subtle). |
badge |
string
|
|
The text to display in the badge element next to the
layer label in the list. This badge should be as few characters as possible. |
message |
string
|
|
A longer message to display explaining the status. |
- Since:
- Source:
StoryTemplateOptions
An object that maps template variable to feature properties for the "story"
template.
Type:
Properties:
Name |
Type |
Description |
subtitle |
string
|
The name of a feature property to use for a
secondary title in the template |
description |
string
|
The name of a feature property that contains a
brief summary or description of the feature; displayed as a paragraph. |
thumbnail |
string
|
The name of a feature property that contains a URL
for an image. Displayed as a thumbnail next to the description. |
url |
string
|
The name of a feature property with a URL to use to
create a link (e.g. to learn more information about the given feature) |
urlText |
string
|
The name of a feature property that has text to
display for the url. Defaults to 'Read More' if none is set. |
- Since:
- Source:
VectorFilterConfig
A VectorFilterConfig specifies conditions under which specific features of a
vector layer on a map should be visible. The filter defines rules used to show
features conditionally based on properties of the feature. For example, it
could specify hiding all vectors for an asset that have an area greater than
10km2. This configuration is passed to the
VectorFilter model.
Type:
Properties:
Name |
Type |
Description |
filterType |
'categorical'
|
'numeric'
|
If categorical, then a feature
will be visible when its property value exactly matches one of those listed in
the values attribute. If numeric, then a feature will be visible when its
property value is between the min and max. |
property |
string
|
The property (attribute) of the MapAsset
feature to filter on. |
values |
Array.<string>
|
Array.<number>
|
Only used for categorical filters. If
the property matches one of the values listed, the feature will be displayed.
If the filter type is categorical and no values are set, then features will not
be filtered on this property. |
max |
number
|
Only used for numeric filters. The property's value must
be less than the value set here for the feature to be visible. If the filter
type is numeric, and max is set, then the max is infinite. |
min |
number
|
Only used for numeric filters. The property's value must
be greater than the value set here for the feature to be visible. If the filter
type is numeric, and min is set, then the min is minus infinity. |
- Source:
Examples
// Only show vectors with an 'area' property set to less than 10
{
filterType: 'numeric'
property: 'area'
max: 10
}
// Show only features that have the 'boreal' or 'tropical' property set on their 'forestType' attribute
{
filterType: 'categorical'
property: 'forestType'
values: ['boreal', 'tropical']
}