{"id":18868400,"url":"https://github.com/best-flutter/flutter_amap_location","last_synced_at":"2025-04-06T02:09:33.605Z","repository":{"id":43466076,"uuid":"133378868","full_name":"best-flutter/flutter_amap_location","owner":"best-flutter","description":"高德地图flutter定位组件","archived":false,"fork":false,"pushed_at":"2023-02-21T02:34:25.000Z","size":1714,"stargazers_count":281,"open_issues_count":47,"forks_count":68,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-30T01:09:19.367Z","etag":null,"topics":["amap","amapsdk","dart","flutter","location"],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/best-flutter.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-14T15:00:56.000Z","updated_at":"2025-03-20T08:26:47.000Z","dependencies_parsed_at":"2024-06-21T07:11:10.850Z","dependency_job_id":"4c3bf42d-2a2c-4736-be77-85703cf87d11","html_url":"https://github.com/best-flutter/flutter_amap_location","commit_stats":{"total_commits":30,"total_committers":4,"mean_commits":7.5,"dds":0.5333333333333333,"last_synced_commit":"ecd6f0763c2bbfd54889327200f2e1c499eb06a7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/best-flutter%2Fflutter_amap_location","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/best-flutter%2Fflutter_amap_location/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/best-flutter%2Fflutter_amap_location/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/best-flutter%2Fflutter_amap_location/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/best-flutter","download_url":"https://codeload.github.com/best-flutter/flutter_amap_location/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247423515,"owners_count":20936626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amap","amapsdk","dart","flutter","location"],"created_at":"2024-11-08T05:13:33.735Z","updated_at":"2025-04-06T02:09:33.589Z","avatar_url":"https://github.com/best-flutter.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"@@ -1,184 +1,14 @@\n# amap_location\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://pub.dartlang.org/packages/amap_location\"\u003e\n        \u003cimg src=\"https://img.shields.io/pub/v/amap_location.svg\" alt=\"pub package\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n# flutter_amap_location\n\n\n![android preview](https://github.com/jzoom/images/raw/master/location1.gif)\n\n![ios preview](https://github.com/jzoom/images/raw/master/location2.gif)\n\n高德地图定位flutter组件。\n\n目前实现直接获取定位和监听定位功能。\n\n注意：随着flutter版本的提升， 本项目也会随之更新，\n\n\n感谢群友 [@a396901990](https://github.com/a396901990) ,目前已经修复了因为使用simple_permissions导致ios不能编译使用的问题\n\nxcode10下如果出现 Multiple commands produce这个错误，参考这篇https://www.jianshu.com/p/8a8444acdca5,亲测可以解决。\n\n\n如果有疑问或者对这个库感兴趣，可以加qq群:854192563一起探讨\n\nA new flutter plugin project.\n\n## Getting Started\n\n### 集成高德地图定位android版本\n\n1、先申请一个apikey\nhttp://lbs.amap.com/api/android-sdk/guide/create-project/get-key\n\n2、修改 `你的项目目录/app/build.gradle`\n在`android/defaultConfig`节点修改`manifestPlaceholders`,新增高德地图key配置\n\n```\nandroid {\n    .... 你的代码\n\n    defaultConfig {\n        .....\n        manifestPlaceholders = [\n                AMAP_KEY : \"aa9f0cf8574400f2af0078392c556e25\", /// 高德地图key\n        ]\n\n    }\n\n    ...你的代码\n\n    dependencies {\n        /// 注意这里需要在主项目增加一条依赖，否则可能发生编译不通过的情况\n        implementation 'com.amap.api:location:latest.integration'\n        ...你的代码\n    }\n\n\n```\n\n\n### 集成高德地图定位ios版本\n\n1、申请一个key\nhttp://lbs.amap.com/api/ios-sdk/guide/create-project/get-key\n\n直接在dart文件中设置key\n\n```\nimport 'package:amap_location/amap_location.dart';\n   \n   void main(){     \n       AMapLocationClient.setApiKey(\"你的key\");\n     runApp(new MyApp());\n   }\n```\n\n2、在info.plist中增加:\n\n注意必须要描述清楚app使用定位的目的，苹果审核的时候要看，\n如果写的不清楚，可能会被苹果拒绝上架，作者有过几次惨痛经历 :(\n\n```\n\u003ckey\u003eNSLocationWhenInUseUsageDescription\u003c/key\u003e\n\u003cstring\u003e要用定位\u003c/string\u003e\n```\n\n\n## 怎么用\n\n先导入dart包\n修改pubspec.yaml，增加依赖：\n\n```\ndependencies:\n  amap_location: \n```\n\n\n在要用的地方导入:\n\n```\nimport 'package:amap_location/amap_location.dart';\n```\n\n先启动一下\n\n```\n await AMapLocationClient.startup(new AMapLocationOption( desiredAccuracy:CLLocationAccuracy.kCLLocationAccuracyHundredMeters  ));\n\n```\n\n直接获取定位:\n\n```\nawait AMapLocationClient.getLocation(true)\n```\n监听定位\n\n```\n\n    AMapLocationClient.onLocationUpate.listen((AMapLocation loc){\n      if(!mounted)return;\n      setState(() {\n         ...\n      });\n    });\n\n    AMapLocationClient.startLocation();\n\n```\n停止监听定位\n```\nAMapLocationClient.stopLocation();\n\n```\n\n不要忘了在app生命周期结束的时候关闭\n```\n@override\n  void dispose() {\n    //注意这里关闭\n    AMapLocationClient.shutdown();\n    super.dispose();\n  }\n```\n\n\n## 注意点：\n\n\u003e在android6以上最好手动获取定位权限\n\n在example中以simple_permissions这个库为例:\n\n```\nvoid _checkPersmission() async{\n    bool hasPermission = await SimplePermissions.checkPermission(Permission.WhenInUseLocation);\n    if(!hasPermission){\n      bool requestPermissionResult = await SimplePermissions.requestPermission(Permission.WhenInUseLocation);\n      if(!requestPermissionResult){\n        Alert.alert(context,title: \"申请定位权限失败\");\n        return;\n      }\n    }\n    AMapLocationClient.onLocationUpate.listen((AMapLocation loc) {\n      if (!mounted) return;\n      setState(() {\n        location = getLocationStr(loc);\n      });\n    });\n\n    AMapLocationClient.startLocation();\n  }\n```\n\n\n\n\n## 特性\n\n* IOS\n* Android\n* 直接获取定位\n* 监听定位改变\n\n\n## 下个版本\n\n* 地理围栏监听\n\n\nThis project is a starting point for a Flutter\n[plug-in package](https://flutter.io/developing-packages/),\na specialized package that includes platform-specific implementation code for\nAndroid and/or iOS.\n\nFor help getting started with Flutter, view our \n[online documentation](https://flutter.io/docs), which offers tutorials, \nsamples, guidance on mobile development, and a full API reference.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbest-flutter%2Fflutter_amap_location","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbest-flutter%2Fflutter_amap_location","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbest-flutter%2Fflutter_amap_location/lists"}