24.15.0-beta.2.11.15.0-beta.2.16.2Marker convenience API in Swift UI. Use Marker to quickly add a MapViewAnnotation pin at the specified coordinates with custom text and color.Map {
Marker(coordinate: CLLocationCoordinate2D(...))
.text("My marker")
.color(.blue)
.stroke(.orange)
}
24.15.0-beta.1.11.15.0-beta.1.16.2MapboxCoreMaps to 11.14.1 and MapboxCommon to 24.14.1
16.2The signature of “MapboxCommon.xcframework” cannot be validated and may have been compromised*PatternCrossFade for LineLayer, FillLayer and FillExtrusionLayer.
It controls the transition progress between image variants where 0 means the first variant to be used, 1 – the second. In between they will be blended altogether. This is important to have both images of the same size and type (raster/vector):
split expression, which returns an array of substrings from a string, split by a delimiter parameter.
For example, for an input property "level": "-2;-1;0;1;2;3" we could apply expression Exp(.split, Exp(.get, "level"), ";") to produce the output array like ["-2", "-1", "0", "1", "2", "3"].TileStore serviceCustomRasterSourceTileRenderer24.14.0.11.14.0.16.2Internal improvements and optimizations.
24.13.5.11.13.5.16.2Internal improvements and optimizations.
24.13.4.11.13.4.16.224.9.1.11.9.4:
15.2.0The signature of “MapboxCommon.xcframework” cannot be validated and may have been compromised24.14.0-rc.1:
TileStore service11.14.0-rc.1:
16.224.10.2.11.10.4:
15.2.024.11.5.11.11.5:
15.2.0The signature of “MapboxCommon.xcframework” cannot be validated and may have been compromised24.12.5.11.12.5.16.2The signature of “MapboxCommon.xcframework” cannot be validated and may have been compromised24.5.2.16.2.0The signature of “MapboxCommon.xcframework” cannot be validated and may have been compromised24.13.3.11.13.3.16.224.13.2.11.13.2.16.2[!IMPORTANT] There is a known issue in this beta version related to certificate revocation and code signing. You may see an error stating that
The signature of “MapboxCommon.xcframework” cannot be validated and may have been compromisedor similar language. This issue is resolved in v11.14.0-rc.1. Additionally, this issue has been resolved in v11.13.3 and v11.12.5.
-PatternCrossFade for LineLayer, FillLayer and FillExtrusionLayer.
It controls the transition progress between image variants where 0 means the first variant to be used, 1 – the second. In between they will be blended altogether. This is important to have both images of the same size and type (raster/vector):
split expression, which returns an array of substrings from a string, split by a delimiter parameter.
For example, for an input property "level": "-2;-1;0;1;2;3" we could apply expression Exp(.split, Exp(.get, "level"), ";") to produce the output array like ["-2", "-1", "0", "1", "2", "3"].24.14.0-beta.1.11.14.0-beta.1.16.224.13.1.11.13.1:16.2MapStyle.standardExperimental is removed. Use MapStyle.standard instead.PointAnnotation.iconImageCrossFade has been deprecated and setting value to it will not have any impact. Use PointAnnotationManager.iconImageCrossFadeTransition instead.GestureManager.onMapTap, GestureManager.onMapLongPress, GestureManager.onLayerTap, GestureManager.onLayerLongPress and their SwiftUI counterparts are deprecated. Use TapInteraction and LongPressInteraction instead.// Before (SwiftUI)
Map()
.onMapTapGesture { context in
// Handle tap on map
}
.onLayerLongPressGesture("a-layer-id") { feature, context in
// Handle press on a layer
return true
}
// After (SwiftUI)
Map {
TapInteraction { feature in
// Handle tap on map
return true
}
LongPressInteraction(.layer("a-layer-id")) { feature, context in
// Handle press on a layer
return true
}
// Bonus: If you use Standard style, new API allows to handle tap on POI, Buildings and Place Labels
TapInteraction(.standardPoi) { poi, feature in
print("Tap on \(poi.name)")
return true
}
}
// Before (UIKit)
mapView.gestures.onMapTap.observe { context in
// Handle Tap on Map
}.store(in: &cancelables)
mapView.gestures.onLayerLongPress("a-layer-id") { feature, context in
// Handle Long press
return true
}
// After (UIKit)
mapView.mapboxMap.addInteraction(TapInteraction { context in
// Handle tap on map
return true
})
mapView.mapboxMap.addInteraction(LongPressInteraction(.layer("a-layer-id")) { feature, context in
// Handle long press on a layer
return true
})
// Bonus: If you use Standard style, new API allows to handle tap on POI, Buildings and Place Labels
mapView.mapboxMap.addInteraction(TapInteraction(.standardPoi) { poi, feature in
print("Tap on poi \(poi.name)")
return true
})
Custom Layer Matrices API on Globe for Mobile
Introducing the CustomLayerMapProjection, accessible via the CustomLayerRenderParameters instance. This new API provides utility functions for rendering primitives on the currently active map projection.
Check out the CustomLayerExample.swift file for example usage of these new APIs.
worldview expression.VectorSource.promoteId2 and GeoJSONSource.promoteId2. Deprecate VectorSource.promoteId and GeoJSONSource.promoteId. The newer version support the expression variant of promoteId, which can be used to dynamically nominate IDs to the features.CircleLayer.circleElevationReference, FillLayer.fillConstructBridgeGuardRail, FillLayer.fillBridgeGuardRailColor, FillLayer.fillTunnelStructureColor.showLandmarkIcons property in MapStyle.standard.LineLayer/linezOffset.StyleManager.image(withId:) can now retrieve vector iconsat-interpolated expression added and separated from existing at expression.*colorUseTheme for Rain and Snow propertiesmaximumStaleInterval is set.clipPath and mask rendering for vector icon rasterizationSymbolLayer.symbolZElevate is true.promoteId content is missing after vector source serializationnull for config expression if requested config option is missingLineLayer.linePattern inside an imported styleLineLayer.lineWidth from 0 to 1 using line-progresscameraForCoordiantes with screen box oscillates when initial zoom is close to set max zoommapbox:// tile URLs without version and tiles24.13.0.11.13.0.16.2Custom Layer Matrices API on Globe for Mobile
Introducing the CustomLayerMapProjection, accessible via the CustomLayerRenderParameters instance. This new API provides utility functions for rendering primitives on the currently active map projection.
Check out the CustomLayerExample.swift file for example usage of these new APIs.
maximumStaleInterval is set.24.13.0-rc.111.13.0-rc.124.12.2.11.12.2.16.2.0MapStyle.standardExperimental is removed. Use MapStyle.standard instead.PointAnnotation.iconImageCrossFade has been deprecated and setting value to it will not have any impact. Use PointAnnotationManager.iconImageCrossFadeTransition instead.GestureManager.onMapTap, GestureManager.onMapLongPress, GestureManager.onLayerTap, GestureManager.onLayerLongPress and their SwiftUI counterparts are deprecated. Use TapInteraction and LongPressInteraction instead.// Before (SwiftUI)
Map()
.onMapTapGesture { context in
// Handle tap on map
}
.onLayerLongPressGesture("a-layer-id") { feature, context in
// Handle press on a layer
return true
}
// After (SwiftUI)
Map {
TapInteraction { feature in
// Handle tap on map
return true
}
LongPressInteraction(.layer("a-layer-id")) { feature, context in
// Handle press on a layer
return true
}
// Bonus: If you use Standard style, new API allows to handle tap on POI, Buildings and Place Labels
TapInteraction(.standardPoi) { poi, feature in
print("Tap on \(poi.name)")
return true
}
}
// Before (UIKit)
mapView.gestures.onMapTap.observe { context in
// Handle Tap on Map
}.store(in: &cancelables)
mapView.gestures.onLayerLongPress("a-layer-id") { feature, context in
// Handle Long press
return true
}
// After (UIKit)
mapView.mapboxMap.addInteraction(TapInteraction { context in
// Handle tap on map
return true
})
mapView.mapboxMap.addInteraction(LongPressInteraction(.layer("a-layer-id")) { feature, context in
// Handle long press on a layer
return true
})
// Bonus: If you use Standard style, new API allows to handle tap on POI, Buildings and Place Labels
mapView.mapboxMap.addInteraction(TapInteraction(.standardPoi) { poi, feature in
print("Tap on poi \(poi.name)")
return true
})
VectorSource.promoteId2 and GeoJSONSource.promoteId2. Deprecate VectorSource.promoteId and GeoJSONSource.promoteId. The newer version support the expression variant of promoteId, which can be used to dynamically nominate IDs to the features.CircleLayer.circleElevationReference, FillLayer.fillConstructBridgeGuardRail, FillLayer.fillBridgeGuardRailColor, FillLayer.fillTunnelStructureColor.showLandmarkIcons property in MapStyle.standard.LineLayer/linezOffset.11.13.0-beta.1:StyleManager.getStyleImage() can now retrieve vector iconsat-interpolated expression added and separated from existing at expression.screenShape MapOption for better culling on non-rectangular displaysclipPath and mask rendering for vector icon rasterizationsymbol-z-elevate is truepromoteId content is missing after vector source serializationnull for config expression if requested config option is missingline-pattern inside an imported styleline-width from 0 to 1 using line-progresstileclippingMasksIDs24.13.0-beta.1:16.2