react-native - 如何聚类除一个之外的所有标记
问题描述
我正在使用react-native-map-clustering对谷歌地图上的标记进行聚类。所有标记都是动态的,除了一个表示我的位置。当我缩小地图集群所有标记。但我想要这样的东西 这是我的实现:
<MapView
layoutAnimationConf={LayoutAnimation.Presets.easeInEaseOut}
animationEnabled={true}
ref={mapRef}
style={styles.map}
provider={PROVIDER_GOOGLE}
initialRegion={currentRegion}
// region={currentRegion}
clusteringEnabled={true}
radius={70}
customMapStyle={mapConfig}>
<Marker coordinate={currentRegion} title={'my location'}>
<Image
source={images.currentLocation}
style={{
height: 20,
width: 20,
}}
/>
</Marker>
{branchMarkers()}
</MapView>
解决方案
您可以将Marker 上的cluster属性设置为false,如下所示:
<Marker
coordinate={coordinate}
cluster={false}
...
/>
<Image ... />
</Marker>
这将使这个标记在所有缩放级别上都永久去簇并在地图上可见,而不会影响其他簇。在内部,对于作为MapView子级的每个Marker,检查该Marker是否应该包含在集群中是在一个帮助函数中完成的,该函数检查这个 prop 是否已被覆盖:
export const isMarker = (child) =>
child &&
child.props &&
child.props.coordinate &&
child.props.cluster !== false;
TypeScript 用户注意事项:
react-native-map-clustering 不会导出具有已定义集群属性的Marker组件。将 cluster prop 应用于从 react-native-maps 导入的Marker将触发 ts 编译器错误,因此您需要定义自己的 Marker 类型或忽略此 ts 错误。
推荐阅读
- python - Pandas 使用 apply() 仅在部分数据帧上运行该函数
- haskell - 不清楚为什么 Data.Ratio 中的函数没有公开以及如何解决
- javascript - 在 React 中引用前一个状态时在 setState 中使用回调
- django - Django Rest 部分更新
- rest - 如何适应 Binance API 签名错误消息 - 1022?
- javascript - React 类组件和 React 功能组件更改 redux store 后访问 props 的区别
- c# - ListBoxEdit:如何使图像和文本框可选?
- sql-server - 如何使用 access vba 调用 SQL-Server 用户定义函数
- c++ - `str.find_first_of("\t\n\v\f\r ")` 会在 unix 上工作吗?
- python-3.x - Pandas for Excel 和硒循环