@@ -1416,6 +1416,32 @@ extension RNMBXMapView {
1416
1416
}
1417
1417
}
1418
1418
1419
+ typealias LayerSourceDetails = ( source: String ? , sourceLayer: String ? )
1420
+
1421
+ #if RNMBX_11
1422
+ func getLayerSourceDetails( layer: ( any Layer ) ? ) -> LayerSourceDetails ? {
1423
+ if let circleLayer = layer as? CircleLayer {
1424
+ return ( circleLayer. source, circleLayer. sourceLayer)
1425
+ } else if let fillExtrusionLayer = layer as? FillExtrusionLayer {
1426
+ return ( fillExtrusionLayer. source, fillExtrusionLayer. sourceLayer)
1427
+ } else if let fillLayer = layer as? FillLayer {
1428
+ return ( fillLayer. source, fillLayer. sourceLayer)
1429
+ } else if let heatmapLayer = layer as? HeatmapLayer {
1430
+ return ( heatmapLayer. source, heatmapLayer. sourceLayer)
1431
+ } else if let hillshadeLayer = layer as? HillshadeLayer {
1432
+ return ( hillshadeLayer. source, hillshadeLayer. sourceLayer)
1433
+ } else if let lineLayer = layer as? LineLayer {
1434
+ return ( lineLayer. source, lineLayer. sourceLayer)
1435
+ } else if let rasterLayer = layer as? RasterLayer {
1436
+ return ( rasterLayer. source, rasterLayer. sourceLayer)
1437
+ } else if let symbolLayer = layer as? SymbolLayer {
1438
+ return ( symbolLayer. source, symbolLayer. sourceLayer)
1439
+ } else {
1440
+ return nil
1441
+ }
1442
+ }
1443
+ #endif
1444
+
1419
1445
extension RNMBXMapView {
1420
1446
func setSourceVisibility( _ visible: Bool , sourceId: String , sourceLayerId: String ? ) -> Void {
1421
1447
let style = self . mapboxMap. style
@@ -1424,14 +1450,18 @@ extension RNMBXMapView {
1424
1450
let layer = logged ( " setSourceVisibility.layer " , info: { " \( layerInfo. id) " } ) {
1425
1451
try style. layer ( withId: layerInfo. id)
1426
1452
}
1453
+
1427
1454
#if RNMBX_11
1428
- // RNMBX_11_TODO
1455
+ let sourceDetails = getLayerSourceDetails ( layer : layer )
1429
1456
#else
1430
- if let layer = layer {
1431
- if layer. source == sourceId {
1457
+ let sourceDetails : LayerSourceDetails ? = ( source: layer? . source, sourceLayer: layer? . sourceLayer)
1458
+ #endif
1459
+
1460
+ if let layer = layer, let sourceDetails = sourceDetails {
1461
+ if sourceDetails. source == sourceId {
1432
1462
var good = true
1433
1463
if let sourceLayerId = sourceLayerId {
1434
- if sourceLayerId != layer . sourceLayer {
1464
+ if sourceLayerId != sourceDetails . sourceLayer {
1435
1465
good = false
1436
1466
}
1437
1467
}
@@ -1444,7 +1474,6 @@ extension RNMBXMapView {
1444
1474
}
1445
1475
}
1446
1476
}
1447
- #endif
1448
1477
}
1449
1478
}
1450
1479
}
0 commit comments