Table of Contents

Class MbglMap

Namespace
MapLibreNative.Maui

Wraps mbgl_map_t*. Dispose on the render thread.

public sealed class MbglMap : IDisposable
Inheritance
MbglMap

Constructors

MbglMap(MbglFrontend, MbglRunLoop, string?, string?, float, Action<string, string?>?, string?, ulong)

public MbglMap(MbglFrontend frontend, MbglRunLoop runLoop, string? cachePath = null, string? assetPath = null, float pixelRatio = 1, Action<string, string?>? observer = null, string? apiKey = null, ulong maxCacheSizeBytes = 0)

Parameters

frontend MbglFrontend
runLoop MbglRunLoop
cachePath string
assetPath string
pixelRatio float
observer Action<string, string>?
apiKey string
maxCacheSizeBytes ulong

Properties

Bearing

public double Bearing { get; }

Property Value

double

Center

public (double Lat, double Lon) Center { get; }

Property Value

(double X, double Y)

IsFullyLoaded

public bool IsFullyLoaded { get; }

Property Value

bool

IsGestureInProgress

public bool IsGestureInProgress { get; }

Property Value

bool

IsPanning

True while a pan transition/animation is running.

public bool IsPanning { get; }

Property Value

bool

IsRotating

True while a rotate transition/animation is running.

public bool IsRotating { get; }

Property Value

bool

IsScaling

True while a zoom/scale transition/animation is running.

public bool IsScaling { get; }

Property Value

bool

Pitch

public double Pitch { get; }

Property Value

double

Zoom

public double Zoom { get; }

Property Value

double

Methods

CameraForBounds(double, double, double, double, double, double, double, double)

Returns the CameraOptions (lat, lon, zoom, bearing, pitch) that fits the given bounds with optional screen padding (top, left, bottom, right in pixels).

public (double Lat, double Lon, double Zoom, double Bearing, double Pitch) CameraForBounds(double latSw, double lonSw, double latNe, double lonNe, double padTop = 0, double padLeft = 0, double padBottom = 0, double padRight = 0)

Parameters

latSw double
lonSw double
latNe double
lonNe double
padTop double
padLeft double
padBottom double
padRight double

Returns

(double Lat, double Lon, double Zoom, double Bearing, double Pitch)

CameraForLatLngs(IReadOnlyList<(double Lat, double Lon)>, double, double, double, double)

public CameraResult CameraForLatLngs(IReadOnlyList<(double Lat, double Lon)> points, double padTop = 0, double padLeft = 0, double padBottom = 0, double padRight = 0)

Parameters

points IReadOnlyList<(double Lat, double Lon)>
padTop double
padLeft double
padBottom double
padRight double

Returns

CameraResult

CancelTransitions()

public void CancelTransitions()

Dispose()

public void Dispose()

DumpDebugLogs()

public void DumpDebugLogs()

EaseTo(double, double, double, double, double, double, double, double, double, long)

public void EaseTo(double lat, double lon, double zoom, double bearing, double pitch, double padTop, double padLeft, double padBottom, double padRight, long durationMs)

Parameters

lat double
lon double
zoom double
bearing double
pitch double
padTop double
padLeft double
padBottom double
padRight double
durationMs long

EaseTo(double, double, double, double, double, long)

public void EaseTo(double lat, double lon, double zoom, double bearing, double pitch, long durationMs)

Parameters

lat double
lon double
zoom double
bearing double
pitch double
durationMs long

FlyTo(double, double, double, double, double, double, double, double, double, long)

public void FlyTo(double lat, double lon, double zoom, double bearing, double pitch, double padTop, double padLeft, double padBottom, double padRight, long durationMs)

Parameters

lat double
lon double
zoom double
bearing double
pitch double
padTop double
padLeft double
padBottom double
padRight double
durationMs long

FlyTo(double, double, double, double, double, long)

public void FlyTo(double lat, double lon, double zoom, double bearing, double pitch, long durationMs)

Parameters

lat double
lon double
zoom double
bearing double
pitch double
durationMs long

GetBounds()

public BoundOptions GetBounds()

Returns

BoundOptions

GetCamera(double, double, double, double)

Reads the full camera state in one call, optionally offset by edge padding.

public CameraResult GetCamera(double padTop = 0, double padLeft = 0, double padBottom = 0, double padRight = 0)

Parameters

padTop double
padLeft double
padBottom double
padRight double

Returns

CameraResult

GetClusterChildren(string, string)

Returns the direct children of a cluster as a GeoJSON FeatureCollection string, or null.

public string? GetClusterChildren(string sourceId, string clusterFeatureJson)

Parameters

