Deep Linking
The main state of MMGIS can be saved and shared by manipulating the URL. The following parameters describe the specifics of that state. Additionally there’s a green “Copy Link” icon in the MMGIS toolbar that constructs these URLs. Those URLs are initially shortened but can be navigated to to view their expanded form in the address bar.
Parameters
mission=
<mission name>
The mission to navigate to.
- form:
<string>
- dependencies: NONE
- unset: Will direct to a landing page to choose a mission. If there exists only one configured mission, then automatically go to it.
site=
<site code>
The site described in the SitesTool to navigate to.
- form:
<string>
- dependencies: SitesTool
- unset: If the SitesTool is enable and has sites, it will default to the first defined site.
mapLon=
<longitude>
- form:
<float>
- dependencies: mapLat, mapZoom
- unset: Will default to the initial view
mapLat=
<latitude>
- form:
<float>
- dependencies: mapLon, mapZoom
- unset: Will default to the initial view
mapZoom=
<zoom level>
- form:
<positive integer>
- dependencies: mapLon, mapLat
- unset: Will default to the initial view
globeLon=
<longitude>
- form:
<float>
- dependencies: globeLat, globeZoom
- unset: Will default to the initial view
globeLat=
<latitude>
- form:
<float>
- dependencies: globeLon, globeZoom
- unset: Will default to the initial view
globeZoom=
<zoom level>
- form:
<positive integer>
- dependencies: globeLon, globeLat
- unset: Will default to the initial view
globeCamera=
<posX>,<posY>,<posZ>,<tarX>,<tarY>,<tarZ>
Defines the 3d coordinates [posX, posY, posZ] of where the Globe camera is position and points the Globe camera to look at [tarX, tarY, tarZ]. The Globe view is always centered at 0,y,0 with the y-axis up.
- form:
<float,float,float,float,float,float>
- dependencies: NONE
- unset: Will default to an initial top-down view
panePercents=
<viewerPercent>,<mapPercent>,<globePercent>
How much to open each panel. All three values should add up to 100. 0,100,0
would be the map covering the whole screen. 0,50,50
would be the screen split half way between the map and globe.
- form:
<float,float,float>
- dependencies: NONE
- unset: Will default to
0,100,0
on=
<name>$<opacity>,<name>$<opacity>...
The name of the layer that’s on and its opacity. When using the on parameter, all unlisted layers are deemed off. If a site is defined in the URL, the site’s layers will turn on regardless.
- form:
<string$float,string$float,string$float,...>
- dependencies: NONE
- unset: Only layers visible by default will be on
centerPin=
<hoverText>
If a map latitude and longitude is set and centerPin has a value, then render a pin on the map at the its center. The value of centerPin becomes the pin/marker’s mouse over text. If centerPin=true (or ‘’), then there is no mouse over text for the pin. This parameter is useful when you want to link to a specific coordinate on the map and maintain its location for the user rather than just setting the initial map view.
- form:
<hoverText> || true || ''
- dependencies: mapLon, mapLat
- unset: No center point pin will be displayed
selected=
<layer name>,<lat>,<lon>,<view (opt)>,<zoom level (opt)>
<layer name>,<key>,<value>,<view (opt)>,<zoom level (opt)>
The feature of a layer to have selected. If lat
and lon
are both numbers, the first point in layer name
with coordinates lat
lon
will be selected. Otherwise it’ll be treated as a key
value
search. Under key
value
the first feature in layer name
whose properties.<key>
matches value
gets selected. key
supports nested properties with dot notation (“buildings.stores.candy”). The selected layer name
layer will always be turned on regardless of what the other parameters may say. view
and zoom level
are optional. If view
is set to “go”, the selection would not only be made but also panned to. zoom level
sets the zoom of view's
“go”. If zoom level
is unset but view
is set, it will default to the Zoom Level of Map Scale
configuration value if set or finally the Initial Zoom Level
configuration variable.
- form:
<string,float,float,string,integer | string,string,string,string,integer>
- dependencies: NONE
- unset: No feature will be selected
viewerImg=
<index>
The index of the list of image products within the viewer. The viewer will only be populated with this list if a feature with image products is selected. The viewer captures any image, dzi, obj URLs found within the selected point’s metadata to form this list.
- form:
<integer>
- dependencies: NONE
- unset: Will default to the first image (if any)
viewerLoc=
<posX>,<posY>,<w>,<h>
(boundingbox for images)
<tarX>,<tarY>,<tarZ>,<fov>
(target and field of view for photosphere)
<posX>,<posY>,<posZ>,<tarX>,<tarY>,<tarZ>
(position and target for models)
- Bounding box is a top-left origined bounding box.
- Photosphere describes the camera’s target and its field of view. Field of view in the photosphere is effectively zoom.
- Model is of the same form as
globeCamera
The view of the image. The viewer supports regular images, spherically projected images and models and this parameter should match the view type of the image at viewImg
s index.
- form:
<float,float,integer,integer | float,float,float,float | float,float,float,float,float,float>
- dependencies: NONE
- unset: Will default to an initial view
forcelanding=
<boolean>
If no mission
is set in the URL, there exists only one configured mission and forcelanding
is set to “true”, then the landing page will not automatically redirect to the only configured mission.
- form:
<boolean>
- dependencies: mission is unset
- unset: The landing page will redirect to the only mission if there exists only one configured mission
startTime=
<start time>
Sets the start time for the Time Control feature.
- form:
<string> (that moment.js understands)
- dependencies: Time Control to be enabled
- unset: Will default to current time if Time Control feature is enabled
endTime=
<end time>
Sets the end time for the Time Control feature.
- form:
<string> (that moment.js understands)
- dependencies: Time Control to be enabled
- unset: Will default to current time if Time Control feature is enabled
Examples
General
https://<domain>/?mission=MSL&site=GAC&mapLon=137.36826181411746&mapLat=-4.676391308143136&mapZoom=16&globeLon=137.3738&globeLat=-4.674800000000008&globeZoom=16&globeCamera=673.9200228913286,3890.288691365299,-1563,0,4423.768073682673,0&panePercents=32.64331210191082,45.1167728237792,22.23991507430998&on=ChemCam$1.00,Waypoints$0.57,Traverse$1.00,GPR_1$1.00,HiRISE$1.00,Aeolis%20Palus$1.00&selected=Waypoints,-4.675793594577601,137.36642934025107&viewerImg=0&viewerLoc=0.04430,0.05091,-0.03785,37.5
Selecting and navigating to a feature in a layer named Published Strategic Targets
by its property uuid
https://<domain>/?mission=<mission>&selected=Published%20Strategic%20Targets,uuid,a6222bca-6c51-4647-b28c-70b5e2d05886,go
Selecting and navigating to a feature in a layer named Tactical Targets
by its nested property data.uuid
https://<domain>/?mission=<mission>&selected=Tactical%20Targets,data.uuid,170e096a-75c9-4db5-be64-d713e3a40955,go
Selecting and navigating to a feature in a layer named End of Drive
by its property site_pos
https://<domain>/?mission=<mission>&selected=End%20of%2Drive,site_pos,<site>_<pos>,go