MMKPanoramaDescription
class MMKPanoramaDescription : NSObject |
Undocumented
Summary
Class methods
init(panoramaId: String, |
Properties
var panoramaId: String { get } |
var position: MMKPanoramaPosition? { get } |
var angularBBox: MMKPanoramaAngularBoundingBox { get } |
var tileSize: MMKPanoramaImageSize { get } |
var tileLevels: [MMKPanoramaTileLevel] { get } |
var iconMarkers: [MMKPanoramaIconMarker] { get } |
var textMarkers: [MMKPanoramaTextMarker] { get } |
var companyMarkers: [MMKPanoramaCompanyMarker] { get } |
var iconConnections: [MMKPanoramaIconConnection] { get } |
var arrowConnections: [MMKPanoramaArrowConnection] { get } |
var direction: MMKDirection { get } |
var attribution: MMKAttribution? { get } |
Class methods
init(panoramaId:position:angularBBox:tileSize:tileLevels:iconMarkers:textMarkers:companyMarkers:iconConnections:arrowConnections:direction:span:attribution:)
init(panoramaId: String, |
Properties
panoramaId
var panoramaId: String { get } |
panoramaId is passed as a parameter to the TileImageFactory or to the TileUrlProvider
position
var position: MMKPanoramaPosition? { get } |
Geo position.
Optional field, can be nil.
angularBBox
var angularBBox: MMKPanoramaAngularBoundingBox { get } |
The angularBBox field sets how the tile tilelevels oriented in space. Direction + span will be limited between top and bottom The recommendation for initializing angular bbox: (right - left) == 360. Non 360 degrees panoramas are not supported yet. (top - bottom) <= 180 The angular aspect ratio must be the same as any tileLevel aspect ratio. (right - left)/(top - bottom) == tileLevel[i].width/tileLevel[i].height
tileSize
var tileSize: MMKPanoramaImageSize { get } |
Any tile level imageSize width must be multiple of the tileSize width. Only 256x256 and 512x512 tiles are supported.
tileLevels
var tileLevels: [MMKPanoramaTileLevel] { get } |
The tileLevels is a set of the TileLevel structs. Tile levels can be added in any order. It's recommended to have at least 2 tile levels: - low quality zoom. For example 512x200 - high quality zoom. For axample 20480x8000
It can be useful to have several tile levels for huge images to save network traffic and reduce memory and power consumption. So the final tile levels list may look like that: level, width, height 0, 512, 200 1, 2048, 800 2, 5120, 2000 6, 10240, 4000 9, 20480, 8000
Player takes into account the view area size and available tile levels and downloads the most suitable level.
The tileLevels[i] aspect ratio must be the same. At first low quality zoom is loaded. Once it's done, the panorama player notifies that the panorama is opened and starts loading high quality zoom tiles.
iconMarkers
var iconMarkers: [MMKPanoramaIconMarker] { get } |
Add marker icons to the panorama
textMarkers
var textMarkers: [MMKPanoramaTextMarker] { get } |
Add marker text to the panorama
companyMarkers
var companyMarkers: [MMKPanoramaCompanyMarker] { get } |
Add company icons and labels to the panorama
iconConnections
var iconConnections: [MMKPanoramaIconConnection] { get } |
Add icons with interaction
arrowConnections
var arrowConnections: [MMKPanoramaArrowConnection] { get } |
Add standard player arrow connections
direction
var direction: MMKDirection { get } |
Suggest where to look at once panorama is opened. It's just a recommendation because it depends on angularBBox and span.
span
var span: MMKSpan { get } |
Suggest view area span. It's just a recommendation because it depends on angularBBox and direction.
attribution
var attribution: MMKAttribution? { get } |
Panorama author information.
Optional field, can be nil.