sourceId string
clusterFeatureJson string

Returns

string

GetClusterExpansionZoom(string, string)

Returns the zoom level at which the given cluster (a Feature returned by a rendered-features query on a clustered GeoJSON source) expands, or null.

public double? GetClusterExpansionZoom(string sourceId, string clusterFeatureJson)

Parameters

sourceId string
clusterFeatureJson string

Returns

double?

GetClusterLeaves(string, string, uint, uint)

Returns up to limit leaf features of a cluster (from offset) as a GeoJSON FeatureCollection string, or null.

public string? GetClusterLeaves(string sourceId, string clusterFeatureJson, uint limit = 10, uint offset = 0)

Parameters

sourceId string
clusterFeatureJson string
limit uint
offset uint

Returns

string

GetDebugOptions()

Get the current debug overlay bitmask (MbglDebugOptions).

public int GetDebugOptions()

Returns

int

GetFeatureState(string, string, string?)

public string? GetFeatureState(string sourceId, string featureId, string? sourceLayerId = null)

Parameters

sourceId string
featureId string
sourceLayerId string

Returns

string

GetPrefetchZoomDelta()

public int GetPrefetchZoomDelta()

Returns

int

GetStyle()

public MbglStyle GetStyle()

Returns

MbglStyle

JumpTo(double, double, double, double, double)

public void JumpTo(double lat, double lon, double zoom, double bearing = 0, double pitch = 0)

Parameters

lat double
lon double
zoom double
bearing double
pitch double

JumpTo(double, double, double, double, double, double, double, double, double)

public void JumpTo(double lat, double lon, double zoom, double bearing, double pitch, double padTop, double padLeft, double padBottom, double padRight)

Parameters

lat double
lon double
zoom double
bearing double
pitch double
padTop double
padLeft double
padBottom double
padRight double

LatLngBoundsForCamera()

public (double LatSW, double LonSW, double LatNE, double LonNE) LatLngBoundsForCamera()

Returns

(double LatSW, double LonSW, double LatNE, double LonNE)

LatLngForPixel(double, double)

public (double Lat, double Lon) LatLngForPixel(double x, double y)

Parameters

x double
y double

Returns

(double X, double Y)

LatLngsForPixels(IReadOnlyList<(double X, double Y)>)

public (double Lat, double Lon)[] LatLngsForPixels(IReadOnlyList<(double X, double Y)> pixels)

Parameters

pixels IReadOnlyList<(double Lat, double Lon)>

Returns

(double X, double Y)[]

MoveBy(double, double, long)

public void MoveBy(double dx, double dy, long durationMs = 0)

Parameters

dx double
dy double
durationMs long

OnDoubleTap(double, double)

public void OnDoubleTap(double x, double y)

Parameters

x double
y double

OnPanEnd()

public void OnPanEnd()

OnPanMove(double, double)

public void OnPanMove(double dx, double dy)

Parameters

dx double
dy double

OnPanStart(double, double)

public void OnPanStart(double x, double y)

Parameters

x double
y double

OnPinch(double, double, double)

public void OnPinch(double scaleFactor, double cx, double cy)

Parameters

scaleFactor double
cx double
cy double

OnScroll(double, double, double)

public void OnScroll(double delta, double cx, double cy)

Parameters

delta double
cx double
cy double

PitchBy(double, long)

public void PitchBy(double deltaDegrees, long durationMs = 0)

Parameters

deltaDegrees double
durationMs long

PixelForLatLng(double, double)

public (double X, double Y) PixelForLatLng(double lat, double lon)

Parameters

lat double
lon double

Returns

(double X, double Y)

PixelsForLatLngs(IReadOnlyList<(double Lat, double Lon)>)

public (double X, double Y)[] PixelsForLatLngs(IReadOnlyList<(double Lat, double Lon)> points)

Parameters

points IReadOnlyList<(double Lat, double Lon)>

Returns

(double X, double Y)[]

QueryFeatureExtensions(string, string, string, string, string?)

Query a feature extension. For clustered GeoJSON sources use extension "supercluster" with field "children", "leaves", or "expansion-zoom". Returns JSON (a FeatureCollection or a bare value), or null.

public string? QueryFeatureExtensions(string sourceId, string featureJson, string extension, string extensionField, string? argsJson = null)

Parameters

sourceId string
featureJson string
extension string
extensionField string
argsJson string

Returns

string

QueryRenderedFeaturesAtPoint(double, double, string?)

Query rendered features at a screen point. Returns a GeoJSON FeatureCollection string, or null if the renderer is not ready.

public string? QueryRenderedFeaturesAtPoint(double x, double y, string? layerIds = null)

