推广

Flutter高德地图Plugin

iseeyu3年前 (2024-02-22)推广128

totem


English Document 中文文档

Effect

地图.jpg

定位.jpg

导航.jpg

导航.jpg

1.安装

使用当前包作为依赖库

1. 依赖此库

在文件 ‘pubspec.yaml’ 中添加

[图片上传失败…(image-6a929e-1595506401693)]


dependencies:

  ai_amap: ^version

或者以下方式依赖

dependencies:

  # ai_amap package.
  ai_amap:
    git:
      url: https://github.com/pdliuw/ai_amap.git

2. 安装此库

你可以通过下面的命令行来安装此库


$ flutter pub get


你也可以通过项目开发工具通过可视化操作来执行上述步骤

3. 导入此库

现在,在你的Dart编辑代码中,你可以使用:


import 'package:ai_amap/ai_amap.dart';

2.使用

使用’地图’需要动态申请权限,动态权限推荐:permission_handler

配置权限

<details>
<summary>Android</summary>


    <!--
    地图SDK(包含其搜索功能)需要的基础权限
    -->

    <!--允许程序打开网络套接字-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--允许程序设置内置sd卡的写权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允许程序获取网络状态-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--允许程序访问WiFi网络信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允许程序读写手机状态和身份-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <!--
    地图定位需要的权限
    -->

    <!--用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <!--用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <!--用于访问网络,网络定位需要上网-->
    <uses-permission android:name="android.permission.INTERNET"/>
    <!--用于读取手机当前的状态-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <!--用于写入缓存数据到扩展存储卡-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <!--用于申请调用A-GPS模块-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

    <!--
    导航所需权限
    -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />


    <application>
    
    ...    

        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="${apiKey}" />
        <!--
        https://lbs.amap.com/api/android-location-sdk/guide/android-location/getlocation
        (请在application标签中声明service组件,每个app拥有自己单独的定位service。)
        -->
        <service android:name="com.amap.api.location.APSService"></service>

        <!--
        地图导航组件
        -->
        <activity android:name="com.amap.api.navi.AmapRouteActivity"
            android:theme="@android:style/Theme.NoTitleBar"
            android:configChanges="orientation|keyboardHidden|screenSize" />

    </application>

</details>

<details>
<summary>iOS</summary>


    <key>NSFileProviderPresenceUsageDescription</key>
    <string>使用时允许访问文件</string>
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>始终允许定位(提高后台定位准确率)</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>使用时始终允许定位</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>使用时允许定位</string>


** 为提高iOS定位成功率,请打开–>’Background Modes’ –> 勾选 ️’Location Updates’ **

iOS支持PlatformView配置:

    
    <key>io.flutter.embedded_views_preview</key>
    <true/>
    

</details>

1.使用’地图’的地方中:

  • 1、使用地图Widget
    //map widget
    _aMapWidget = AiAMapLocationPlatformWidget(
      platformWidgetController: _locationController,
    );

  • 2、使用地图Controller

    _locationController = AiAMapLocationPlatformWidgetController(
      locationResultCallback:
          (AiAMapLocationResult locationResult, bool isSuccess) {
        setState(() {
          _currentState = "定位:$isSuccess";
        });

        if (locationResult.haveAddress()) {
          _locationController.stopLocation();

          setState(() {
            if (widget._locationResultTest != null) {
              widget._locationResultTest(locationResult, isSuccess);
            }
            _locationAddress = locationResult.address;
          });

        }
      },
      platformViewCreatedCallback: (int id) {
        setState(() {
          //1、ApiKey
          AiAMapLocationPlatformWidgetController.setApiKey(
              apiKey: "$_yourPrimaryKey");
          //2、初始化定位服务
          _locationController..recreateLocationService();
          _locationController.startLocation();
          setState(() {
            _currentState = "开始定位";
          });
        });
      },


flutter开发者项目示例:

flutter_app_sample 帮助flutter开发者更快入门、精进,避免不必要的技术坑。
如果您觉得此项目对您有所帮助,也可以”star”一下,我们得到您的鼓励后会更有动力持续推出更多有益于您的技术示例

特征:

  • 本项目是主打技术示例,所以涉及到的需求会比较少,涉及到的技术会比较多
  • 本项目是为flutter开发者专门打造的“Api demo app”
  • 本项目不仅包含flutter 各种widget组件,还包含开发包、插件,以及与各平台platforms交互、通信(Platform Channel)的技术示例。
  • 移步查看更多特征……

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/55859.html

相关文章

能量的熵

能量的熵

燃烧的电子转移在微观范畴上完全无序也不可控。我们完全没法预测燃料与氧气分子会往哪个方向运动,下一时刻的速率如何,我们也不知道燃料上的电子会向那个方向转移到哪个氧气分子上。10^20-23次方的分子的随机运动与更多的电子的随机转移导致的结果是无序的能量释放,或者简单点说,放热...

SEO优化预测:2022下半年的SEO优化趋势和执行方向

SEO优化预测:2022下半年的SEO优化趋势和执行方向

Google每年都会针对搜寻器演算法做数千个更新,而且很多更新都不会公布或是执行一段时间後才公布。因此,品牌若然想利用扩大知名度,提升销售量,那麽掌握SEO趋势预测就显得相当重要。今天,Inspirr将根据多年的观察与实务经验,预测2022下半年的SEO优化趋势和执行方向,希望能对各位有所帮助!...

超级推荐新品推广添加不了宝贝(超级推荐新品推广怎么使用)

超级推荐新品推广添加不了宝贝(超级推荐新品推广怎么使用)

超级推荐是新品推广的一种最新方式,主要通过对直通车定向推广以及单品推广功能借鉴的基础上整合升级而成的,所有功能有部分是重合的。...

图解《营销管理(第16版)》,领悟畅销全球55年“营销圣经”

图解《营销管理(第16版)》,领悟畅销全球55年“营销圣经”

本文报告来源于《管理(第16版)》报告,完整版共有332页,非常详尽,值得收藏。 本报告下载领取方式详见文末本报告目录大纲如下: 营销管理的基本原理 设计价值动价值 营销战略规划...

做网站引流的过程中应该重视哪些问题呢?

做网站引流的过程中应该重视哪些问题呢?

域名买的就越好?大错特错! 我们在做引流的过程中应该重视哪些问题呢?域名买的越多就越好?虚拟主机买的越多就越好吗?现在有的人就说自己做网站可以买50个域名300个主机,这样的话自己如果网站被k掉,也没有什么事。 第一:花钱! 这不是一个正确的做法,域名以及虚拟主机都是要钱的,它并不是说白送的...

【软文营销推广】软文营销需要注意的核心点

软文是如今网络的必备利器,这几年来互联网的发展,软文对于网站或者推广的重要性相信大家也都看到了。实际上,是成本较低且效果最好的营销方式,其目的就是为了可以将企业的品牌或是产品可以更好的推广出去。目前,软文营销已经成为了中小型企业营销的利器,包括现在的大家最熟悉的互联网行业、...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片