反应原生地图聚类

cof*_*fee 18 maps markerclusterer react-native react-native-maps

我是反应原生的新手,我想在我的应用程序中集成地图,我正在使用"react-native-maps"库, 我想使用https://github.com/airbnb/react-native-maps聚类,但我无法找到与此相关的适当文件.请帮助我找到如何将地图与群集集成的文档,并告诉哪个库最适合实现两个平台,iOS和Android的群集.

ede*_*den 10

你可以使用mapbox/supercluster repo,这里有一个要点,展示了如何为React Native实现超级集群.它最初是为浏览器/节点应用程序开发的,但你仍然可以简单地npm install使用它(javascript到处都是javascript).将聚簇标记添加到MapView(最初在此处共享):

<MapView ref={ref => { this.map = ref; }}>
  { this.state.markers.map((marker, index) => {
    return (
      <MapView.Marker 
        coordinate={{ latitude: marker.geometry.coordinates[1], longitude: marker.geometry.coordinates[0] }}
        onPress={() => this.markerPressed(marker)}>
        <Marker model={place} active={this.isSelected(place)} />
      </MapView.Marker>
    );
  })}
</MapView>
Run Code Online (Sandbox Code Playgroud)

来自以下问题警告react-native-maps:

主要问题是性能,如果你需要显示数百或数千个标记,你将需要优化地狱,这就是它变得非常困难的地方.

react-native-maps还有一个主动冲突的 PR,它在Android和iOS本地解决了这个问题,但它等待合并.但是,您可以手动实现它.


Pir*_*hah 5

您可以使用react-native-maps-super-cluster。该模块包装了AirBnB的react-native-maps,并使用MapBox的SuperCluster作为群集引擎。该模块非常易于使用。

演示版

在此处输入图片说明

还有一个库用于集群react-native-map-clustering