我遇到了一个问题,在使用 react-native-maps 渲染地图时,我们无法仅在 iOS 设备上显示地图填充。
这很有趣,因为Android设备确实可以正确显示地图填充,但是当设置该道具时,iOS设备根本不会显示任何填充。
以下是以下代码,适用于Android设备,但不适用于iOS设备,涉及mapPadding:
<MapView
ref={(map) => (this.map = map)}
mapPadding={{ top: 0, right: 0, bottom: 550, left: 0 }}
paddingAdjustmentBehavior="always"
initialRegion={{
latitude: 30.2303 - 0.0123,
longitude: -97.7538,
latitudeDelta: 0.2,
longitudeDelta: 0.1,
}}
style={styles.mapStyle}
>
{crawlCard.map((crawl, index) => {
return (
<Marker
coordinate={{
latitude: crawl.coords.lat,
longitude: crawl.coords.lon,
}}
title={crawl.title}
key={index}
onSelect={() => {
this.map.animateToRegion(
{
latitude: crawl.coords.lat,
longitude: crawl.coords.lon,
},
200
);
}}
/>
);
})}
</MapView>
我们是否需要实现任何其他功能/方法才能使此mapPadd道具在iOS设备上工作?我和我的团队看到的所有示例都像这样在两个平台上使用了mapPadpad。
我们正在使用: 反应原生 5.x 反应原生映射 0.26.1
任何协助将不胜感激。谢谢你!
我设法让mapPadding
在两个平台上工作的唯一方法是使用provider={PROVIDER_GOOGLE}
,这需要一些额外的配置才能在 iOS 上运行。不过,这使得地图在两个平台上的外观和工作方式基本相同。