我正在做一个项目,我需要一次在地图上显示至少10到20个标记。项目被逐出博览会和谷歌地图支付,我正在使用MapBox。
要将地图添加到react本机中,我使用的是@react-native-mapbox-gl/maps":"^8.1.0-rc.9,但是文档不是很好,所以我尝试从一个媒体博客添加标记。但它有一些故障,如标记显示,但如果我放大比标记移动。假设现在的标记是在孟买(印度),但如果我放大,它将在非洲。
这是我尝试过的
<MapboxGL.MapView
style={styles.map}
logoEnabled={false}
localizeLabels={true}
>
<MapboxGL.Camera
zoomLevel={18}
animationMode={'flyTo'}
animationDuration={1100}
centerCoordinate={[73.20812, 22.29941]}
/>
<View>
<MapboxGL.MarkerView id={'hello'} coordinate={[73.20812, 22.29941]}>
<View>
<Entypo
name='location-pin'
size={24}
color='black'
/>
</View>
</MapboxGL.MarkerView>
<MapboxGL.MarkerView
id={'hello'}
coordinate={[73.20813, 22.29941]}
>
<View>
<Entypo name='location-pin' size={24} color='black' />
</View>
</MapboxGL.MarkerView>
<MapboxGL.MarkerView id={'hello'} coordinate={[73.20814, 22.29941]}>
<View>
<Entypo name='location-pin' size={24} color='black' />
</View>
</MapboxGL.MarkerView>
<MapboxGL.MarkerView id={'hello'} coordinate={[73.20815, 22.29941]}>
<View>
<Entypo name='location-pin' size={24} color='black' />
</View>
</MapboxGL.MarkerView>
<MapboxGL.MarkerView id={'hello'} coordinate={[73.20816, 22.29941]}>
<View>
<Entypo name='location-pin' size={24} color='black' />
</View>
</MapboxGL.MarkerView>
</View>
</MapboxGL.MapView>
发布于 2020-11-26 07:03:52
我刚刚做了一个改变,现在一切都很好。
我已经将MapboxGL.PointAnnotation改为MapboxGL.MarkerView,现在缩放标记仍然是固定的。
发布于 2022-09-20 08:14:44
如果您想使用MarkerView,可以通过延迟使用setTimeOut显示MarkerViews来解决这个问题,500毫秒对我来说是可行的。
useEffect(() => {
if (displayMap) {
setTimeout(() => {
setDisplayMarkers(true);
}, 500);
} else {
setDisplayMarkers(false);
}}, [displayMap]);
https://stackoverflow.com/questions/65016202
复制相似问题