xbr_gaode_amap 1.0.5 copy "xbr_gaode_amap: ^1.0.5" to clipboard
xbr_gaode_amap: ^1.0.5 copied to clipboard

outdated

小镖人高德地图插件,再封装插件,增加查询功能,也可以单独使用查询插件 xbr_gaode_search,如需定位,可使用:xbr_gaode_location

xbr_gaode_amap #

介绍

高德地图插件的封装,在官方基础上增加查询控件,如下所示:

xbr_gaode_search

对高德提供定位控件再封装,如下所示:

xbr_gaode_location

主要功能

1.增加地图查询功能 (1)关键子检索 POI (2)POI详情 (3)线路规划 (4)货车线路规划(先去高德客服申请) (5)查询输入提示 InputTips (6)地理编码(地址转坐标) (7)逆地理编码(坐标转地址) 2.如果使用:xbr_gaode_location (1)定位返回数据IOS和Android兼容(官方sdk只返回Map,而且IOS和Android返回的字段不一致)

安装教程

  xbr_gaode_amap: ^1.0.5

使用说明

  1. xbr_gaode_amap 已经集成 xbr_gaode_search 使用时可以不重复引入 xbr_gaode_search,但可能导包时需要手动复制

  2. xbr_gaode_location 在官方sdk上重新封装过,如需使用,可单独引入:

    xbr_gaode_location
    

    (1).定位权限配置,使用第三方 permission_handler 动态权限工具,下边均是从permission_handler文档中拷贝 使用方法请移步 permission_handler

    //ANDROID
    ```
    //1.添加下面到你的 "gradle.properties" 文件:
        android.useAndroidX=true
        android.enableJetifier=true
    //2.设置下面的SDK版本到 "android/app/build.gradle" 文件,版本 31:
        android {
          compileSdkVersion 31
          ...
        }
    ```
    
    //IOS
    //1.添加下面内容到你的Podfile文件(在文件最下方,******节点开始):
    ```
    post_install do |installer|
      installer.pods_project.targets.each do |target|
    
        ##### ******从这里开始拷贝
        target.build_configurations.each do |config|
          # 以下是flutter自动生成的一些配置
    
          # 您可以在此处启用所需的权限。 例如启用相机
          # 权限,只需删除前面的 `#` 字符,如下所示
          #
          # ## dart: PermissionGroup.camera 相机权限
          # 'PERMISSION_CAMERA=1'
          #
          #  Preprocessor definitions can be found in: https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler/ios/Classes/PermissionHandlerEnums.h
          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
            '$(inherited)',
    
            ## dart: PermissionGroup.calendar 打开日历权限 需要就删除下面的#
            # 'PERMISSION_EVENTS=1',
    
            ## dart: PermissionGroup.reminders 系统提醒权限
            # 'PERMISSION_REMINDERS=1',
    
            ## dart: PermissionGroup.contacts 打开联系人列表权限
            # 'PERMISSION_CONTACTS=1',
    
            ## dart: PermissionGroup.camera  相机权限
            # 'PERMISSION_CAMERA=1',
    
            ## dart: PermissionGroup.microphone  麦克风权限
            # 'PERMISSION_MICROPHONE=1',
    
            ## dart: PermissionGroup.speech   语音权限
            # 'PERMISSION_SPEECH_RECOGNIZER=1',
    
            ## dart: PermissionGroup.photos  打开相册权限
            # 'PERMISSION_PHOTOS=1',
    
            ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]  定位相关权限
            # 'PERMISSION_LOCATION=1',
    
            ## dart: PermissionGroup.notification  通知权限
            # 'PERMISSION_NOTIFICATIONS=1',
    
            ## dart: PermissionGroup.mediaLibrary  媒体库权限
            # 'PERMISSION_MEDIA_LIBRARY=1',
    
            ## dart: PermissionGroup.sensors  距离红外传感器权限
            # 'PERMISSION_SENSORS=1',
    
            ## dart: PermissionGroup.bluetooth  蓝牙权限
            # 'PERMISSION_BLUETOOTH=1',
    
            ## dart: PermissionGroup.appTrackingTransparency  访问与应用相关的数据以跟踪用户或设备
            # 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',
    
            ## dart: PermissionGroup.criticalAlerts  关键警报权限
            # 'PERMISSION_CRITICAL_ALERTS=1'
          ]
    
        end
        ##### *****拷贝到这里
    
      end
    end
    ```
    //2.当然,你仍然需要配置info.list
    

    (2).xbr_gaode_location使用

        //TODO:直接开始定位
        XbrGaodeLocation.startLocation(callback: (LocationInfo location){
            //location 对IOS和Android数据 已兼容处理
    
        })
        //TODO:或者 传入设置 并开启定位
        XbrGaodeLocation.startLocation(option:AMapLocationOption(...),callback: (LocationInfo location){
            //location 对IOS和Android数据 已兼容处理
        })
    
        //页面销毁时,也要销毁点位
        @override
        void dispose() {
            mapController?.disponse();
            uiController.dispose();
            //页面销毁时也要停止定位,如果需要后台定位,就不要吧定位数据显示在可销毁的页面UI上
            XbrGaodeLocation.destroyLocation();
            super.dispose();
        }
    

    3.地图使用

     AMapUIController uiController = AMapUIController();
    

    //地图控件

     XbrAmapWidget(
        initCameraPosition: CameraPosition(target: LatLng(26.653841, 106.642904), bearing: 45, zoom: 12, tilt: 15),
        uiController: uiController,
        onMapCreated: (AMapController controller) {
            //地图加载完成
        },
        onCameraMove: (CameraPosition position) {
            //地图移动
        }
        onCameraMoveEnd: (CameraPosition position) {
            //地图移动结束
        }
    )
    

    //线路规划

     AmapSearchUtil.routePlanning(
          //最多支持18个点,第一个为起点,最后一个为终点,中间为途径点,
          wayPoints: list,
          callBack: (code, linePoints, bounds) {
                //code 1000为成功
                //linePoints 返回的线点集合,如果需要导航数据,使用方法:XbrAmapSearch.routeSearch() 返回全部数据
                //bounds 计算了一个包含线路所有点位的矩形坐标盒(最大可视面积),移动相机时可以直接使用,如下所示
    
                //绘制规划线 pathlineId 是唯一值 需自定义
                //customTexture:线路Texture图片,可以不设置,使用颜色
                uiController.savePolyline("pathlineId", Polyline(
                  customTexture: lineImgPath!=null?BitmapDescriptor.fromIconPath(lineImgPath):null,
                  joinType: JoinType.round,
                  capType: CapType.round,
                  points: linePoints,
                  color: lineColor??Colors.blueAccent,
                  width: 14,
                ));
                //利用MAP控制器移动相机到线路最大可视面积,边距50,时间1000毫秒,可自行更改
                mapController.moveCamera(CameraUpdate.newLatLngBounds(bounds, 50), duration: 1000);
          }
      )
    

    //地图绘制

        //1.绘制线
        uiController.savePolyline("pathlineId", Polyline(..));
        //2.绘制marker (flat:可将图片贴在地图上,随3d地图旋转)
        uiController.saveMarker("markerId", Marker(flat:...));
        //3.绘制圆
        //获取圆数据:latLng中心点,radius圆的半径(真实半径:单位-米(m),可以制作电子围栏))
        var points = AmapUtil.getCirclePoints(center:latLng,radiusMi: radius);
        //利用绘制多边形绘制圆
        uiController.savePolygon("polygonId",Polygon(points:points,...);
    

4.更多使用,请点击Versions选择最新版下载example工程,内含示例:动态权限、关键字检索、地图中心坐标取地址(逆地理编码)、线路规划、电子围栏(模拟触发)、定位跟踪等等

参与贡献

  1. 版本内置 高德官方插件 amap_flutter_map,amap_flutter_location,使用前需参考高德API
  2. example中有动态权限功能,使用:permission_handler
  3. 本控件由易林物流,XBR-小镖人团队开发并维护。
  4. XBR开发团队:从事物流软件开发、物流AI技术、智慧物流、网络货运

特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/
8
likes
0
points
45
downloads

Publisher

unverified uploader

Weekly Downloads

小镖人高德地图插件,再封装插件,增加查询功能,也可以单独使用查询插件 xbr_gaode_search,如需定位,可使用:xbr_gaode_location

Homepage

License

unknown (license)

Dependencies

amap_flutter_base, amap_flutter_map, flutter, xbr_gaode_search

More

Packages that depend on xbr_gaode_amap

Packages that implement xbr_gaode_amap