MMKPanoramaDescription

@interface MMKPanoramaDescription : NSObject

Undocumented

Summary

Class methods

+ (nonnull MMKPanoramaDescription *)panoramaDescriptionWithPanoramaId:(nonnull NSString *)panoramaId
                                                             position:(nullable MMKPanoramaPosition *)position
                                                          angularBBox:(nonnull MMKPanoramaAngularBoundingBox *)angularBBox
                                                             tileSize:(nonnull MMKPanoramaImageSize *)tileSize
                                                           tileLevels:(nonnull NSArray<MMKPanoramaTileLevel *> *)tileLevels
                                                          iconMarkers:(nonnull NSArray<MMKPanoramaIconMarker *> *)iconMarkers
                                                          textMarkers:(nonnull NSArray<MMKPanoramaTextMarker *> *)textMarkers
                                                       companyMarkers:(nonnull NSArray<MMKPanoramaCompanyMarker *> *)companyMarkers
                                                      iconConnections:(nonnull NSArray<MMKPanoramaIconConnection *> *)iconConnections
                                                     arrowConnections:(nonnull NSArray<MMKPanoramaArrowConnection *> *)arrowConnections
                                                            direction:(nonnull MMKDirection *)direction
                                                                 span:(nonnull MMKSpan *)span
                                                          attribution:(nullable MMKAttribution *)attribution;

Properties

@property (nonatomic, readonly, nonnull) NSString *panoramaId;
panoramaId is passed as a parameter to the TileImageFactory or to the TileUrlProvider

@property (nonatomic, readonly, nullable) MMKPanoramaPosition *position;
Geo position

@property (nonatomic, readonly, nonnull)
    MMKPanoramaAngularBoundingBox *angularBBox;

The angularBBox field sets how the tile tilelevels oriented in space

@property (nonatomic, readonly, nonnull) MMKPanoramaImageSize *tileSize;
Any tile level imageSize width must be multiple of the tileSize width

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaTileLevel *> *tileLevels;

The tileLevels is a set of the TileLevel structs

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaIconMarker *> *iconMarkers;

Add marker icons to the panorama

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaTextMarker *> *textMarkers;

Add marker text to the panorama

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaCompanyMarker *> *companyMarkers;

Add company icons and labels to the panorama

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaIconConnection *> *iconConnections;

Add icons with interaction

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaArrowConnection *> *arrowConnections;

Add standard player arrow connections

@property (nonatomic, readonly, nonnull) MMKDirection *direction;
Suggest where to look at once panorama is opened

@property (nonatomic, readonly, nonnull) MMKSpan *span;
Suggest view area span

@property (nonatomic, readonly, nullable) MMKAttribution *attribution;
Panorama author information

Class methods

panoramaDescriptionWithPanoramaId:position:angularBBox:tileSize:tileLevels:iconMarkers:textMarkers:companyMarkers:iconConnections:arrowConnections:direction:span:attribution:

+ (nonnull MMKPanoramaDescription *)panoramaDescriptionWithPanoramaId:(nonnull NSString *)panoramaId
                                                             position:(nullable MMKPanoramaPosition *)position
                                                          angularBBox:(nonnull MMKPanoramaAngularBoundingBox *)angularBBox
                                                             tileSize:(nonnull MMKPanoramaImageSize *)tileSize
                                                           tileLevels:(nonnull NSArray<MMKPanoramaTileLevel *> *)tileLevels
                                                          iconMarkers:(nonnull NSArray<MMKPanoramaIconMarker *> *)iconMarkers
                                                          textMarkers:(nonnull NSArray<MMKPanoramaTextMarker *> *)textMarkers
                                                       companyMarkers:(nonnull NSArray<MMKPanoramaCompanyMarker *> *)companyMarkers
                                                      iconConnections:(nonnull NSArray<MMKPanoramaIconConnection *> *)iconConnections
                                                     arrowConnections:(nonnull NSArray<MMKPanoramaArrowConnection *> *)arrowConnections
                                                            direction:(nonnull MMKDirection *)direction
                                                                 span:(nonnull MMKSpan *)span
                                                          attribution:(nullable MMKAttribution *)attribution;


Properties

panoramaId

@property (nonatomic, readonly, nonnull) NSString *panoramaId;

panoramaId is passed as a parameter to the TileImageFactory or to the TileUrlProvider


position

@property (nonatomic, readonly, nullable) MMKPanoramaPosition *position;

Geo position.

Optional field, can be nil.


angularBBox

@property (nonatomic, readonly, nonnull)
    MMKPanoramaAngularBoundingBox *angularBBox;

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

@property (nonatomic, readonly, nonnull) MMKPanoramaImageSize *tileSize;

Any tile level imageSize width must be multiple of the tileSize width. Only 256x256 and 512x512 tiles are supported.


tileLevels

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaTileLevel *> *tileLevels;

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

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaIconMarker *> *iconMarkers;

Add marker icons to the panorama


textMarkers

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaTextMarker *> *textMarkers;

Add marker text to the panorama


companyMarkers

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaCompanyMarker *> *companyMarkers;

Add company icons and labels to the panorama


iconConnections

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaIconConnection *> *iconConnections;

Add icons with interaction


arrowConnections

@property (nonatomic, readonly, nonnull)
    NSArray<MMKPanoramaArrowConnection *> *arrowConnections;

Add standard player arrow connections


direction

@property (nonatomic, readonly, nonnull) MMKDirection *direction;

Suggest where to look at once panorama is opened. It's just a recommendation because it depends on angularBBox and span.


span

@property (nonatomic, readonly, nonnull) MMKSpan *span;

Suggest view area span. It's just a recommendation because it depends on angularBBox and direction.


attribution

@property (nonatomic, readonly, nullable) MMKAttribution *attribution;

Panorama author information.

Optional field, can be nil.