Skip to main content

Migrating to v10

Remove setAccessToken(null)​

Calling setAccessToken(null) is obsolete now. Vendor specific access tokens should be set via style or tile URLs, consult the corresponding provider docs if necessary.

- setAccessToken(null)

Changes to Camera Component​

Default animationMode is now CameraMode.None​

The default animationMode for a controlled Camera is now CameraMode.None. To reinstate previous behavior, change the following:

<Camera
centerCoordinate={[0, 0]}
+ animationDuration={2000}
+ animationMode="easeTo"
/>

Removed allowUpdates and triggerKey Props​

If you need this functionality, keep your props stable or use the imperative setCamera.

<Camera
centerCoordinate={[0, 0]}
- allowUpdates={false}
- triggerKey={someKey}
/>

MapView props styleURL and styleJSON unified to mapStyle​

The props styleURL and styleJSON, which control the style of the MapView, have been unified into a single mapStyle prop.

styleURL​

<MapView
- styleURL="https://some-style-url"
+ mapStyle="https://some-style-url"
/>

styleJSON​

A style object is now expected as an object, without JSON.stringify.

<MapView
- styleJSON={JSON.stringify(someStyleObject)}
+ mapStyle={someStyleObject}
/>

Removed Style component​

The Style component was redundant, as it's possible to pass a style object to the MapView directly.

- <MapView>
- <Style json={someStyleObject} />
- </MapView>
+ <MapView mapStyle={someStyleObject} />

Replaced OfflineProgressStatus with OfflinePackStatus​

The two types have been unified. Simply replace OfflineProgressStatus with OfflinePackStatus.

Removed deprecated Methods, Props and Types​

  • UserTrackingModes was removed, use UserTrackingMode instead
  • Removed setCamera from MapView, use imperative methods of Camera instead
  • Removed byId methods from ShapeSource
  • Removed children from SymbolSource
  • Removed assets key from Images
  • Removed deprecated event keys

Deprecations​

These breaking changes will occur in the next major release.

Default Export​

The default export is deprecated. Choose between named imports or namespace imports instead. Adopt these to ease the transition to the future major release.

Named Imports​

- import MapLibreGL from "@maplibre/maplibre-react-native";
+ import { MapView } from "@maplibre/maplibre-react-native";

- <MapLibreGL.MapView />
+ <MapView />

Namespace Import​

- import MapLibreGL from "@maplibre/maplibre-react-native";
+ import * as MapLibreRN from "@maplibre/maplibre-react-native";

- <MapLibreGL.MapView />
+ <MapLibreRN.MapView />

Any namespace can be chosen, but using MapLibreGL is not recommended anymore due to risk of confusion.

Module Exports​

The camelCase module exports are deprecated, use PascalCase instead.

- import { locationManager, offlineManager, snapshotManager } from "@maplibre/maplibre-react-native";
+ import { LocationManager, OfflineManager, SnapshotManager } from "@maplibre/maplibre-react-native";