Parameters

x double
y double
layerIds string

Optional comma-separated layer IDs to restrict the query.

Returns

string

QueryRenderedFeaturesInBox(double, double, double, double, string?)

Query rendered features in a screen bounding box.

public string? QueryRenderedFeaturesInBox(double x1, double y1, double x2, double y2, string? layerIds = null)

Parameters

x1 double
y1 double
x2 double
y2 double
layerIds string

Returns

string

QuerySourceFeatures(string, string?, string?)

Query all features in a source's data, regardless of visibility. Returns a GeoJSON FeatureCollection string, or null if the renderer is not ready.

public string? QuerySourceFeatures(string sourceId, string? sourceLayerIds = null, string? filterJson = null)

Parameters

sourceId string
sourceLayerIds string

Comma-separated source-layer names — required for vector sources, ignored for GeoJSON sources.

filterJson string

Optional style-spec filter expression JSON.

Returns

string

ReduceMemoryUse()

public void ReduceMemoryUse()

RemoveFeatureState(string, string?, string?, string?)

public void RemoveFeatureState(string sourceId, string? featureId = null, string? stateKey = null, string? sourceLayerId = null)

Parameters

sourceId string
featureId string
stateKey string
sourceLayerId string

RotateBy(double, double, double, double)

public void RotateBy(double x0, double y0, double x1, double y1)

Parameters

x0 double
y0 double
x1 double
y1 double

ScaleBy(double, double, double, long)

Multiply the map scale by scale (2.0 = one zoom level in), optionally about a screen anchor point (NaN = viewport centre).

public void ScaleBy(double scale, double anchorX = NaN, double anchorY = NaN, long durationMs = 0)

Parameters

scale double
anchorX double
anchorY double
durationMs long

SetBounds(double, double, double, double, double, double, double, double)

Set geographic constraints and zoom/pitch limits. Pass NaN for any parameter to leave it unconstrained.

public void SetBounds(double latSw = NaN, double lonSw = NaN, double latNe = NaN, double lonNe = NaN, double minZoom = NaN, double maxZoom = NaN, double minPitch = NaN, double maxPitch = NaN)

Parameters

latSw double
lonSw double
latNe double
lonNe double
minZoom double
maxZoom double
minPitch double
maxPitch double

SetConstrainMode(int)

public void SetConstrainMode(int mode)

Parameters

mode int

0=None 1=HeightOnly 2=WidthAndHeight 3=Screen

SetDebugOptions(int)

Set the debug overlay bitmask. Pass None to disable all.

public void SetDebugOptions(int options)

Parameters

options int

SetFeatureState(string, string, string, string?)

public void SetFeatureState(string sourceId, string featureId, string stateJson, string? sourceLayerId = null)

Parameters

sourceId string
featureId string
stateJson string
sourceLayerId string

SetGestureInProgress(bool)

public void SetGestureInProgress(bool inProgress)

Parameters

inProgress bool

SetMaxZoom(double)

public void SetMaxZoom(double zoom)

Parameters

zoom double

SetMinZoom(double)

public void SetMinZoom(double zoom)

Parameters

zoom double

SetNorthOrientation(int)

public void SetNorthOrientation(int orientation)

Parameters

orientation int

0=Upwards 1=Rightwards 2=Downwards 3=Leftwards

SetPrefetchZoomDelta(int)

public void SetPrefetchZoomDelta(int delta)

Parameters

delta int

SetProjectionMode(bool, double, double)

public void SetProjectionMode(bool axonometric = false, double xSkew = 0, double ySkew = 1)

Parameters

axonometric bool
xSkew double
ySkew double

SetSize(int, int)

public void SetSize(int widthPx, int heightPx)

Parameters

widthPx int
heightPx int

SetStyleJson(string)

public void SetStyleJson(string json)

Parameters

json string

SetStyleUrl(string)

public void SetStyleUrl(string url)

Parameters

url string

SetTileLodMinRadius(double)

public void SetTileLodMinRadius(double radius)

Parameters

radius double

SetTileLodMode(int)

public void SetTileLodMode(int mode)

Parameters

mode int

0=Default 1=Distance

SetTileLodPitchThreshold(double)

public void SetTileLodPitchThreshold(double thresholdRadians)

Parameters

thresholdRadians double

SetTileLodScale(double)

public void SetTileLodScale(double scale)

Parameters

scale double

SetTileLodZoomShift(double)

public void SetTileLodZoomShift(double shift)

Parameters

shift double

SetViewportMode(int)

public void SetViewportMode(int mode)

Parameters

mode int

0=Default 1=FlippedY

TriggerRepaint()

public void TriggerRepaint()