Calls release(), for await using.
Hosts without Symbol.asyncDispose, such as ArkTS, leave it undefined.
Calls dispose(), for using.
Hosts without Symbol.dispose, such as ArkTS, leave it undefined.
ReadonlyidThe native handle value, which runtime events report as their source. It stays readable after release, so events drained later still match this handle.
ReadonlyreadySettles once the map is ready, and rejects with a MaplibreError when it
fails to become ready. Asynchronous calls on the map before then wait for
it. A rejection that nothing awaits isn't reported as unhandled.
The commands of this owner that discard their outcomes.
Whether a release, dispose, or discard has ended the handle.
Adds a source whose GeoJSON tiles come from callbacks.
See mln_map_add_custom_geometry_source in the
C API reference.
Errors:
Status.alreadyExists when the style already has a source named
sourceId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Adds a source whose vector tiles come from callbacks.
See mln_map_add_custom_vector_source in the
C API reference.
Errors:
Status.alreadyExists when the style already has a source named
sourceId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Adds a GeoJSON source with no data.
Give it data with MapHandle.setGeoJsonSourceData() or
MapHandle.setGeoJsonSourceUrl(). Its options stay fixed for as long as
the style holds it.
attribution is the source's
[attribution](https://maplibre.org/maplibre-style-spec/sources/#attribution),
or empty for none.
See mln_map_add_geo_json_source in the
C API reference.
Errors:
Status.invalidArgument when an option in options is out of range.Status.alreadyExists when the style already has a source named
sourceId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Optionaloptions: GeoJsonSourceOptionsOptionalattribution: stringAdds an image source that shows image.
coordinates are the image's four corners, clockwise from the top left.
See mln_map_add_image_source_image in the
C API reference.
Errors:
Status.alreadyExists when the style already has a source named
sourceId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Adds a layer to the map's style.
layerJson is a
[layer](https://maplibre.org/maplibre-style-spec/layers/) object.
The layer goes below the layer named beforeLayerId, or above every layer
when beforeLayerId is empty.
See mln_map_add_style_layer_json in the
C API reference.
Errors:
Status.notFound when the style has no layer named beforeLayerId, or
no source with the ID that the layer uses.Status.alreadyExists when the style already has a layer with the new
layer's ID.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.OptionalbeforeLayerId: stringAdds a source to the map's style.
sourceJson is a
[source](https://maplibre.org/maplibre-style-spec/sources/) object.
See mln_map_add_style_source_json in the
C API reference.
Errors:
Status.alreadyExists when the style already has a source named
sourceId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Moves the camera relative to where it is, as a gesture does.
delta can pan the map's content by an offset on the screen, scale the
zoom, and add to the bearing and pitch. An anchor keeps one screen point in
place while the scale, bearing, or pitch changes. An anchor needs one of
those changes, and combines with an offset only when the delta has no
animation. The function finishes when the map applies the delta, before an
animation ends.
A delta that replaces an animated one starts from where that animation left
the camera, so the rest of the replaced change never happens. To reach an
exact camera, use MapHandle.updateCamera().
A delta in the end phase can carry momentum, which keeps the camera moving
from the gesture's release velocities and slows it on each rendered frame.
The gesture lasts until the momentum ends: the snapshot keeps
gesture_in_progress set, and camera events report
CameraChangeSource.momentum. With momentum, animation sets only
transition_id and the end handler, which runs when the gesture ends.
A delta in the begin phase, MapHandle.cancelCameraTransitions(), or a
cancellation by that ID stops the momentum. A later command that sets a
field stops only the parts of the momentum that move that field. On a
tilted map, the pan moves the map's content the same distance on the screen
in every direction.
See mln_map_apply_camera_delta in the
C API reference.
Creates a session that renders the map into a ring of Android hardware buffers that the library allocates.
Acquire each frame with RenderSessionHandle.acquireFrame(), and get its
buffer with AcquiredFrameHandle.withAndroidHardwareBuffer().
RenderSessionHandle.resize() gives the ring new buffers of the new size.
A Vulkan build renders with device, or, when device is null, with a
device that the library creates. An OpenGL build uses an EGL context on the
default display, and device must be null. Attach with
RenderDriverKind.coreWorker.
To show the buffers through Android's UI, such as with
Bitmap.wrapHardwareBuffer, attach without GpuSyncKindFlag.syncFd in
RenderSessionAttachOptions.producerSyncKinds, so that each frame finishes
before you acquire it. Keep each frame acquired until the next one replaces
it on screen, then release it with GpuSyncKind.cpuComplete. Give the ring
3 buffers, so the session can render while you hold two frames.
See mln_map_attach_android_hardware_buffer_ring in the
C API reference.
Errors:
Status.unsupported when Android is older than 8.0, API level 26, or
when the graphics context can't render into hardware buffers: the Vulkan
device lacks VK_ANDROID_external_memory_android_hardware_buffer, or the
EGL display lacks EGL_ANDROID_get_native_client_buffer or
EGL_ANDROID_image_native_buffer.Status.nativeError when the library can't create its Vulkan device or
initialize the default EGL display.Creates a session that presents the map to an Android window, with a graphics context that the library creates.
A Vulkan build presents with device, or, when device is null, with a
device that the library creates. An OpenGL build uses an EGL context on the
default display, and device must be null. Attach with
RenderDriverKind.coreWorker.
When the platform destroys the window, such as in
SurfaceHolder.Callback.surfaceDestroyed, release the target with
RenderSessionHandle.releaseTarget(), or give the session a new window
with RenderSessionHandle.setAndroidSurfaceTarget(), without waiting for
that to complete. The session keeps its own reference to the window and
stays usable for the next window. A frame to the destroyed window finishes
with RenderResult.targetNotReady, or with RenderResult.rendered if the
window went away while the frame was presenting.
See mln_map_attach_android_surface in the
C API reference.
Errors:
Status.invalidArgument when surface has no window, such as after the
platform destroyed it.Status.unsupported when you created device without
VulkanDeviceOptions.presentation.Status.unsupported when the GPU or the Vulkan loader can't present.Status.nativeError when the library can't create the graphics context
or the window's surface.Creates a session that renders the map into a ring of dmabufs that the library allocates.
Acquire each frame with RenderSessionHandle.acquireFrame(), and get its
buffer with AcquiredFrameHandle.withDmaBuf().
RenderSessionHandle.resize() gives the ring new buffers of the new size.
A Vulkan build renders with device, or, when device is null, with a
device that the library creates. An OpenGL build uses an EGL context of its
own, and device must be null. Attach with RenderDriverKind.coreWorker.
For a reader that waits on no sync file, such as a Wayland compositor
without explicit synchronization, attach without GpuSyncKindFlag.syncFd
in RenderSessionAttachOptions.producerSyncKinds, so that each frame
finishes before you acquire it. Keep each frame acquired until its reader
is done with the buffer. Give the ring 3 buffers, so the session can render
while you hold two frames.
See mln_map_attach_dma_buf_ring in the
C API reference.
Errors:
Status.unsupported when the graphics context can't render into a dmabuf
of any of formats.Status.nativeError when the library can't create its Vulkan device or
initialize an EGL display.Creates a session that renders the map into a ring of DXGI shared textures that the library allocates.
Acquire each frame with RenderSessionHandle.acquireFrame(), and get its
texture with AcquiredFrameHandle.withDxgiSharedTexture().
RenderSessionHandle.resize() gives the ring new textures of the new size.
The session renders with the Vulkan device device, or, when device is
null, with one that the library creates. The textures belong to the
device's GPU, so open them on a D3D11 or D3D12 device of the same adapter.
To pick the GPU, create device with VulkanDeviceOptions.deviceLuid set
to your adapter's LUID. Attach with RenderDriverKind.coreWorker.
For a reader that waits on no fence, such as Flutter's texture registrar,
attach without GpuSyncKindFlag.d3d12Fence in
RenderSessionAttachOptions.producerSyncKinds, so that each frame finishes
before you acquire it. Release a frame with GpuSyncKind.cpuComplete only
once the reader has finished with its texture.
See mln_map_attach_dxgi_shared_texture_ring in the
C API reference.
Errors:
Status.unsupported in an OpenGL build, or when the GPU can't share the
textures: D3D11 has no adapter with the Vulkan device's LUID or can't
share textures through NT handles, or the device lacks
VK_KHR_external_memory_win32 or can't import D3D11 textures.Status.nativeError when the library can't create its Vulkan device or a
D3D11 device on the adapter.Creates a session that renders the map into a ring of IOSurfaces that the library allocates.
Acquire each frame with RenderSessionHandle.acquireFrame(), and get its
surface with AcquiredFrameHandle.withIoSurface().
RenderSessionHandle.resize() gives the ring new surfaces of the new size.
Attach with RenderDriverKind.coreWorker.
To hand frames to a reader that can't wait on an event, such as Flutter's
copyPixelBuffer, attach without GpuSyncKindFlag.metalSharedEvent in
RenderSessionAttachOptions.producerSyncKinds, so that each frame finishes
before you acquire it. Release a frame with GpuSyncKind.cpuComplete only
once the reader has finished with its surface.
See mln_map_attach_io_surface_ring in the
C API reference.
Errors:
Status.unsupported when supportedRenderBackendMask() lacks
RenderBackendFlag.metal.Status.nativeError when context names no device and the system has no
Metal device.Creates a session that renders the map into a ring of your Metal textures.
See mln_map_attach_metal_borrowed_texture in the
C API reference.
Errors:
Status.unsupported when supportedRenderBackendMask() lacks
RenderBackendFlag.metal, or when the target supports none of the
producer_sync_kinds in options.Creates a session that renders the map to a Metal layer.
See mln_map_attach_metal_surface in the
C API reference.
Errors:
Status.unsupported when supportedRenderBackendMask() lacks
RenderBackendFlag.metal.Attaches a render session that renders the map offscreen.
Read each image's pixels with RenderSessionHandle.readTexture().
The session renders on device. When device is null, the session creates
a device with the default options, and releases it when the session ends.
See mln_map_attach_offscreen in the
C API reference.
Errors:
Status.invalidState when the map already has a render session.Status.nativeError when device is null and the platform can't create
a device.Optionaldevice: OffscreenDeviceHandleCreates a session that presents the map to an OpenHarmony window, with a graphics context that the library creates.
A Vulkan build presents with device, or, when device is null, with a
device that the library creates. An OpenGL build uses an EGL context on the
default display, and device must be null. Attach with
RenderDriverKind.coreWorker.
When the platform destroys the window, such as in an XComponent's
onSurfaceDestroyed callback, release the target with
RenderSessionHandle.releaseTarget(), or give the session a new window
with RenderSessionHandle.setOhosSurfaceTarget(), without waiting for that
to complete. The session keeps its own reference to the window and stays
usable for the next window. A frame to the destroyed window finishes with
RenderResult.targetNotReady, or with RenderResult.rendered if the
window went away while the frame was presenting.
See mln_map_attach_ohos_surface in the
C API reference.
Errors:
Status.invalidArgument when no surface in this process has
OhosSurfaceDescriptor.surfaceId, such as after the platform destroyed
it.Status.unsupported when you created device without
VulkanDeviceOptions.presentation.Status.unsupported when the GPU or the Vulkan loader can't present.Status.nativeError when the library can't create the graphics context
or the window's surface.Creates a session that renders the map into a ring of your OpenGL textures.
See mln_map_attach_open_gl_borrowed_texture in the
C API reference.
Errors:
Status.unsupported when openGlSupportedContextProviderMask() lacks
the context's platform, or when the target supports none of the
producer_sync_kinds in options.Creates a session that renders the map to an OpenGL surface.
See mln_map_attach_open_gl_surface in the
C API reference.
Errors:
Status.unsupported when openGlSupportedContextProviderMask() lacks
the context's platform.Creates a session that renders the map into a ring of your Vulkan images.
See mln_map_attach_vulkan_borrowed_texture in the
C API reference.
Errors:
Status.unsupported when supportedRenderBackendMask() lacks
RenderBackendFlag.vulkan, or when the target supports none of the
producer_sync_kinds in options.Creates a session that renders the map to a Vulkan surface.
See mln_map_attach_vulkan_surface in the
C API reference.
Errors:
Status.unsupported when supportedRenderBackendMask() lacks
RenderBackendFlag.vulkan.Creates a session that presents the map to a Wayland surface, with a graphics context that the library creates.
A Vulkan build presents with device, or, when device is null, with a
device that the library creates. An OpenGL build uses an EGL context on the
display, and device must be null. Attach with
RenderDriverKind.coreWorker.
The session presents without waiting for the compositor, so demand at most one frame per display refresh.
Keep the surface until a release or replacement of the target, or a detach of the session, completes. Keep the display connected until the session's detach completes. In an OpenGL build, if you also use EGL on the display, initialize it before you attach.
See mln_map_attach_wayland_surface in the
C API reference.
Errors:
Status.unsupported when you created device without
VulkanDeviceOptions.presentation.Status.unsupported when the GPU or the Vulkan loader can't present to
Wayland.Status.nativeError when the library can't create the graphics context
or present to the surface.Creates a session that renders the map into a ring of your WebGPU textures.
See mln_map_attach_web_gpu_borrowed_texture in the
C API reference.
Errors:
Status.unsupported when supportedRenderBackendMask() lacks
RenderBackendFlag.webGpu, or when the target supports none of the
producer_sync_kinds in options.Creates a session that renders the map to a WebGPU surface.
See mln_map_attach_web_gpu_surface in the
C API reference.
Errors:
Status.unsupported when supportedRenderBackendMask() lacks
RenderBackendFlag.webGpu.Creates a session that presents the map to a Win32 window, with a graphics context that the library creates.
A Vulkan build presents with device, or, when device is null, with a
device that the library creates. An OpenGL build uses a WGL context, and
device must be null. Attach with RenderDriverKind.coreWorker.
An OpenGL build sets the window's pixel format, so don't set one yourself.
The session presents without waiting for the display, so demand at most one
frame per display refresh. While the window is minimized, frame demands
finish with RenderResult.targetNotReady.
Keep the window until a release or replacement of the target, or a detach of the session, completes.
See mln_map_attach_win32_window in the
C API reference.
Errors:
Status.invalidArgument when window isn't a window, or, in an OpenGL
build, already has another pixel format.Status.invalidState when window is minimized or has no client area.Status.unsupported when you created device without
VulkanDeviceOptions.presentation.Status.invalidState when window was minimized before the attach ran.Status.unsupported when the GPU or the Vulkan loader can't present.Status.nativeError when the library can't create the graphics context
or present to the window.Holds back the map's changes from rendering until
MapHandle.endCommandGroup(), so they show in the same frame.
Groups nest, and the changes render when the outermost group ends.
See mln_map_begin_command_group in the
C API reference.
Computes a camera that fits a GeoJSON geometry in the map's view.
geometry is a GeoJSON geometry object with at least one coordinate, not a
feature. The camera keeps the map's bearing and pitch unless fitOptions
sets them, and its zoom stays within the map's zoom limits.
See mln_map_camera_for_geometry in the
C API reference.
Errors:
Status.invalidArgument when the padding in fitOptions leaves no room
for the area.OptionalfitOptions: CameraFitOptionsComputes a camera that fits bounds in the map's view.
The camera keeps the map's bearing and pitch unless fitOptions sets them,
and its zoom stays within the map's zoom limits.
See mln_map_camera_for_lat_lng_bounds in the
C API reference.
Errors:
Status.invalidArgument when the padding in fitOptions leaves no room
for the area.OptionalfitOptions: CameraFitOptionsComputes a camera that fits coordinates in the map's view.
coordinates must not be empty. The camera keeps the map's bearing and
pitch unless fitOptions sets them, and its zoom stays within the map's
zoom limits.
See mln_map_camera_for_lat_lngs in the
C API reference.
Errors:
Status.invalidArgument when the padding in fitOptions leaves no room
for the area.OptionalfitOptions: CameraFitOptionsStops every running camera animation where it is.
The end handler of each stopped animation reports
CameraTransitionOutcome.cancelled.
See mln_map_cancel_camera_transitions in the
C API reference.
Stops the running camera animations whose animation options set
transitionId.
Other animations keep running. The end handler of each stopped animation
reports CameraTransitionOutcome.cancelled.
See mln_map_cancel_camera_transitions_with_id in the
C API reference.
Releases the map in any state, and finishes in the background.
Use it from destructors and finalizers. Otherwise, use
MapHandle.release().
See mln_map_dispose in the
C API reference.
Logs debugging information about the map's style and sources.
See mln_map_dump_debug_logs in the
C API reference.
Ends the group that MapHandle.beginCommandGroup() began.
See mln_map_end_command_group in the
C API reference.
Moves the camera to fit a GeoJSON geometry in the map's view, at once or with an animation.
geometry is a GeoJSON geometry object with at least one coordinate, not a
feature. The camera is the one that MapHandle.cameraForGeometry()
computes after the commands sent before this one apply. The function
finishes when the map applies the change, before an animation ends.
See mln_map_fit_camera_to_geometry in the
C API reference.
Errors:
Status.invalidArgument when the padding in update leaves no room for
the area. The camera doesn't move.Moves the camera to fit bounds in the map's view, at once or with an
animation.
The camera is the one that MapHandle.cameraForLatLngBounds() computes
after the commands sent before this one apply. The function finishes when
the map applies the change, before an animation ends.
See mln_map_fit_camera_to_lat_lng_bounds in the
C API reference.
Errors:
Status.invalidArgument when the padding in update leaves no room for
the area. The camera doesn't move.Moves the camera to fit coordinates in the map's view, at once or with an
animation.
coordinates must not be empty. The camera is the one that
MapHandle.cameraForLatLngs() computes after the commands sent before this
one apply. The function finishes when the map applies the change, before an
animation ends.
See mln_map_fit_camera_to_lat_lngs in the
C API reference.
Errors:
Status.invalidArgument when the padding in update leaves no room for
the area. The camera doesn't move.Reads the map's camera.
The query reads the camera after the map applies the commands sent before it.
See mln_map_get_camera in the
C API reference.
Reads the state of a feature, as a JSON object.
The object is empty when the feature has no state.
See mln_map_get_feature_state in the
C API reference.
Reads the global state of the map's style as a JSON object.
See mln_map_get_global_state in the
C API reference.
Reads the corners of an image source's image, clockwise from the top left.
See mln_map_get_image_source_coordinates in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't an image
source.Reads the JSON of the style that the map loaded.
The JSON doesn't include the changes made to the style since it loaded.
See mln_map_get_loaded_style_json in the
C API reference.
Copies the map's state.
The copy doesn't wait for pending commands. To read the camera after they
apply, use MapHandle.getCamera().
See mln_map_get_snapshot in the
C API reference.
Errors:
Status.invalidState until RuntimeHandle.createMap() completes with
Status.ok.Reads an image of the map's style.
Completes with no value when the style has no image named imageId.
See mln_map_get_style_image in the
C API reference.
Reads a layer of the map's style.
Completes with no value when the style has no layer named layerId.
See mln_map_get_style_layer in the
C API reference.
Reads a layer of the map's style as a [layer](https://maplibre.org/maplibre-style-spec/layers/) object.
Completes with no value when the style has no layer named layerId.
See mln_map_get_style_layer_json in the
C API reference.
Reads a property of a layer in the map's style.
The value can differ in form from the value that was set: a color set as
"#ff0000" reads back as ["rgba", 255, 0, 0, 1].
Completes with no value when the layer doesn't set the property.
See mln_map_get_style_layer_property in the
C API reference.
Errors:
Status.notFound when the style has no layer named layerId.Reads a property of the light of the map's style.
The value can differ in form from the value that was set: a color set as
"#ff0000" reads back as ["rgba", 255, 0, 0, 1].
Completes with no value when the light doesn't set the property.
See mln_map_get_style_light_property in the
C API reference.
Reads a source of the map's style.
A tile source with a url has an empty attribution until its TileJSON
loads, which raises RuntimeEventType.mapSourceChanged.
Completes with no value when the style has no source named sourceId.
See mln_map_get_style_source in the
C API reference.
Reads the default transition of the map's style.
See mln_map_get_style_transition_options in the
C API reference.
Reads the URL of the map's style.
The URL is empty when the style came from MapHandle.setStyleJson().
See mln_map_get_style_url in the
C API reference.
Makes a custom geometry source ask again for the tiles in bounds that the
map still needs.
See mln_map_invalidate_custom_geometry_source_region in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a custom
geometry source.Makes a custom geometry source ask for a tile again when the map needs it.
See mln_map_invalidate_custom_geometry_source_tile in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a custom
geometry source.Makes a custom vector source ask again for the tiles in bounds that the
map still needs.
See mln_map_invalidate_custom_vector_source_region in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a custom
vector source.Makes a custom vector source ask for a tile again when the map needs it.
See mln_map_invalidate_custom_vector_source_tile in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a custom
vector source.Computes the area that the map would show with camera.
Camera fields that camera doesn't set come from the map's camera. The
longitudes can fall outside -180 to 180, so a view across the antimeridian
gives one continuous range.
See mln_map_lat_lng_bounds_for_camera in the
C API reference.
Lists the layers of the map's style, from bottom to top.
See mln_map_list_style_layers in the
C API reference.
Lists the sources of the map's style.
See mln_map_list_style_sources in the
C API reference.
Moves a layer of the map's style below the layer named beforeLayerId, or
above every layer when beforeLayerId is empty.
See mln_map_move_style_layer in the
C API reference.
Errors:
Status.notFound when the style has no layer named layerId or
beforeLayerId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.OptionalbeforeLayerId: stringReleases the map.
Detach the map's render session first.
See mln_map_release in the
C API reference.
Removes the feature state that selector selects.
See mln_map_remove_feature_state in the
C API reference.
Removes an image from the map's style.
See mln_map_remove_style_image in the
C API reference.
Errors:
Status.notFound when the style has no image named imageId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Removes a layer from the map's style.
See mln_map_remove_style_layer in the
C API reference.
Errors:
Status.notFound when the style has no layer named layerId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Removes a source from the map's style.
See mln_map_remove_style_source in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidState when a layer still uses the source, or while the
style isn't loaded, as MapHandle.setStyleUrl() describes.Renders a new frame of a continuous map, even when nothing changed.
See mln_map_request_repaint in the
C API reference.
Renders a still image of a static or tile map.
The map's render session draws the image once every resource that the image needs has loaded.
See mln_map_request_still_image in the
C API reference.
Errors:
Status.cancelled when the map is released before the image is done.Status.nativeError when the style or a resource that the image needs
fails to load.Sets the map's size.
A map with a render session takes its size from the session, so resize the
session with RenderSessionHandle.resize() instead.
See mln_map_resize in the
C API reference.
Errors:
Status.invalidState when the map has a render session.Status.invalidState when a render session attached to the map before
the resize applied.Limits the camera's center to an area, and its zoom and pitch to ranges.
Limits that options doesn't set keep their current values. When the
camera is outside the new limits, it moves inside them.
See mln_map_set_bounds in the
C API reference.
Sets the data of a tile in a custom geometry source.
data is a GeoJSON feature collection, feature, or geometry. The source
ignores data for a tile that it hasn't asked for, or has since cancelled.
See mln_map_set_custom_geometry_source_tile_data in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a custom
geometry source.Reports that a tile of a custom geometry source failed to load.
See mln_map_set_custom_geometry_source_tile_error in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a custom
geometry source.Sets the data of a tile in a custom vector source.
data is the tile, encoded as encoding. The source ignores data for a
tile that it hasn't asked for, or has since cancelled.
See mln_map_set_custom_vector_source_tile_data in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a custom
vector source.Reports that a tile of a custom vector source failed to load.
See mln_map_set_custom_vector_source_tile_error in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a custom
vector source.Draws debugging overlays, such as tile borders, on the map.
flags replaces the overlays set before.
See mln_map_set_debug_flags in the
C API reference.
Selects the events that the map reports.
See mln_map_set_event_mask in the
C API reference.
Merges state into the state of a feature.
state is a JSON object. Its keys replace the same keys in the feature's
state, and the other keys stay.
See mln_map_set_feature_state in the
C API reference.
Places the camera at a position and orientation in space.
The map adjusts them to a camera that it can show. It stops running camera
animations first, and their end handlers report
CameraTransitionOutcome.cancelled.
See mln_map_set_free_camera_options in the
C API reference.
Replaces the data of a GeoJSON source.
data is a GeoJSON feature collection, feature, or geometry. The library
prepares it for the source with the source's options, off the threads that
the caller and the runtime use, and the command completes once the source
holds it. Later commands don't wait for it. While the source is still
preparing earlier data, only the newest data waits to follow it.
With synchronous tiling on, as
MapHandle.setGeoJsonSourceSynchronousTiling() describes, the command
prepares data before later commands run, so the data shows in the next
frame.
See mln_map_set_geo_json_source_data in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a GeoJSON
source, when data isn't valid GeoJSON, or when the source clusters and
data isn't a feature collection of points. The source keeps its data.Status.cancelled when newer data for the source replaces data while
it waits, or when the source's URL, its removal, a style load, or the
map's release replaces the source's data before data is ready.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Sets whether a GeoJSON source builds its tiles while the map renders.
Building tiles while the map renders, instead of in the background, makes
new data show in the next frame. The setting replaces the
synchronousUpdate member of the source's JSON, which defaults to false.
See mln_map_set_geo_json_source_synchronous_tiling in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a GeoJSON
source.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Makes a GeoJSON source load its data from url.
See mln_map_set_geo_json_source_url in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't a GeoJSON
source.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Sets a value that the style's global-state
[expressions](https://maplibre.org/maplibre-style-spec/expressions/)
read.
See mln_map_set_global_state_property in the
C API reference.
Errors:
Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Moves the image of an image source.
coordinates are the image's four corners, clockwise from the top left.
See mln_map_set_image_source_coordinates in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't an image
source.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Replaces the image of an image source.
See mln_map_set_image_source_image in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't an image
source.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Makes an image source load its image from url.
See mln_map_set_image_source_url in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidArgument when the source named sourceId isn't an image
source.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Sets whether the map draws in perspective or axonometric projection, and how much it skews the view.
Settings that options doesn't set keep their current values.
See mln_map_set_projection_mode in the
C API reference.
Shows or hides an overlay of rendering statistics on the map.
See mln_map_set_rendering_stats_view_enabled in the
C API reference.
Adds an image to the map's style, or replaces the image named imageId.
See mln_map_set_style_image in the
C API reference.
Errors:
Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Optionaloptions: StyleImageOptionsLoads the map's style from json.
The command completes once the style has parsed, and the map's style is
then loaded, as MapHandle.setStyleUrl() describes. The style's sources,
sprites, and glyphs load in the background.
See mln_map_set_style_json in the
C API reference.
Errors:
Status.nativeError when json isn't a valid style. The map keeps its
current style.Sets a property of a layer in the map's style.
propertyName is one of the layer's layout or paint
[properties](https://maplibre.org/maplibre-style-spec/layers/), or
filter, minzoom, maxzoom, source, or source-layer. A null value
resets any of these but source and source-layer to its default.
See mln_map_set_style_layer_property in the
C API reference.
Errors:
Status.notFound when the style has no layer named layerId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Replaces the [light](https://maplibre.org/maplibre-style-spec/light/) of the map's style.
See mln_map_set_style_light_json in the
C API reference.
Errors:
Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Sets a property of the light of the map's style.
See mln_map_set_style_light_property in the
C API reference.
Errors:
Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Sets whether a source is volatile.
The map doesn't store the tiles of a volatile source in the persistent cache.
See mln_map_set_style_source_volatile in the
C API reference.
Errors:
Status.notFound when the style has no source named sourceId.Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Sets the default transition of the map's style.
See mln_map_set_style_transition_options in the
C API reference.
Errors:
Status.invalidState while the style isn't loaded, as
MapHandle.setStyleUrl() describes.Loads the map's style from url.
The command completes once the style document has loaded and parsed. The style's sources, sprites, and glyphs then load in the background.
The map's style is loaded from the time a style document parses until the
next call to this function. While the style isn't loaded, the commands that
change it complete with Status.invalidState. To change a new map's style
without a style document, first load an empty style, such as
{"version":8,"sources":{},"layers":[]}.
See mln_map_set_style_url in the
C API reference.
Errors:
Status.nativeError when the style document fails to load or isn't a
valid style.Status.cancelled when the map is released, or this function or
MapHandle.setStyleJson() loads another style, before the style document
parses.Sets how the map chooses which tiles to load, and at what detail.
Settings that options doesn't set keep their current values.
See mln_map_set_tile_options in the
C API reference.
Sets how the map orients and constrains its view.
Settings that options doesn't set keep their current values.
See mln_map_set_viewport_options in the
C API reference.
Names the owner's type, its handle ID, and whether it is closed.
Moves the camera, at once or with an animation.
Camera fields that update doesn't set keep their values, and the update
stops any running animation of the fields it sets. The function finishes
when the map applies the update, before an animation ends. To learn when an
animation ends, set an CameraTransitionHandler in its animation options.
See mln_map_update_camera in the
C API reference.
A map, with its style and camera.
See
mln_mapin the C API reference.