MMKPanoramaDescription

class MMKPanoramaDescription : NSObject

Undocumented

Summary

Class methods

 init(panoramaId: String,
        position: MMKPanoramaPosition?,
     angularBBox: MMKPanoramaAngularBoundingBox,
        tileSize: MMKPanoramaImageSize,
      tileLevels: [MMKPanoramaTileLevel],
     iconMarkers: [MMKPanoramaIconMarker],
     textMarkers: [MMKPanoramaTextMarker],
  companyMarkers: [MMKPanoramaCompanyMarker],
 iconConnections: [MMKPanoramaIconConnection],
 arrowConnections: [MMKPanoramaArrowConnection],
       direction: MMKDirection,
            span: MMKSpan,
     attribution: MMKAttribution?)

Properties

var panoramaId: String { get }
panoramaId is passed as a parameter to the TileImageFactory or to the TileUrlProvider

var positionMMKPanoramaPosition? { get }
Geo position

var angularBBoxMMKPanoramaAngularBoundingBox { get }
The angularBBox field sets how the tile tilelevels oriented in space

var tileSizeMMKPanoramaImageSize { get }
Any tile level imageSize width must be multiple of the tileSize width

var tileLevels: [MMKPanoramaTileLevel] { get }
The tileLevels is a set of the TileLevel structs

var iconMarkers: [MMKPanoramaIconMarker] { get }
Add marker icons to the panorama

var textMarkers: [MMKPanoramaTextMarker] { get }
Add marker text to the panorama

var companyMarkers: [MMKPanoramaCompanyMarker] { get }
Add company icons and labels to the panorama

var iconConnections: [MMKPanoramaIconConnection] { get }
Add icons with interaction

var arrowConnections: [MMKPanoramaArrowConnection] { get }
Add standard player arrow connections

var directionMMKDirection { get }
Suggest where to look at once panorama is opened

var spanMMKSpan { get }
Suggest view area span

var attributionMMKAttribution? { get }
Panorama author information

Class methods

init(panoramaId:position:angularBBox:tileSize:tileLevels:iconMarkers:textMarkers:companyMarkers:iconConnections:arrowConnections:direction:span:attribution:)

 init(panoramaId: String,
        position: MMKPanoramaPosition?,
     angularBBox: MMKPanoramaAngularBoundingBox,
        tileSize: MMKPanoramaImageSize,
      tileLevels: [MMKPanoramaTileLevel],
     iconMarkers: [MMKPanoramaIconMarker],
     textMarkers: [MMKPanoramaTextMarker],
  companyMarkers: [MMKPanoramaCompanyMarker],
 iconConnections: [MMKPanoramaIconConnection],
 arrowConnections: [MMKPanoramaArrowConnection],
       direction: MMKDirection,
            span: MMKSpan,
     attribution: MMKAttribution?)


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.