getLocation method

Future<LatLng> getLocation(
  1. {Duration delay = Duration.zero}
)

获取当前位置

由于定位需要时间, 如果进入地图后马上获取位置信息, 获取到的会是null, 加入参数delay指定 进入地图后一段时间后再获取定位. 具体数值可以自行尝试判断. 另外一个解决方案是使用amap_location_fluttify 返回的是经纬度, 如果需要进一步的数据, 可以配合https://github.com/fluttify-project/amap_search_fluttify进行逆地理搜索

Implementation

Future<LatLng> getLocation({Duration delay = Duration.zero}) async {
  return platform(
    android: (pool) async {
      return Future.delayed(
        delay,
        () async {
          final map = await _androidController.getMap();
          final location = await map.getMyLocation();

          final result = LatLng(
            await location.latitude,
            await location.longitude,
          );
          return result;
        },
      );
    },
    ios: (pool) async {
      return Future.delayed(
        delay,
        () async {
          final location = await _iosController.get_userLocation();
          final coord = await location.get_coordinate();

          final result = LatLng(await coord.latitude, await coord.longitude);
          return result;
        },
      );
    },
  );
}