# Map
The Map
object represents the Mini Tokyo 3D map on your page. You create a Map
by specifying a container
and other options
. Then Mini Tokyo 3D initializes the map on the page and returns your Map
object.
Extends Evented (opens new window).
new Map(options: Object)
# Parameters
# options
(Object
(opens new window))
Name | Description |
---|---|
options.container string (opens new window) | The id of the HTML element in which Mini Tokyo 3D will render the map. |
options.accessToken string (opens new window) | Access token for Mapbox (opens new window). If you don't specify this token, an error will occur when loading the map, so make sure to get an access token specific to your web site. |
options.secrets Secrets | An object to store the access tokens used to retrieve data. |
options.lang string (opens new window) | IETF language tag (opens new window) for the language. If not specified, the browser's default language is used. Currently 'ja' , 'en' , 'ko' , 'zh-Hans' , 'zh-Hant' , 'th' and 'ne' are supported. If an unsupported language is specified, then 'en' is used. |
options.dataUrl string (opens new window) | Mini Tokyo 3D data URL. If not specified, 'https://minitokyo3d.com/data' will be used. |
options.clockControl boolean (opens new window)default: true | If true , the date and time display will be added to the map. |
options.searchControl boolean (opens new window)default: true | If true , the search button will be added to the map. |
options.navigationControl boolean (opens new window)default: true | If true , the navigation buttons will be added to the map. |
options.fullscreenControl boolean (opens new window)default: true | If true , the fullscreen button will be added to the map. |
options.modeControl boolean (opens new window)default: true | If true , the mode switch buttons will be added to the map. |
options.configControl boolean (opens new window)default: true | If true , the configuration buttons will be added to the map. |
options.trackingMode string (opens new window)default: 'helicopter' | The initial tracking mode. 'helicopter' and 'heading' are supported. |
options.ecoMode string (opens new window)default: 'normal' | The initial eco mode. 'normal' and 'eco' are supported. |
options.center LngLatLike (opens new window)default: [139.7670, 35.6814] | The initial geographical center point of the map. If not specified, it will default to around Tokyo station ([139.7670, 35.6814] ). Note: Mini Tokyo 3D uses longitude, latitude coordinate order to match GeoJSON. |
options.zoom number (opens new window)default: 14 | The initial zoom level of the map. If not specified, it will default to 14 . |
options.bearing number (opens new window)default: 0 | The initial bearing (rotation) of the map, measured in degrees counter-clockwise from north. If not specified, it will default to the true north (0 ). |
options.pitch number (opens new window)default: 60 | The initial pitch (tilt) of the map, measured in degrees away from the plane of the screen (0-85). If not specified, it will default to 60 . |
options.ecoFrameRate number (opens new window)default: 1 | Frame rate for train and airplane animations (frames per second) when Eco Mode is on. Specify on a scale of 1 to 60. Lower values result in less smoother animations and lower CPU resource usage, thus reducing battery consumption on mobile devices. If not specified, it will default to 1 . |
options.selection string (opens new window) | ID of the train or flight to be tracked. The train ID is a string in the form of 'odpt.Train:<operator ID>.<railway ID>.<train number>' . The fright ID is a string in the form of 'odpt.FlightInformationArrival:<operator ID>.<airport ID>.<flight number>' or 'odpt.FlightInformationDeparture:<operator ID>.<airport ID>.<flight number>' . The 'odpt.*:' part can be omitted. For details, see the Open Data Challenge for Public Transportation in Tokyo: API Specification (opens new window). |
options.plugins Array (opens new window)< PluginInterface > | An array of plugins to add. Each plugin must implement PluginInterface. |
# Instance Members
# addLayer(layer)
Adds a layer to the map.
# Parameters
layer
(Object
(opens new window) | CustomLayerInterface
(opens new window) | ThreeLayerInterface
) The layer to add, conforming to either the Mapbox Style Specification's layer definition (opens new window), the CustomLayerInterface (opens new window) specification or the ThreeLayerInterface specification.
# Returns
Map
: Returns itself to allow for method chaining.
# easeTo(options)
Changes any combination of center
, zoom
, bearing
, pitch
, and padding
with an animated transition between old and new values. The map will retain its current values for any details not specified in options
.
Note: The transition will happen instantly if the user has enabled the reduced motion
accessibility feature enabled in their operating system, unless options
includes essential: true
.
# Parameters
options
(Object
(opens new window)) Options describing the destination and animation of the transition. Accepts CameraOptions (opens new window) and AnimationOptions (opens new window).
# Returns
Map
: Returns itself to allow for method chaining.
# flyTo(options)
Changes any combination of center
, zoom
, bearing
, and pitch
, animating the transition along a curve that evokes flight. The animation seamlessly incorporates zooming and panning to help the user maintain her bearings even after traversing a great distance.
Note: The animation will be skipped, and this will behave equivalently to jumpTo
if the user has the reduced motion
accessibility feature enabled in their operating system, unless options
includes essential: true
.
# Parameters
options
(Object
(opens new window)) Options describing the destination and animation of the transition. Accepts CameraOptions (opens new window), AnimationOptions (opens new window), and the following additional options.
Name | Description |
---|---|
options.curve number (opens new window)default: 1.42 | The zooming "curve" that will occur along the flight path. A high value maximizes zooming for an exaggerated animation, while a low value minimizes zooming for an effect closer to Map#easeTo. 1.42 is the average value selected by participants in the user study discussed in van Wijk (2003) (opens new window). A value of Math.pow(6, 0.25) would be equivalent to the root mean squared average velocity. A value of 1 would produce a circular motion. |
options.minZoom number (opens new window) | The zero-based zoom level at the peak of the flight path. If options.curve is specified, this option is ignored. |
options.speed number (opens new window)default: 1.2 | The average speed of the animation defined in relation to options.curve . A speed of 1.2 means that the map appears to move along the flight path by 1.2 times options.curve screenfuls every second. A screenful is the map's visible span. It does not correspond to a fixed physical distance, but varies by zoom level. |
options.screenSpeed number (opens new window) | The average speed of the animation measured in screenfuls per second, assuming a linear timing curve. If options.speed is specified, this option is ignored. |
options.maxDuration number (opens new window) | The animation's maximum duration, measured in milliseconds. If duration exceeds maximum duration, it resets to 0. |
# Returns
Map
: Returns itself to allow for method chaining.
# getBearing()
Returns the map's current bearing. The bearing is the compass direction that is "up"; for example, a bearing of 90° orients the map so that east is up.
# Returns
number
(opens new window): The map's current bearing.
# getCenter()
Returns the map's geographical centerpoint.
# Returns
LngLat
(opens new window): The map's geographical centerpoint.
# getClockMode()
Returns the current clock mode.
# Returns
string
(opens new window): A string representing the current clock mode. Either 'realtime'
or 'playback'
.
# getEcoMode()
Returns the current eco mode.
# Returns
string
(opens new window): A string representing the current eco mode. Either 'normal'
or 'eco'
.
# getMapboxMap()
Returns the Mapbox's Map
(opens new window) object used in the map.
# Returns
Map
(opens new window): The Mapbox's Map.
# getModelPosition(lnglat, altitude)
Projects a LngLat
to a MercatorCoordinate
, and returns the translated mercator coordinates with Tokyo Station as the origin.
# Parameters
lnglat
(LngLatLike
(opens new window)) The location to project.
altitude
(number
(opens new window)) The altitude in meters of the position.
# Returns
{x: number
(opens new window), y: number
(opens new window), z: number
(opens new window)}: The translated mercator coordinates with Tokyo Station as the origin.
# getModelScale()
Returns the scale to transform into MercatorCoordinate
from coordinates in real world units using meters. This provides the distance of 1 meter in MercatorCoordinate
units at Tokyo Station.
# Returns
number
(opens new window): The scale to transform into MercatorCoordinate
from coordinates in real world units using meters.
# getPitch()
Returns the map's current pitch (tilt).
# Returns
number
(opens new window): The map's current pitch, measured in degrees away from the plane of the screen.
# getSelection()
Returns the ID of the train or flight being tracked.
# Returns
string
(opens new window): The ID of the train or flight being tracked. The train ID is a string in the form of '<operator ID>.<line ID>.<train number>'
. The flight ID is a string in the form of '<operator ID>.<airport ID>.<flight number>'
.
# getTrackingMode()
Returns the current tracking mode.
# Returns
string
(opens new window): A string representing the current tracking mode. Either 'helicopter'
or 'heading'
.
# getViewMode()
Returns the current view mode.
# Returns
string
(opens new window): A string representing the current view mode. Either 'ground'
or 'underground'
.
# getZoom()
Returns the map's current zoom level.
# Returns
number
(opens new window): The map's current zoom level.
# hasDarkBackground()
Checks if the background color of the map is dark.
# Returns
boolean
(opens new window): true
if the background color of the map is dark, false
otherwise.
# jumpTo(options)
Changes any combination of center
, zoom
, bearing
, and pitch
, without an animated transition. The map will retain its current values for any details not specified in options
.
# Parameters
options
(CameraOptions
(opens new window)) Options object.
# Returns
Map
: Returns itself to allow for method chaining.
# off(type, listener)
Removes an event listener previously added with Map#on
.
# Parameters
type
(string
(opens new window)) The event type previously used to install the listener.
listener
(Function
(opens new window)) The function previously installed as a listener.
# Returns
Map
: Returns itself to allow for method chaining.
# on(type, listener)
Adds a listener for events of a specified type.
# Parameters
type
(string
(opens new window)) The event type to listen for.
listener
(Function
(opens new window)) The function to be called when the event is fired.
# Returns
Map
: Returns itself to allow for method chaining.
# once(type, listener)
Adds a listener that will be called only once to a specified event type.
# Parameters
type
(string
(opens new window)) The event type to add a listener for.
listener
(Function
(opens new window)) The function to be called when the event is fired.
# Returns
Map
: Returns itself to allow for method chaining.
# removeLayer(id)
Removes the layer with the given ID from the map.
# Parameters
id
(string
(opens new window)) ID of the layer to remove.
# Returns
Map
: Returns itself to allow for method chaining.
# setBearing(bearing)
Sets the map's bearing (rotation). The bearing is the compass direction that is "up"; for example, a bearing of 90° orients the map so that east is up.
Equivalent to jumpTo({bearing: bearing})
.
# Parameters
bearing
(number
(opens new window)) The desired bearing.
# Returns
Map
: Returns itself to allow for method chaining.
# setCenter(center)
Sets the map's geographical centerpoint. Equivalent to jumpTo({center: center})
.
# Parameters
center
(LngLatLike
(opens new window)) The centerpoint to set.
# Returns
Map
: Returns itself to allow for method chaining.
# setClockMode(mode)
Sets the clock mode. In the real-time clock mode ('realtime'
), trains and airplanes are displayed on the map according to the actual operation at the current time. In the playback clock mode ('playback'
), you can specify the time and the speed of time passing.
# Parameters
mode
(string
(opens new window)) A string representing the clock mode. Either 'realtime'
or 'playback'
.
# Returns
Map
: Returns itself to allow for method chaining.
# setEcoMode(mode)
Sets the eco mode. In the normal mode ('normal'
), the frame rate for train and airplane animations will be set to 60. In the eco mode ('eco'
), the frame rate will be set to the Map
constructor option ecoFrameRate
.
# Parameters
mode
(string
(opens new window)) A string representing the eco mode. Either 'normal'
or 'eco'
.
# Returns
Map
: Returns itself to allow for method chaining.
# setLayerVisibility(layerId, visibility)
Sets the visibility of the layer. Specify 'visible'
to make it visible, or 'none'
to make it invisible.
# Parameters
layerId
(string
(opens new window)) The ID of the layer to set the visibility in.
visibility
(string
(opens new window)) Whether this layer is displayed. Either 'visible'
or 'none'
.
# Returns
Map
: Returns itself to allow for method chaining.
# setPitch(pitch)
Sets the map's pitch (tilt). Equivalent to jumpTo({pitch: pitch})
.
# Parameters
pitch
(number
(opens new window)) The pitch to set, measured in degrees away from the plane of the screen (0-85).
# Returns
Map
: Returns itself to allow for method chaining.
# setSelection(id)
Sets the ID of the train or flight you want to track. The train ID is a string in the form of 'odpt.Train:<operator ID>.<railway ID>.<train number>'
. The fright ID is a string in the form of 'odpt.FlightInformationArrival:<operator ID>.<airport ID>.<flight number>'
or 'odpt.FlightInformationDeparture:<operator ID>.<airport ID>.<flight number>'
. The 'odpt.*:'
part can be omitted. For details, see the Open Data Challenge for Public Transportation in Tokyo: API Specification (opens new window).
# Parameters
id
(string
(opens new window)) ID of the train or flight to be tracked.
# Returns
Map
: Returns itself to allow for method chaining.
# setTrackingMode(mode)
Sets the tracking mode. In the helicopter tracking mode ('helicopter'
), it makes a 360 degree turn around the target train or airplane. In the heading tracking mode ('heading'
), it tracks the target train or airplane from above or diagonally behind in the direction of travel up.
# Parameters
mode
(string
(opens new window)) A string representing the tracking mode. Either 'helicopter'
or 'heading'
.
# Returns
Map
: Returns itself to allow for method chaining.
# setViewMode(mode)
Sets the view mode. In the ground view mode (ground'
), ground railways, stations, trains and airplanes will be displayed brightly, and underground railways, stations and trains will be translucent. In the underground view mode ('underground'
), the map will turn dark and ground railways, stations, trains and airplanes will be translucent, while underground railways, stations and trains will appear brighter.
# Parameters
mode
(string
(opens new window)) A string representing the view mode. Either 'ground'
or 'underground'
.
# Returns
Map
: Returns itself to allow for method chaining.
# setZoom(zoom)
Sets the map's zoom level. Equivalent to jumpTo({zoom: zoom})
.
# Parameters
zoom
(number
(opens new window)) The zoom level to set (0-20).
# Returns
Map
: Returns itself to allow for method chaining.
# Events
# boxzoomcancel
Fired when the user cancels a "box zoom" interaction, or when the bounding box does not meet the minimum size threshold. See BoxZoomHandler (opens new window).
# Properties
data
(MapBoxZoomEvent
(opens new window))
# boxzoomend
Fired when a "box zoom" interaction ends. See BoxZoomHandler (opens new window).
# Properties
data
(MapBoxZoomEvent
(opens new window))
# boxzoomstart
Fired when a "box zoom" interaction starts. See BoxZoomHandler (opens new window).
# Properties
data
(MapBoxZoomEvent
(opens new window))
# click
Fired when a pointing device (usually a mouse) is pressed and released at the same point on the map.
# Properties
data
(MapMouseEvent
(opens new window))
# clockmode
Fired when the clock mode is changed.
# Properties
data
({mode:
string
(opens new window)}
)
# contextmenu
Fired when the right button of the mouse is clicked or the context menu key is pressed within the map.
# Properties
data
(MapMouseEvent
(opens new window))
# dblclick
Fired when a pointing device (usually a mouse) is pressed and released twice at the same point on the map in rapid succession.
# Properties
data
(MapMouseEvent
(opens new window))
# deselection
Fired when a train or airplane tracking is canceled.
# Properties
data
({deselection:
string
(opens new window)}
)
# drag
Fired repeatedly during a "drag to pan" interaction. See DragPanHandler (opens new window).
# Properties
data
({originalEvent:
DragEvent
(opens new window)}
)
# dragend
Fired when a "drag to pan" interaction ends. See DragPanHandler (opens new window).
# Properties
data
({originalEvent:
DragEvent
(opens new window)}
)
# dragstart
Fired when a "drag to pan" interaction starts. See DragPanHandler (opens new window).
# Properties
data
({originalEvent:
DragEvent
(opens new window)}
)
# ecomode
Fired when the eco mode is changed.
# Properties
data
({mode:
string
(opens new window)}
)
# error
Fired when an error occurs. This is Mini Tokyo 3D's primary error reporting mechanism. We use an event instead of throw
to better accommodate asynchronous operations. If no listeners are bound to the error
event, the error will be printed to the console.
# Properties
data
({error: {message:
string
(opens new window)}}
)
# load
Fired immediately after all necessary resources have been downloaded and the first visually complete rendering of the map has occurred.
# mousedown
Fired when a pointing device (usually a mouse) is pressed within the map.
# Properties
data
(MapMouseEvent
(opens new window))
# mousemove
Fired when a pointing device (usually a mouse) is moved while the cursor is inside the map. As you move the cursor across the map, the event will fire every time the cursor changes position within the map.
# Properties
data
(MapMouseEvent
(opens new window))
# mouseover
Fired when a pointing device (usually a mouse) is moved within the map. As you move the cursor across a web page containing a map, the event will fire each time it enters the map or any child elements.
# Properties
data
(MapMouseEvent
(opens new window))
# mouseup
Fired when a pointing device (usually a mouse) is released within the map.
# Properties
data
(MapMouseEvent
(opens new window))
# move
Fired repeatedly during an animated transition from one view to another, as the result of either user interaction or methods such as Map#flyTo.
# Properties
data
((MapMouseEvent
(opens new window) | MapTouchEvent
(opens new window)))
# moveend
Fired just after the map completes a transition from one view to another, as the result of either user interaction or methods such as Map#jumpTo.
# Properties
data
({originalEvent:
DragEvent
(opens new window)}
)
# movestart
Fired just before the map begins a transition from one view to another, as the result of either user interaction or methods such as Map#jumpTo.
# Properties
data
({originalEvent:
DragEvent
(opens new window)}
)
# pitch
Fired repeatedly during the map's pitch (tilt) animation between one state and another as the result of either user interaction or methods such as Map#flyTo.
# Properties
data
(MapEventData
)
# pitchend
Fired immediately after the map's pitch (tilt) finishes changing as the result of either user interaction or methods such as Map#flyTo.
# Properties
data
(MapEventData
)
# pitchstart
Fired whenever the map's pitch (tilt) begins a change as the result of either user interaction or methods such as Map#flyTo.
# Properties
data
(MapEventData
)
# resize
Fired immediately after the map has been resized.
# rotate
Fired repeatedly during a "drag to rotate" interaction. See DragRotateHandler (opens new window).
# Properties
data
((MapMouseEvent
(opens new window) | MapTouchEvent
(opens new window)))
# rotateend
Fired when a "drag to rotate" interaction ends. See DragRotateHandler (opens new window).
# Properties
data
((MapMouseEvent
(opens new window) | MapTouchEvent
(opens new window)))
# rotatestart
Fired when a "drag to rotate" interaction starts. See DragRotateHandler (opens new window).
# Properties
data
((MapMouseEvent
(opens new window) | MapTouchEvent
(opens new window)))
# selection
Fired when a train or airplane tracking is initiated.
# Properties
data
({selection:
string
(opens new window)}
)
# touchcancel
Fired when a touchcancel
(opens new window) event occurs within the map.
# Properties
data
(MapTouchEvent
(opens new window))
# touchend
Fired when a touchend
(opens new window) event occurs within the map.
# Properties
data
(MapTouchEvent
(opens new window))
# touchmove
Fired when a touchmove
(opens new window) event occurs within the map.
# Properties
data
(MapTouchEvent
(opens new window))
# touchstart
Fired when a touchstart
(opens new window) event occurs within the map.
# Properties
data
(MapTouchEvent
(opens new window))
# trackingmode
Fired when the tracking mode is changed.
# Properties
data
({mode:
string
(opens new window)}
)
# viewmode
Fired when the view mode is changed.
# Properties
data
({mode:
string
(opens new window)}
)
# wheel
Fired when a wheel
(opens new window) event occurs within the map.
# Properties
data
(MapWheelEvent
(opens new window))
# zoom
Fired repeatedly during an animated transition from one zoom level to another, as the result of either user interaction or methods such as Map#flyTo.
# Properties
data
((MapMouseEvent
(opens new window) | MapTouchEvent
(opens new window)))
# zoomend
Fired just after the map completes a transition from one zoom level to another, as the result of either user interaction or methods such as Map#flyTo.
# Properties
data
((MapMouseEvent
(opens new window) | MapTouchEvent
(opens new window)))
# zoomstart
Fired just before the map begins a transition from one zoom level to another, as the result of either user interaction or methods such as Map#flyTo.
# Properties
data
((MapMouseEvent
(opens new window) | MapTouchEvent
(opens new window)))