GLMapView


@interface GLMapView : NSView <CLLocationManagerDelegate>

GLMapView is a custom UIView that renders and presents vector map.

  • Captures frame from GLMapView to UIImage

    Declaration

    Objective-C

    - (nullable PlatformImage *)captureFrame;

    Return Value

    Current state of the GLMapView

  • Captures frame from GLMapView to UIImage when all load operations will finish.

    See

    offscreen

    Declaration

    Objective-C

    - (void)captureFrameWhenFinish:(nonnull GLMapCaptureFrameBlock)block;

    Parameters

    block

    Block callback is called when screenshot is ready.

  • Allows to render offscreen frames

    By default offscreen = NO. And GLMapView stop render if there is no superview. But in case you need to capture frames from standalone GLMapView, you need to set offscreen = YES;

    Declaration

    Objective-C

    @property BOOL offscreen;
  • Rendering frame interval. By default frameInterval is 2 (30 fps)

    Declaration

    Objective-C

    @property NSInteger frameInterval;
  • State of tile in center of screen

    Declaration

    Objective-C

    @property (readonly) GLMapTileState centerTileState;

User Interface

  • Sets mask that defines enabled gestures.

    Use tapGestureBlock and longPressGestureBlock to add your tap and long press handlers.

    Declaration

    Objective-C

    @property (nonatomic) GLMapViewGestures gestureMask;
  • tapGestureBlock called for each tap gesture recognized.

    Declaration

    Objective-C

    @property (copy) GLMapTapGestureBlock _Nullable tapGestureBlock;
  • longPressGestureBlock called for each long press gesture recognized.

    Declaration

    Objective-C

    @property (copy) GLMapTapGestureBlock _Nullable longPressGestureBlock;
  • bboxChangedBlock called when map is moved or zoomed.

    Declaration

    Objective-C

    @property (copy) GLMapBBoxChangedBlock _Nullable bboxChangedBlock;
  • mapDidMoveBlock called when animation or deceleration ends.

    Declaration

    Objective-C

    @property (copy) GLMapBBoxChangedBlock _Nullable mapDidMoveBlock;
  • visibleTilesChangedBlock called when set of visible tiles is changed.

    Declaration

    Objective-C

    @property (copy) GLMapVisibleTilesChangedBlock _Nullable visibleTilesChangedBlock;
  • centerTileStateChangedBlock called when centerTileState is changed

    Declaration

    Objective-C

    @property (copy) dispatch_block_t _Nullable centerTileStateChangedBlock;
  • Bounding box of the map

    Declaration

    Objective-C

    @property (readonly) GLMapBBox bbox;
  • Sets position of map attribution.

    Declaration

    Objective-C

    @property GLMapPlacement attributionPosition;
  • Calculate bounding box of the map with insets

    Declaration

    Objective-C

    - (GLMapBBox)bboxWithInsets:(PlatformEdgeInsets)insets;

    Parameters

    insets

    insets in points

    Return Value

    bounding box

  • Sets text at the bottom of ruler.

    It’s used to display map center coordinates or any other useful information

    Declaration

    Objective-C

    - (void)setScaleRulerBottomText:(NSString *_Nullable)text;
  • Sets style of text at the bottom of ruler. Defaul is “{font-size:11; text-color:black; fill-color:#000000B2; font-stroke-width:2pt; font-stroke-color:#FFFFFF99;}

    Declaration

    Objective-C

    - (void)setScaleRulerBottomTextStyle:(nonnull GLMapVectorStyle *)style;
  • Sets style of the scale ruler. //Sets scale ruler position to the bottom center part of screen. And width to half of screen width [_mapView setScalePlacement:GLMapPlacement_BottomLeft paddings:CGPointMake(5, 5) maxWidth:300];

    Declaration

    Objective-C

    - (void)setScaleRulerPlacement:(GLMapPlacement)placement
                          paddings:(CGPoint)paddings
                          maxWidth:(float)maxWidth;

    Parameters

    placement

    placement of text

    paddings

    paddings of scale ruler

    maxWidth

    maxWidth of scale hit in points

  • Sets block that called when ruler value is updated. Block allows to translate units and use custom digit format inside ruler.

    Declaration

    Objective-C

    - (void)setScaleRulerTextFormatterBlock:
        (nonnull GLMapScaleRulerTextFormatterBlock)block;

    Parameters

    block

    New text formatter block

User Location

  • Last location received by GLMapView

    Declaration

    Objective-C

    @property (readonly) CLLocation *_Nullable lastLocation;
  • Defines if user location is displayed or not. If YES, user location is displayed.

    Declaration

    Objective-C

    @property (nonatomic) BOOL showUserLocation;
  • Sets alternative user location images.

    Declaration

    Objective-C

    - (void)setUserLocationImage:(PlatformImage *_Nullable)locationImage
                   movementImage:(PlatformImage *_Nullable)movementImage;

    Parameters

    locationImage

    new user location image. If nil, old image is left unchanged.

    movementImage

    new user movement image. If nil, old image is left unchanged.

Style

  • Sets map style

    Declaration

    Objective-C

    - (void)setStyle:(nonnull GLMapVectorCascadeStyle *)style;

    Parameters

    style

    Style to set

  • Sets scale of font loaded frrom styleBundle. By default fontScale is 1.0

    Declaration

    Objective-C

    - (void)setFontScale:(float)fontScale;
  • Base source of tiles. By default it is vector source

    Declaration

    Objective-C

    @property (copy) GLMapTileSource *_Nonnull base;
  • Tiles that draws over base tiles

    Declaration

    Objective-C

    @property (copy) NSArray<GLMapTileSource *> *_Nullable overlays;
  • Draw elevation lines. By default is false.

    Declaration

    Objective-C

    @property BOOL drawElevationLines;
  • Draw hill shades. By default is false.

    Declaration

    Objective-C

    @property BOOL drawHillshades;
  • Forces reloading of all tiles. Call this function after modifying map style with functions loadStyle*

    Declaration

    Objective-C

    - (void)reloadTiles;
  • Removes all tiles. Useful to reduce memory usage in background mode

    Declaration

    Objective-C

    - (void)removeAllTiles;

Configuring the Map Position

  • Origin point of the map coordinate system (X, Y).

    Changing the values in this property between 0 and 1 in relative coordinates describes the point of GLMapView which is considered as a center point for mapCenter and setMapCenter:animated:.

    See

    mapCenter, setMapCenter:

    Declaration

    Objective-C

    @property CGPoint mapOrigin;
  • Coordinates of the origin point of the map.

    See

    mapOrigin

    Declaration

    Objective-C

    @property GLMapPoint mapCenter;
  • Coordinates of the origin point of the map.

    See

    mapOrigin

    Declaration

    Objective-C

    @property GLMapGeoPoint mapGeoCenter;
  • Current zoom of the map view.

    Declaration

    Objective-C

    @property double mapZoom;
  • Current zoom level of the map view.

    Declaration

    Objective-C

    @property double mapZoomLevel;
  • Maximum possible value of mapZoom. Map won’t zoom closer.

    Declaration

    Objective-C

    @property double maxZoom;
  • Map rotation angle form 0° to 360°.

    Declaration

    Objective-C

    @property double mapAngle;
  • Captures state of map for search (screenScale, mapCenter, zoom etc)

    Declaration

    Objective-C

    @property (readonly) GLMapViewState *_Nonnull state;
  • Starts animation described in block.

    Declaration

    Objective-C

    - (nonnull GLMapAnimation *)animate:(nonnull GLMapAnimationBlock)animations;

    Parameters

    animations

    Block with animations. You could set animation params using block param.

  • Starts animation described in block.

    Declaration

    Objective-C

    - (nonnull GLMapAnimation *)animate:(nonnull GLMapAnimationBlock)animations
                         withCompletion:
                             (GLMapAnimationCompletionBlock _Nullable)completion;

    Parameters

    animations

    Block with animations. You could set animation params using block param.

    completion

    Commpletion block. It’s called when animation ends or cancelled.

  • Starts animation

    Declaration

    Objective-C

    - (void)startAnimation:(nonnull GLMapAnimation *)animation;

    Parameters

    animation

    Animation to start.

  • Cancels all map position, zoom and angle animations.

    Declaration

    Objective-C

    - (void)cancelMapAnimations;
  • Calculates map zoom to fit bbox in view with given size.

    Warning

    If bbox size is 0, returns +inf.

    Declaration

    Objective-C

    - (double)mapZoomForBBox:(GLMapBBox)bbox viewSize:(CGSize)size;
  • Calculates map zoom to fit current view.

    Warning

    If bbox size is 0, returns +inf.

    Declaration

    Objective-C

    - (double)mapZoomForBBox:(GLMapBBox)bbox;
  • Enables clipping of visible map area

    Declaration

    Objective-C

    - (void)enableClipping:(GLMapBBox)bbox
                  minLevel:(float)minLevel
                  maxLevel:(float)maxLevel;

    Parameters

    bbox

    clipping bbox to set

    minLevel

    min zoom level

    maxLevel

    max zoom level

  • Disables clipping of visible map area

    Declaration

    Objective-C

    - (void)disableClipping;
  • Checks if clipping is enabled

    Declaration

    Objective-C

    - (BOOL)isClippingEnabled;

    Return Value

    true if enabled

Converting map coordinates

  • Converts a point on the screen to an internal map coordinate.

    Declaration

    Objective-C

    - (GLMapPoint)makeMapPointFromDisplayPoint:(CGPoint)displayPoint;

    Parameters

    displayPoint

    The point you want to convert.

    Return Value

    The internal map coordinate of the specified point.

  • Converts a distance between two points on the screen to an internal map coordinate at current map zoom.

    Declaration

    Objective-C

    - (GLMapPoint)makeMapPointFromDisplayDelta:(CGPoint)displayDelta;

    Parameters

    displayDelta

    The delta you want to convert.

    Return Value

    The delta in internal map coordinates.

  • Converts a distance between two points on the screen to an internal map coordinate.

    Declaration

    Objective-C

    - (GLMapPoint)makeMapPointFromDisplayDelta:(CGPoint)displayDelta
                                    andMapZoom:(double)mapZoom
                                   andMapAngle:(double)mapAngle;

    Parameters

    displayDelta

    The delta you want to convert.

    mapZoom

    Zoom of map

    mapAngle

    Angle of map

    Return Value

    The delta in internal map coordinates.

  • Converts a geo point to the point on the screen.

    Declaration

    Objective-C

    - (CGPoint)makeDisplayPointFromGeoPoint:(GLMapGeoPoint)geoPoint;

    Parameters

    geoPoint

    The geo point you want to convert.

    Return Value

    Coresponding point on the screen.

  • Converts a point on the screen to the geo point.

    Declaration

    Objective-C

    - (GLMapGeoPoint)makeGeoPointFromDisplayPoint:(CGPoint)displayPoint;

    Parameters

    displayPoint

    Point on screen you want to convert.

    Return Value

    Coresponding geo point.

  • Converts an internal map coordinate to the point on the screen.

    Declaration

    Objective-C

    - (CGPoint)makeDisplayPointFromMapPoint:(GLMapPoint)mapPoint;

    Parameters

    mapPoint

    The map point you want to convert.

    Return Value

    Coresponding point on the screen.

  • Converts geo coordinates to the internal point.

    Declaration

    Objective-C

    + (GLMapPoint)makeMapPointFromGeoPoint:(GLMapGeoPoint)geoPoint;

    Parameters

    geoPoint

    Geo point you want to convert.

    Return Value

    Corresponding point in map coordinates.

  • Converts an internal point to geo coordinates.

    Declaration

    Objective-C

    + (GLMapGeoPoint)makeGeoPointFromMapPoint:(GLMapPoint)mapPoint;

    Parameters

    mapPoint

    Point in map coordinates.

    Return Value

    Corresponding point in geo coordinates.

  • Converts distance in meters to pixels on the screen

    Declaration

    Objective-C

    - (double)makePixelsFromMeters:(double)meters;

    Parameters

    meters

    Distance in meters

    Return Value

    Distance in pixels

  • Converts distance in pixels on the screen to meters

    Declaration

    Objective-C

    - (double)makeMetersFromPixels:(double)pixels;

    Parameters

    pixels

    Distance in pixels

    Return Value

    Distance in meters

  • Converts distance in meters to map coordinates

    Declaration

    Objective-C

    - (double)makeInternalFromMeters:(double)meters;

    Parameters

    meters

    Distance in meters

    Return Value

    Distance in map coordinates

  • Converts distance in map coordinates to meters

    Declaration

    Objective-C

    - (double)makeMetersFromInternal:(double)internal;

    Parameters

    internal

    Distance in map coordinates

    Return Value

    Distance in meters

  • Converts distance in pixels to map coordinates

    Declaration

    Objective-C

    - (double)makeInternalFromPixels:(double)pixels;

    Parameters

    pixels

    Distance in pixels

    Return Value

    Distance in map coordinates

  • Converts distance in map coordinates to pixels

    Declaration

    Objective-C

    - (double)makePixelsFromInternal:(double)internal;

    Parameters

    internal

    Distance in map coordinates

    Return Value

    Distance in pixels

Vector Objects

  • Adds the GLMapDrawObject to the map view.

    Declaration

    Objective-C

    - (void)add:(nonnull GLMapDrawObject *)drawObject;

    Parameters

    drawObject

    object to add

  • Removes previsously added GLMapDrawObject from the map view.

    Declaration

    Objective-C

    - (void)remove:(nonnull GLMapDrawObject *)drawObject;

    Parameters

    drawObject

    object to be removed.

  • Map locale settings

    Set of supported locales is returned by [GLMapLocaleSettings supportedLocales]

    E.g. to set map languages priority to English, Deutsch, native

    [_mapView setLocaleSettings:[[GLMapLocaleSettings alloc] initWithLocalesOrder:@[@"en", @"de", @"native"]]];
    // Then reload tiles to apply new locale settings
    [_mapView reloadTiles];
    

    Default value is supported languages from [NSLocale preferredLanguages]

    Declaration

    Objective-C

    @property (strong) GLMapLocaleSettings *_Nonnull localeSettings;