[Feature request]: Support custom marker icons (bitmap/URI) via icon field in MarkerOptions
维护者通常 5 天内回复
评估
这个 Issue 还没有评估数据。
描述
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.
- 主要语言
- TypeScript
- 星标
- 226
- 派生
- 39
- 平均合并
- 1 天 20 小时
- 30 天内合并 PR
- 7
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
googlemaps/react-native-navigation-sdk 的其他 Issue
-
[Support Request]: Status of Expo config plugin release (prebuild fails on 0.19.0)可能已有人在做 @jokerttu 于 1 天前认领。 未关闭
googlemaps/react-native-navigation-sdk#711 · 已指派 1 人 ·
维护者通常 5 天内回复
-
[Bug]: In-navigation notification can't be stopped可能已有人在做 @jokerttu 于 8 天前认领。 未关闭triage me type: bug
googlemaps/react-native-navigation-sdk#696 · 已指派 1 人 ·
维护者通常 5 天内回复
-
[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 cost可能已有人在做 @illuminati1911 于 14 天前认领。 未关闭triage me type: bug
googlemaps/react-native-navigation-sdk#687 · 已指派 1 人 ·
维护者通常 5 天内回复
-
[Bug]: iOS crash in GMSObjectDataCache Core Data save (fatal optimistic locking failure)可能重新可做 @illuminati1911 于 60 天前认领,目前没有进行中的 PR。 未关闭native sdk issue
googlemaps/react-native-navigation-sdk#647 · 1 条评论 · 已指派 1 人 ·
维护者通常 5 天内回复
-
[Bug]: CarPlay map view never sets GMSMapViewOptions.screen, so the navigation header and footer are sized for the phone可能重新可做 @jokerttu 于 73 天前认领,目前没有进行中的 PR。 未关闭
googlemaps/react-native-navigation-sdk#640 · 4 条评论 · 1 个 reaction · 已指派 1 人 ·
维护者通常 5 天内回复
查看 googlemaps/react-native-navigation-sdk 的全部 Issue
相似的 Issue
-
pending close triaging
难度 1/5 1-3 小时 新手友好度 74/100
anomalyco/opencode#63090 · 1 条评论 ·
维护者通常 1 天内回复
-
ai-driven-qa bug claude Cosmetic
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
ai-driven-qa bug claude Minor
难度 2/5 1-3 小时 新手友好度 76/100
linagora/twake-mail-admin#609 ·
维护者通常 1 天内回复