amap_kit_map 0.1.0 copy "amap_kit_map: ^0.1.0" to clipboard
amap_kit_map: ^0.1.0 copied to clipboard

AMap map widget and controller for Flutter.

amap_kit_map #

基于高德原生地图 SDK 的 Flutter 地图组件(支持 Android 与 iOS),提供地图展示、相机控制、强类型覆盖物(Marker、Polyline、Polygon、Circle、Heatmap、TileOverlay、GroundOverlay、聚合)和地图事件。

API 设计参考 Google Maps for Fluttergoogle_maps_flutter):沿用其控制器模型、相机更新 API 与覆盖物新增/变更/删除的差分风格,熟悉 Google Maps 插件的开发者可以快速迁移。

平台 高德 SDK 版本
Android 3dmap-location-search 合包 11.1.001_loc11.1.001_sea9.7.4
iOS AMap3DMap 11.2.100

使用 #

创建地图前先向用户展示高德隐私政策并取得同意,然后传入 API Key、隐私声明、mapId 和初始相机位置:

AmapMap(
  apiKey: exampleApiKey,
  privacyStatement: const AMapPrivacyStatement(
    hasContains: true,
    hasShow: true,
    hasAgree: true,
  ),
  mapId: 'home-map',
  initialCameraPosition: const CameraPosition(
    target: LatLng(30.2741, 120.1551),
    zoom: 12,
  ),
  markers: const <Marker>{
    Marker(
      markerId: MarkerId('west-lake'),
      position: LatLng(30.2304, 120.1325),
    ),
  },
  onMapCreated: (AmapMapController controller) {
    // 保存 controller,用于后续相机控制。
  },
)

地图创建后通过 AmapMapController 控制相机、读取可见区域等,不再使用时必须调用 dispose

controller.animateCamera(const CameraUpdate.zoomBy(1));
controller.moveCamera(CameraUpdate.newLatLng(const LatLng(30.24, 120.14)));
final LatLngBounds visible = await controller.getVisibleRegion();
controller.dispose();

说明 #