Please add unreleased changes in the following style:
PR Title ([#123](link to my pr))
The setup was changed - see install instructions for more details. In a nuthsell:
- On both android/ios to select mapbox implementation use
RNMapboxMapsImpl
/$RNMapboxMapsImpl
variable which can be one of (maplibre
,mapbox
(aka v10),mapbox-gl
) - Default implementation is
maplibre
as it requires not further setup. WARNING using mapbox styles frommaplibre
has different pricing than mapbox native sdk-s. - On Podfile
$RNMBGL.(pre|post)_install
was changed$RNMapboxMaps.(pre|post)_install
- Package name was changed from
@react-native-mapbox-gl/maps
to@rnmapbox/maps
. If you just testing with the v10 version you can use something like babel-plugin-transform-rename-import to keep using the old imports for a while. MapboxGL.setAccessToken
now requiresMapboxGL.setWellKnownTileServer
on maplibre.
- Convert Camera component to TypeScript and update related documentation generation and tests (#2057)
- Implement clustering properties to ShapeSource (#1745)
- Initial Mapbox V10 support (#1750)
- Updated MapLibre on Android to 9.5.2 (#1780)
fix: add TypeScript type for MapViews's preferredFramesPerSecond prop (#1717)
fix(example): update /example
project (iOS only) to work with ARM-based Macs (#1703)
fix(iOS): correct import of UIView+React.h header (#1672)
build: update install guide and /example
project for android dependencies (#1640)
build(turf): update to version 6.5.0 (#1638)
fix(Camera) fix zoomTo
method and expand Fit example (#1631)
ci: two scripts for linting with and without fix (#1630)
feat(Camera) add an optional allowUpdates
boolean prop (#1619)
refactor(example): remove unused modules and scripts (#1618)
fix(react-native): update api to get rid of EventEmitter warnings (#1615)
fix(Camera) persist zoom when changing from bounds
to centerCoordinate
, fix zero padding not causing map to update, create unified example showcasing bounds/centerCoordinate/zoom/padding (#1614)
Update MapLibre to 5.12.1 on iOS (#1596)
Update ShapeSource methods to make it usable with any cluster ( Use cluster itself instead of cluster_id as first argument for getClusterExpansionZoom/getClusterLeaves/getClusterChildren methods. Version < 9 methods still supports passing cluster_id as a first argument but a deprecation warning will be shown. ) (#1499)
fix(iOS): pin mapLibre back to 5.12.0
(#1589)
chore: improve GH workflows (#1588)
build(deps): bump @expo/config-plugins from 3.1.0 to 4.0.3 (#1585)
chore(pre-commit): run lint on TS files, change PR template (#1584)
feat(example): update vertical alignment example (#1579)
fix incorrect anchor calculation for PointAnnotation on iOS (#1576)
style(eslint): align root and example with the same configuration (#1575)
fix(mapLibre): support version 5.12.0
upwards (#1571)
build: upgrade to RN 0.66
(#1570)
build(android): add telemetry dependency to default build setup (#1550)
feat(camera): Enable padding
as a root-level prop on the camera, with bounds.padding*
as fallbacks (#1538)
fix: revert pinned mapLibre version to 5.11.0
(8a2b00e67ba6398f3f6e6f52e98b0f0cea437e4d)
Fix TypeScript type for Callout's textStyle prop (#1450)
Build(ios): pin maplibre version to 5.12.0 (#1454)
Update geoUtils helpers types to correspond with turf/helpers
(#1455)
Fix crash with missing okhttp dependency (#1452)
Move from react-native-testing-library => @testing-library/react-native (#1453)
Feat(camera): maxBounds/(min|max)ZoomLevel can be updated dynamically (#1462)
Refactor(example): clean up folder structure (#1464)
Fix lineGradient showing wrong colors (#1471)
Support tintColor on Android (#1465)
Feat(android): dynamically update tintColor & add example (#1469
Examples: align install steps with yarn, ignore created env files (#1484
Fix(plugin): Exclude arm64 architectures for simulator builds (#1490
Feat(android): dynamically update tintColor & add example (#1469)
Docs: make background in example pngs transparent (#1483)
Style: run yarn lint (#1486)
Test: add unit tests for component light (#1489)
Feat: add Adds getClusterChildren method to ShapeSource (#1495)
fix issue when publishing to npm with prepare
script
getClusterLeaves method for ShapeSource (#1411)
Add logoPosition props to MapView
to position the mapbox logo (#1396)
Add compatibility with React 17/ npm7 (#1387)
Add Expo config plugin (#1388)
Android: Bump okhttp
to 4.9.0
(#1390)
Support dynamically changing local JSON in styleURL (#1399)
Add missing types to SymbolLayerStyle
& ImagesProps
(#1360)
Fix error while updating coordinates of RCTMGLImageSource (#1310)
Add types for Logger
class (#1316)
Enable linear easing on map camera (#1281)
Allow MapLibre as an option (#1311)
Fix native UserLocation on Android (#1284)
Add getClusterExpansionZoom to ShapeSource (#1279)
Add type definition for AnimatedPoint (#1280)
Use pre_install
hook to support non use_frameworks!
usage #1262. Please add the following to your Podfile
:
pre_install do |installer|
$RNMBGL.pre_install(installer)
...
end
and
post_install do |installer|
$RNMBGL.post_install(installer)
...
end
- Add course to the location events #1209
- Fix heading indicator alignment #1215
- App crash when ProGuard is set to true #1184
- [iOS] Implemented ShapeSource.features(...) method #1140
- style json support on styleURL #1102
- Fix: onUpdate not called when renderMode is native #1135
- By default use 5.9.0 Mapbox on iOS as 8.1.0rc8 and before
- Fix crash during styleURL change on adroid
- Fix warning Sending LogEvent with no listeners registered.
- Fix race in close map and icon image download
- Fix android padding
- Android custom mapboxgl version
- Fix support 6.* of MapboxGL IOS by setting
$ReactNativeMapboxGLIOSVersion = "6.2.1"
in Podfile - Fix map rendered at (0,0,0,0) on iOS
- Fix edge Padding + auto limit padding on iOS
- Fix coordinate 0,0 was considered invalid on IOS
- Fix refresh on PointAnnotation on Android
- Fix Image source coordinates update on the fly
- Upgrade to ios 5.9.0
- Upgrade to android 9.1.0
- Set default Mapbox logging verbosity to warning. (Change it using Logger.setLogLevel('verbose'))
- Error/Warn mapbox log messages are treated as redbox/yellowbox errors/warnings. (Override it using Logger.setLoggerCallback(log => { return true })
- Native user location #825
- By default use 5.9.0 Mapbox on iOS as 8.1.0rc8 and before
- Fix crash during styleURL change on adroid
- Fix warning Sending LogEvent with no listeners registered.
- Fix race in close map and icon image download
- Fix android padding
- Android custom mapboxgl version
- Fix support 6.* of MapboxGL IOS by setting
$ReactNativeMapboxGLIOSVersion = "6.2.1"
in Podfile - Fix map rendered at (0,0,0,0) on iOS
- Fix edge Padding + auto limit padding on iOS
- Fix coordinate 0,0 was considered invalid on IOS
- Fix refresh on PointAnnotation on Android
- Fix Image source coordinates update on the fly
- Upgrade to ios 5.9.0
- Upgrade to android 9.1.0
- Set default Mapbox logging verbosity to warning. (Change it using Logger.setLogLevel('verbose'))
- Error/Warn mapbox log messages are treated as redbox/yellowbox errors/warnings. (Override it using Logger.setLoggerCallback(log => { return true })
- Native user location #825
- By default use 5.9.0 Mapbox on iOS as 8.1.0rc8 and before
- Fix crash during styleURL change on adroid
- Fix warning Sending LogEvent with no listeners registered.
- Fix race in close map and icon image download
- Fix android padding
- Android custom mapboxgl version
- Fix support 6.* of MapboxGL IOS by setting
$ReactNativeMapboxGLIOSVersion = "6.2.1"
in Podfile - Fix map rendered at (0,0,0,0) on iOS
- Fix edge Padding + auto limit padding on iOS
- Fix coordinate 0,0 was considered invalid on IOS
- Fix refresh on PointAnnotation on Android
- Fix Image source coordinates update on the fly
- Upgrade to ios 5.9.0
- Upgrade to android 9.1.0
- Set default Mapbox logging verbosity to warning. (Change it using Logger.setLogLevel('verbose'))
- Error/Warn mapbox log messages are treated as redbox/yellowbox errors/warnings. (Override it using Logger.setLoggerCallback(log => { return true })
- Native user location #825
- By default use 5.9.0 Mapbox on iOS as 8.1.0rc8 and before
- Fix crash during styleURL change on adroid
- Fix warning Sending LogEvent with no listeners registered.
- Fix android padding
- Android custome mapboxgl version
- Fix edge Padding + auto limit padding on iOS
- Fix coordinate 0,0 was considered invalid on IOS
- Fix refresh on PointAnnotation on Android
- Fix support 6.* of MapboxGL IOS by setting
$ReactNativeMapboxGLIOSVersion = "6.2.1"
in Podfile - Fix Image source coordinates update on the fly
- Fix camera padding on android
- Allow zPosition on iOS in PointAnnotation child views.
- Added InvalidatePack
- Allow to customize iOS framework version used
- Added invalidateAmbientCache
- Implemented ShapeSource#features
- Upgrade to ios 5.8.0
- Upgrade to android 9.1.0
- Set default Mapbox logging verbosity to warning. (Change it using Logger.setLogLevel('verbose'))
- Error/Warn mapbox log messages are treated as redbox/yellowbox errors/warnings. (Override it using Logger.setLoggerCallback(log => { return true })
- Native user location #825
Breaking changes - #610
- iOS mapbox libraries updated to 5.7.0 android libraries updated to 9.0.0
- ShapeSource#images is now removed (deprecated in 7.*), use Images#images instead. Also special
assets
insideimages
is now deprecated, usenativeAssetImages
istead. - iOS now defaults to non
use_frameworks!
, if you want to continue to useuse_frameworks!
please see our iOS installation guidelines - Images#onImagesMissing
- Android code migrated to AndroidX, RN 60.0+ is recommended.
- geoUtils is now private, please use turf-js instead
- VectorSource/SymbolSource#onPress sends ({features, point, coordinates}) instead of single feature in
event.nativeEvent.payload
. PR#700
- added MarkerView
- added AnimatedShape and AnimatedCoordinatesArray PR#702
- Upstream changes in Mapbox iOS SDK 5.6.0 has made installing the SDK as an embedded framework difficult. We have therefore discontinued supporting manual installations. To update, follow the iOS installation instructions using cocoapods.
-
iOS mapbox libraries updated to 5.5.0 android libraries updated to 8.2.1
-
StyleSheet.create
removed. Mapbox styles are now just a map no need forStyleSheet.create
.StylesSheet.identity
also removed, use expressions array instead:mapboxStyle=MapboxGL.Stylesheet.create({..., fillColor: MapboxGL.Stylesheet.identity('color') ...}) ... <MapView ... <FillLayer style={mapboxStyle}... /> </MapView>
is now:
mapboxStyle={..., fillColor: ['get', 'color'] ...} ... <MapView ... <FillLayer style={mapboxStyle}... /> </MapView>
See docs/StyleSheet.md for more examples
-
isTelemetryEnabled
removed (as no longer supported on android) #1 -
MapView#flyTo, MapView#bitBounds, MapView#flyTo, MapView#moveTo, MapView#zoomTo, MapView#setCamera moved to Camera. There is also experimantal properties, to replace those. See docs/Camera.md
-
Camera related properties on
MapView
now have to be specified on a camera object:<MapView zoomLevel={8} centerCoordinate={[-111.8678, 40.2866]} ... > ... </MapView>
is now:
<MapView ... > <Camera zoomLevel={8} centerCoordinate={[-111.8678, 40.2866]} /> </MapView>
See docs/Camera.md for more examples
-
User tracking properties moved from
MapView
toCamera
<MapView userTrackingMode={UserTrackingModes.Follow} ... > ... </MapView>
is now:
<MapView ... > <Camera followUserLocation=true followUserMode="normal" /> </MapView>
The following properties were changed:
- MapView#userTrackingMode is now Camera#followUserMode and Camera#followUserLocation
- followUserMode is now a string with ('normal','compass','course'), and UserTrackingModes enum is deprecated
- MapView#onUserTrackingModeChange is now Camera#onUserTrackingModeChange and payload contains followUserMode and followUserLocation.
-
ShapeSource#images was depreacted, use Images#images instead.
<MapView ... > ... <Images images={{pin, dot}} /> ... <ShapeSource ... > <SymbolLayer ...> </ShapeSource> </MapView>
-
TODO document all changes