【发布时间】:2017-05-12 11:34:15
【问题描述】:
我有一个带有一个标记的静态地图,并希望始终显示标记标注。
有些人建议使用MapView 的onLayout,但这暂时不起作用。
我正在尝试使用 onRegionChangeComplete 解决它,它有时会起作用(它会被调用一次或两次),但在大约 10% 的情况下,它会陷入循环并被一次又一次地调用,直到应用程序崩溃。这只发生在 iOS 上。
这是我的代码
setMarkerRef = (ref) => {
this.marker = ref
}
showCallout = () => {
this.marker.showCallout()
}
render() {
...
<MapView
style={{...StyleSheet.absoluteFillObject}}
region={{
latitude: latitude,
longitude: longitude,
latitudeDelta: 0.00922,
longitudeDelta: 0.00421,
}}
showsMyLocationButton={false}
showsCompass={false}
showsTraffic={false}
zoomEnabled={false}
rotateEnabled={false}
scrollEnabled={false}
pitchEnabled={false}
onRegionChangeComplete={this.showCallout}
onPress={this.openMap}
>
<MapView.Marker
coordinate={{
latitude: latitude,
longitude: longitude,
}}
title={address}
ref={this.setMarkerRef}
/>
</MapView>
知道我的方法有什么问题吗?有没有人有更好的解决方法?
编辑:我希望组件看起来像这样,而不需要用户交互。只需显示地图、标记和标注。
【问题讨论】:
-
我不完全确定您要做什么。你能再解释一下吗?您是否尝试渲染固定在地图中心且一直显示的标注?
-
嗨,@KaiwenHuang 我已经在我的问题中添加了图片。我不希望用户必须与地图进行交互,只需在标注已打开的情况下向他们展示即可。
-
啊。所以你的地图也禁用了滚动。因此,每当您更新纬度和经度时,您希望标记和标注显示在该坐标处,对吗?
-
我什至不打算改变坐标。我使用了
innitialRegion,但后来我感觉它使用region效果更好。可能没关系。 -
啊,我明白了。因此,只需在渲染此组件时显示带有标记和标注的固定地图。我会发布答案
标签: react-native react-native-maps