diff --git a/android/src/main/java/com/luggmaps/core/GoogleMapProvider.kt b/android/src/main/java/com/luggmaps/core/GoogleMapProvider.kt index 5c664ee..64d1245 100644 --- a/android/src/main/java/com/luggmaps/core/GoogleMapProvider.kt +++ b/android/src/main/java/com/luggmaps/core/GoogleMapProvider.kt @@ -769,7 +769,11 @@ class GoogleMapProvider(private val context: Context) : private fun processPendingMarkers() { if (googleMap == null) return - pendingMarkerViews.forEach { addMarkerViewToMap(it) } + pendingMarkerViews.forEach { + // markerViewDidLayout adds it once the bitmap can be drawn + if (it.hasCustomView && !it.didLayout) return@forEach + addMarkerViewToMap(it) + } pendingMarkerViews.clear() } diff --git a/ios/core/GoogleMapProvider.mm b/ios/core/GoogleMapProvider.mm index 7c755a6..939da5c 100644 --- a/ios/core/GoogleMapProvider.mm +++ b/ios/core/GoogleMapProvider.mm @@ -667,6 +667,11 @@ - (void)addMarkerViewToMap:(LuggMarkerView *)markerView { if (!_mapView) return; + // Custom icons rasterize from layout; adding before that shows the SDK's + // default pin until markerViewDidLayout re-syncs. + if (markerView.hasCustomView && !markerView.didLayout) + return; + GMSAdvancedMarker *marker = [[GMSAdvancedMarker alloc] init]; marker.position = markerView.coordinate; marker.title = markerView.title.length > 0 ? markerView.title : nil;