kw_amap_search 0.0.1 copy "kw_amap_search: ^0.0.1" to clipboard
kw_amap_search: ^0.0.1 copied to clipboard

Flutter plugin for AMap POI keyword and nearby search on Android and iOS.

kw_amap_search #

kw_amap_search 是一个 Flutter 高德地图 POI 搜索插件,支持 Android 和 iOS。

它从旧插件 gxcm_amap_search 迁移了 Android 端能力,并补齐了 iOS 端实现。现有能力包括:

  • 设置 Android/iOS 高德 Key
  • 更新高德隐私合规状态
  • 关键字 POI 搜索
  • 周边 POI 搜索
  • 周边搜索半径 radius
  • 统一的 POI 结果模型
  • 旧 API 和旧模型字段兼容
  • 原生 SDK 错误透传为 AmapSearchException

平台依赖 #

Android #

插件内置依赖:

implementation("com.amap.api:search:9.7.1")

调用搜索前需要先配置 Android Key 和隐私状态。

iOS #

插件 podspec 内置依赖:

s.dependency 'AMapFoundation-NO-IDFA', '1.9.0'
s.dependency 'AMapSearch-NO-IDFA', '9.8.0'

iOS 端通过 AMapServices.shared().apiKey 设置 Key,通过 securityAgreeanalysisAgree 更新隐私同意状态。

初始化 #

建议在发起任何搜索前执行:

await KwAmapSearch.setApiKey('android-key', 'ios-key');
await KwAmapSearch.updatePrivacyShow(true, true);
await KwAmapSearch.updatePrivacyAgree(true);

关键字搜索 #

推荐使用 query object API:

final pois = await KwAmapSearch.searchByKeyword(
  const AmapKeywordSearchQuery(
    keyword: '咖啡',
    city: '上海',
    types: '050000',
    pageSize: 20,
    pageNum: 1,
  ),
);

旧 API 仍然可用:

final pois = await KwAmapSearch.searchKeyword(
  keyword: '咖啡',
  city: '上海',
);

周边搜索 #

final pois = await KwAmapSearch.searchNearby(
  const AmapAroundSearchQuery(
    center: AmapLatLng(latitude: 31.2304, longitude: 121.4737),
    keyword: '餐厅',
    city: '上海',
    radius: 1500,
  ),
);

searchAround 也保留,并新增可选 radius 参数。默认值是 1000 米,保持旧 Android 实现的行为:

final pois = await KwAmapSearch.searchAround(
  latitude: 31.2304,
  longitude: 121.4737,
  keyword: '餐厅',
  radius: 1500,
);

结果模型 #

新代码建议使用清晰字段:

for (final poi in pois) {
  print('${poi.name} ${poi.address}');
  print('${poi.location.latitude}, ${poi.location.longitude}');
}

为了方便旧项目迁移,下列旧字段仍然可用:

poi.poiId;
poi.title;
poi.snippet;
poi.latLonPoint;
poi.indoorData;
poi.poiExtension;
poi.subPois;

旧模型构造方式也保留,例如 SubPois(title: ...)LatLonPoint(latitude: ...)Photos(title: ...)

错误处理 #

原生 SDK 返回非成功状态时,插件会抛出 AmapSearchException,避免把“搜索失败”和“没有结果”混在一起:

try {
  final pois = await KwAmapSearch.searchByKeyword(
    const AmapKeywordSearchQuery(keyword: '咖啡'),
  );
} on AmapSearchException catch (error) {
  print(error.code);
  print(error.message);
  print(error.details);
}

示例 #

运行 example:

cd example
flutter run

示例页包含 Key 输入、隐私初始化、关键字搜索、周边搜索和结果列表。

0
likes
0
points
65
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin for AMap POI keyword and nearby search on Android and iOS.

Topics

#amap #poi #search #location

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on kw_amap_search

Packages that implement kw_amap_search