Flutter Map 半径聚类

一个为 flutter_map 提供的聚类插件,可在定义的半径内异步搜索标记/聚类。

警告

此插件是新的,API 在不久的将来可能会频繁更改。

用法

将 flutter_map 和 flutter_map_radius_cluster 添加到您的 pubspec

dependencies:
  flutter_map: any
  flutter_map_radius_cluster: any # or the latest version on Pub

将其添加到 FlutterMap 并使用 RadiusClusterLayerOptions 进行配置。

  Widget build(BuildContext context) {
  return FlutterMap(
    options: MapOptions(
      zoom: 5,
      maxZoom: 15,
    ),
    children: <Widget>[
      TileLayerWidget(
        options: TileLayerOptions(
          urlTemplate: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
          subdomains: ['a', 'b', 'c'],
        ),
      ),
      RadiusClusterLayerWidget(
        options: RadiusClusterLayerOptions(
          radiusInKm: 100.0,
          search: (radius, center) {
            /* ... your search implementation here */
          },
          clusterWidgetSize: const Size(40, 40),
          anchor: AnchorPos.align(AnchorAlign.center),
          builder: (context, clusterData) {
            clusterData as ClusterDataWithCount;
            return Container(
              decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(20.0),
                  color: Colors.blue),
              child: Center(
                child: Text(
                  clusterData.markerCount.toString(),
                  style: const TextStyle(color: Colors.white),
                ),
              ),
            );
          },
        ),
      ),
    ],
  );
}

运行示例

请参阅 example/ 文件夹中的工作示例应用程序。

GitHub

查看 Github