{"id":982,"date":"2024-05-10T20:06:47","date_gmt":"2024-05-10T12:06:47","guid":{"rendered":"https:\/\/gjweb.top\/?p=982"},"modified":"2024-05-10T20:09:07","modified_gmt":"2024-05-10T12:09:07","slug":"flutter%e6%8e%a5%e5%85%a5%e9%ab%98%e5%be%b7%e5%9c%b0%e5%9b%be%e7%a4%ba%e4%be%8b","status":"publish","type":"post","link":"https:\/\/gjweb.top\/?p=982","title":{"rendered":"flutter\u63a5\u5165\u9ad8\u5fb7\u5730\u56fe\u793a\u4f8b"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u524d\u671f\u914d\u7f6e<\/h2>\n\n\n\n<p>\u5728\u63a5\u5165\u5b9a\u4f4d\u7684\u57fa\u7840\u4e0a\u6dfb\u52a0\u5982\u4e0b\u914d\u7f6e<\/p>\n\n\n\n<p>\u5728 <code>project\\android\\app\\build.gradle<\/code> \u4e2d\u6dfb\u52a0<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dependencies {<br> &nbsp;  ...<br> &nbsp;  implementation('com.amap.api:3dmap:7.7.0')<br>}<\/pre>\n\n\n\n<p>\u5728 <code>project\\android\\app\\src\\main\\AndroidManifest.xml<\/code> \u4e2d\u6dfb\u52a0\u8c03\u8bd5\u6743\u9650<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;!--\u7528\u4e8e\u8bfb\u53d6\u624b\u673a\u5f53\u524d\u7684\u72b6\u6001--&gt;<br>&lt;uses-permission android:name=\"android.permission.READ_PHONE_STATE\" \/&gt;<br>&lt;!--\u7528\u4e8e\u5199\u5165\u7f13\u5b58\u6570\u636e\u5230\u6269\u5c55\u5b58\u50a8\u5361--&gt;<br>&lt;uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" \/&gt;<br>&lt;!--\u5141\u8bb8\u5199\u8bbe\u5907\u7f13\u5b58\uff0c\u7528\u4e8e\u95ee\u9898\u6392\u67e5--&gt;<br>&lt;uses-permission android:name=\"android.permission.WRITE_SETTINGS\" \/&gt; &nbsp;<br>&lt;!--\u5141\u8bb8\u8bfb\u8bbe\u5907\u7b49\u4fe1\u606f\uff0c\u7528\u4e8e\u95ee\u9898\u6392\u67e5--&gt;<br>&lt;uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" \/&gt; <\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b89\u88c5\u9ad8\u5fb7\u5730\u56fe flutter \u5de5\u5177\u5305<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">amap_flutter_map: ^3.0.0<\/pre>\n\n\n\n<p>\u793a\u4f8b<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import 'package:flutter\/material.dart';<br>import 'package:amap_flutter_map\/amap_flutter_map.dart';<br>import 'package:amap_flutter_base\/amap_flutter_base.dart';<br>\u200b<br>\u200b<br>class MapComponent extends StatefulWidget {<br> \u00a0const MapComponent({super.key});<br>\u200b<br> \u00a0@override<br> \u00a0State&lt;MapComponent> createState() => _MapComponentState();<br>}<br>\u200b<br>class _MapComponentState extends State&lt;MapComponent> {<br> \u00a0static const AMapApiKey amapApiKeys = AMapApiKey(<br> \u00a0 \u00a0androidKey: '\u5b89\u5353\u7684key',<br> \u00a0 \u00a0iosKey: 'ios\u7684key'<br>  );<br> \u00a0void onMapCreated(AMapController controller){<br> \u00a0  (AMapController controller){<br> \u00a0 \u00a0 \u00a0print(\"\u5730\u56fe\u521b\u5efa\u6210\u529f\");<br> \u00a0  };<br>  }<br> \u00a0late AMapController _mapController;<br>\u200b<br> \u00a0void _onMapCreated(AMapController controller) {<br> \u00a0 \u00a0_mapController = controller;<br> \u00a0 \u00a0getApprovalNumber();<br>  }<br> \u00a0\/\/\/ \u83b7\u53d6\u5ba1\u56fe\u53f7<br> \u00a0void getApprovalNumber() async {<br> \u00a0 \u00a0\/\/\u666e\u901a\u5730\u56fe\u5ba1\u56fe\u53f7<br> \u00a0 \u00a0String? mapContentApprovalNumber =<br> \u00a0 \u00a0 \u00a0 \u00a0await _mapController?.getMapContentApprovalNumber();<br> \u00a0 \u00a0\/\/\u536b\u661f\u5730\u56fe\u5ba1\u56fe\u53f7<br> \u00a0 \u00a0String? satelliteImageApprovalNumber =<br> \u00a0 \u00a0 \u00a0 \u00a0await _mapController?.getSatelliteImageApprovalNumber();<br>  }<br> \u00a0<br> \u00a0@override<br> \u00a0Widget build(BuildContext context) {<br> \u00a0 \u00a0\/\/\/\u5728\u521b\u5efa\u5730\u56fe\u65f6\u8bbe\u7f6eapiKey\u5c5e\u6027<br> \u00a0 \u00a0AMapWidget map = AMapWidget(<br> \u00a0 \u00a0 \u00a0\/\/\/\u914d\u7f6eapiKey,\u8bbe\u7f6e\u4e3anull\u6216\u8005\u4e0d\u8bbe\u7f6e\u5219\u4f18\u5148\u4f7f\u7528native\u7aef\u914d\u7f6e\u7684key<br> \u00a0 \u00a0 \u00a0apiKey: amapApiKeys,<br> \u00a0 \u00a0 \u00a0buildingsEnabled:true,\/\/ \u662f\u5426\u663e\u793a3D\u5efa\u7b51\u7269<br> \u00a0 \u00a0 \u00a0compassEnabled:true, \/\/ \u6307\u5357\u9488<br> \u00a0 \u00a0 \u00a0scaleEnabled:true, \/\/ \u6bd4\u4f8b\u5c3a<br> \u00a0 \u00a0 \u00a0trafficEnabled:true, \/\/\u663e\u793a\u8def\u51b5<br> \u00a0 \u00a0 \u00a0labelsEnabled:true, \/\/ \u663e\u793a\u5730\u56fe\u6587\u5b57<br> \u00a0 \u00a0 \u00a0onMapCreated:_onMapCreated, \/\/\u521d\u59cb\u5316\u6210\u529f\u7684\u56de\u8c03<br> \u00a0  );<br> \u00a0 \u00a0return Scaffold(<br> \u00a0 \u00a0 \u00a0appBar: AppBar(title:const Text(\"flutter \u5730\u56fe\u53ef\u89c6\u5316\")),<br> \u00a0 \u00a0 \u00a0body:Container(<br> \u00a0 \u00a0 \u00a0 \u00a0width: MediaQuery.of(context).size.width,<br> \u00a0 \u00a0 \u00a0 \u00a0height: MediaQuery.of(context).size.height,<br> \u00a0 \u00a0 \u00a0 \u00a0child:map<br> \u00a0 \u00a0  )<br> \u00a0  );<br>  }<br>}<\/pre>\n\n\n\n<p><strong>\u865a\u62df\u673a\u5185\u65e0\u6548\u679c\uff0c\u9700\u8981\u771f\u673a\u67e5\u770b\u793a\u4f8b<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/gjweb.top\/wp-content\/uploads\/2024\/05\/bd6f8a5f79b41b8fc87d829de2524944-00_00_00-00_00_30.gif'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"216\" height=\"480\" data-original=\"https:\/\/gjweb.top\/wp-content\/uploads\/2024\/05\/bd6f8a5f79b41b8fc87d829de2524944-00_00_00-00_00_30.gif\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-983\"\/><\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u671f\u914d\u7f6e \u5728\u63a5\u5165\u5b9a\u4f4d\u7684\u57fa\u7840\u4e0a\u6dfb\u52a0\u5982\u4e0b\u914d\u7f6e \u5728 project\\android\\app\\build.gradle [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[],"class_list":["post-982","post","type-post","status-publish","format-standard","hentry","category-flutter"],"_links":{"self":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/982","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=982"}],"version-history":[{"count":2,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/982\/revisions"}],"predecessor-version":[{"id":985,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/982\/revisions\/985"}],"wp:attachment":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=982"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=982"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}