[Feature request]: Support custom marker icons (bitmap/URI) via icon field in MarkerOptions
Maintainer thường phản hồi trong vòng 5 ngày
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Is there an existing issue for this?
- I have searched the existing issues
Use case
addMarker() via MapViewController only renders the default Google Maps pin regardless of what MarkerOptions is passed. There is no way to supply a custom image as the marker icon through the JS layer.
This is a blocking limitation for any app that needs to differentiate markers visually — the most common real-world case being live location sharing, where each member's marker should display their profile photo rather than an indistinguishable default pin.
Concrete scenario: In a group coordination app where 8 users share live location on the same NavigationView, all 8 markers render as identical red pins. There is no way to tell who is who without tapping each one individually. A custom avatar icon per member solves this entirely.
Alternatives considered:
Rendering an RN View as an overlay — Possible for static UI, but overlays are not anchored to map coordinates and don't move correctly with map pan/zoom/tilt. Not a real substitute for a native map marker.
react-native-maps — Supports custom marker icons but is a completely separate library. It cannot be used alongside @googlemaps/react-native-navigation-sdk on the same map surface, as both require owning the map view.
No existing package solves this within the Navigation SDK's MapViewController surface.
The underlying native SDKs fully support this — BitmapDescriptorFactory.fromBitmap() on Android and GMSMarker.icon on iOS. The gap is only in the React Native wrapper not exposing it.
Proposal
Add an optional icon field to MarkerOptions that accept a URI string pointing to a local asset or remote image, passed through the JS-to-native bridge and applied as the marker's bitmap icon on both Android and iOS.
Proposed TypeScript change:
export interface MarkerOptions {
position: LatLng;
title?: string;
snippet?: string;
isVisible?: boolean;
isFlat?: boolean;
isDraggable?: boolean;
rotation?: number;
alpha?: number;
icon?: { uri: string }; // ← proposed addition
}
Expected usage:
mapViewController.addMarker({
position: { lat: 17.385, lng: 78.4867 },
title: 'Sannihith',
icon: { uri: 'https://example.com/avatar.jpg' },
});
Android (Kotlin) — intended implementation path:
kotlinval iconUri = markerOptionsMap.getString("icon_uri")
val markerOptions = MarkerOptions()
.position(LatLng(lat, lng))
if (iconUri != null) {
val bitmap = BitmapFactory.decodeStream(
URL(iconUri).openConnection().getInputStream()
)
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(bitmap))
}
iOS (Swift) — intended implementation path:
swiftif let iconUri = options["icon_uri"] as? String,
let url = URL(string: iconUri),
let data = try? Data(contentsOf: url),
let image = UIImage(data: data) {
marker.icon = image
}
I am willing to implement the Android side and submit a PR. Happy to align on the preferred API shape before starting if maintainers have a different approach in mind.
- Ngôn ngữ chính
- TypeScript
- Star
- 226
- Fork
- 39
- Merge trung bình
- 1 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 7
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của googlemaps/react-native-navigation-sdk
-
[Support Request]: Status of Expo config plugin release (prebuild fails on 0.19.0)Có thể đã có người làm @jokerttu đã nhận 1 ngày trước. Đang mở
googlemaps/react-native-navigation-sdk#711 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 5 ngày
-
[Bug]: In-navigation notification can't be stoppedCó thể đã có người làm @jokerttu đã nhận 8 ngày trước. Đang mởtriage me type: bug
googlemaps/react-native-navigation-sdk#696 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 5 ngày
-
[Bug]: [iOS] Navigation SDK init/quota retry loop pins the main thread; React Native's Settings module and addMarker's temporary GMSMarker add to the costCó thể đã có người làm @illuminati1911 đã nhận 14 ngày trước. Đang mởtriage me type: bug
googlemaps/react-native-navigation-sdk#687 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 5 ngày
-
[Bug]: iOS crash in GMSObjectDataCache Core Data save (fatal optimistic locking failure)Có thể làm lại được @illuminati1911 đã nhận 60 ngày trước và không có pull request nào đang mở. Đang mởnative sdk issue
googlemaps/react-native-navigation-sdk#647 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 5 ngày
-
[Bug]: CarPlay map view never sets GMSMapViewOptions.screen, so the navigation header and footer are sized for the phoneCó thể làm lại được @jokerttu đã nhận 73 ngày trước và không có pull request nào đang mở. Đang mở
googlemaps/react-native-navigation-sdk#640 · 4 bình luận · 1 reaction · 1 người được giao ·
Maintainer thường phản hồi trong vòng 5 ngày
Tất cả issue của googlemaps/react-native-navigation-sdk
Issue tương tự
-
pending close triaging
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 74/100
anomalyco/opencode#63090 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ai-driven-qa bug claude Cosmetic
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
ai-driven-qa bug claude Minor
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
linagora/twake-mail-admin#609 ·
Maintainer thường phản hồi trong vòng 1 ngày