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

集成的是这个 

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值,然后再在后台更新就好了

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