flutter 集成高德地图(定位)

因为网上各个版本之间的差异,代码都不一样,导致很多问题,就不再列举错误的方式了,只要找到正确的就行了

集成的是这个 

amap_base_location: ^0.4.0+1

其他的都不要

代码是这样的

 final _amapLocation = AMapLocation();
  var _result = '';

  //初始化定位监听
  void _initLocation() async {
    _amapLocation.init();

    final options = LocationClientOptions(
      isOnceLocation: false,
      locatingWithReGeocode: true,
    );

    if (await Permissions.requestMapPermission()) {
      _amapLocation.startLocate(options).listen((_) => setState(() {
        _result =
        '坐标:${_.longitude},${_.latitude} @ ${DateTime.now().hour}:${DateTime.now().minute}:${DateTime.now().second}';
        print(_.latitude);
        Fluttertoast.showToast(msg: "${_.latitude}");
      }));



    } else {
      setState(() {
        _result = "无定位权限";
      });
    }
  }

这东西跟网上的有些不一样,比如有的可能其实集成的是amap_base,所以Permissions.requestMapPermissoon这里不一样

高德是需要key的,key是需要正确的sha1的

网上那种获取sha1的方法是有问题的,我根据官方的方式弄了一遍,最后也显示sha1出错,一个取巧的方法是,直接运行一遍,出错了就会显示正确的sha1值,然后再在后台更新就好了

你可能感兴趣的:(flutter)