reGeocode method

Future<ReGeocodeResponse> reGeocode(
  1. LatLng location, {
  2. int? radius,
  3. String? output,
  4. String? extensions,
  5. String? poiType,
  6. String? roadLevel,
  7. String? homeOrCorp,
})

逆地理编码 location: 必填,经纬度坐标 radius: 搜索半径,取值范围在0~3000,默认是1000,单位:米 output: 返回数据格式类型,默认为JSON extensions:返回结果控制,取值为base只返回基本地址信息,取值为all时会返回基本地址信息、附近POI内容、道路信息以及道路交叉口信息 poiType: 返回附近POI类型,extensions参数为all时生效 roadLevel: 道路等级,extensions参数为all时生效 homeOrCorp: 是否优化POI返回顺序,extensions参数为all时生效

Implementation

Future<ReGeocodeResponse> reGeocode(
  LatLng location, {
  int? radius,
  String? output,
  String? extensions,
  String? poiType,
  String? roadLevel,
  String? homeOrCorp,
}) async {
  Uri uri = appendApiPath(this.uri, "/v3/geocode/regeo");
  final params = <String, dynamic>{};
  params['key'] = apiKey;
  params["location"] = "${location.longitude.toStringAsFixed(6)},"
      "${location.latitude.toStringAsFixed(6)}";
  if (radius != null) params["radius"] = min(max(0, radius), 3000).toString();
  if (output != null && output.isNotEmpty) params["output"] = output;
  if (extensions != null && extensions.isNotEmpty) params["extensions"] = extensions;
  if (poiType != null && poiType.isNotEmpty) params["poitype"] = poiType;
  if (roadLevel != null && roadLevel.isNotEmpty) params["roadlevel"] = roadLevel;
  if (homeOrCorp != null && homeOrCorp.isNotEmpty) params["homeorcorp"] = homeOrCorp;
  if (secretKey != null) params["sig"] = generateSignature(params);
  final url = appendParameters(uri, params).toString();
  final response = await doGet(url, headers: apiHeaders);
  return ReGeocodeResponse.fromJson(jsonDecode(response.body));
}