From d08a83557d00708fec38874def54909e05c8aec9 Mon Sep 17 00:00:00 2001 From: kuloud Date: Tue, 11 Mar 2025 21:22:56 +0800 Subject: [PATCH 1/5] feat: update amap sdk version --- CHANGELOG.md | 5 +++++ README.md | 2 +- android/build.gradle | 2 +- example/android/gradle.properties | 4 ---- example/android/gradle/wrapper/gradle-wrapper.properties | 4 ++-- example/android/settings.gradle | 4 ++-- example/ios/Podfile.lock | 2 +- pubspec.yaml | 2 +- 8 files changed, 13 insertions(+), 12 deletions(-) delete mode 100644 example/android/gradle.properties diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d7625b..d3b5897 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 1.0.13 +2025-03-11 +* 升级amap android sdk版本 10.1.200_loc6.4.9_sea9.7.4 | 2025-03-11 +* 升级amap iOS sdk版本 10.1.200 | 2024-12-26 + ## 1.0.12 2024-08-26 * code lint diff --git a/README.md b/README.md index df136b7..c0c1878 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ | | Android | iOS | | ----------- | -------------------------- | -------- | -| **AMapSDK** | 10.0.800_loc6.4.5_sea9.7.2 | 10.0.900 | +| **AMapSDK** | 10.1.200_loc6.4.9_sea9.7.4 | 10.1.200 | | **Support** | SDK 16+ | 12.0+ | 本插件基于 amap_flutter_map 3.0.0 进行二开的原因: diff --git a/android/build.gradle b/android/build.gradle index b905546..77c4e8f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -33,7 +33,7 @@ android { } dependencies { - implementation 'com.amap.api:3dmap-location-search:10.0.800_loc6.4.5_sea9.7.2' + implementation 'com.amap.api:3dmap-location-search:10.1.200_loc6.4.9_sea9.7.4' implementation 'androidx.annotation:annotation:1.8.1' } diff --git a/example/android/gradle.properties b/example/android/gradle.properties deleted file mode 100644 index a3f33e5..0000000 --- a/example/android/gradle.properties +++ /dev/null @@ -1,4 +0,0 @@ -org.gradle.jvmargs=-Xmx1536M -android.useAndroidX=true -android.enableJetifier=true -#android.enableR8=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index cfe88f6..7d1fb88 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Jun 23 08:50:38 CEST 2017 +#Tue Mar 11 20:48:47 CST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip diff --git a/example/android/settings.gradle b/example/android/settings.gradle index e2b6ac0..b8982ca 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.4.2" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false + id "com.android.application" version "8.9.0" apply false + id "org.jetbrains.kotlin.android" version "2.1.10" apply false } include ":app" diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index f1a7b4c..b95ca20 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - AMap3DMap (10.0.900): + - AMap3DMap (10.1.200): - AMapFoundation (>= 1.8.0) - amap_map (1.0.8): - AMap3DMap diff --git a/pubspec.yaml b/pubspec.yaml index ce1ae98..d44e69e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - lints: ^4.0.0 + lints: ^5.1.1 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From c66b8e1ebdd4134ef376d05f7407109c2308959b Mon Sep 17 00:00:00 2001 From: kuloud Date: Wed, 12 Mar 2025 00:01:15 +0800 Subject: [PATCH 2/5] release: 1.0.13 --- .gitignore | 1 + android/build.gradle | 7 ++-- .../flutter/map/AMapFlutterMapPlugin.java | 34 +++++-------------- .../amap/flutter/map/utils/ConvertUtil.java | 18 +++++++--- example/android/app/build.gradle | 7 ++-- .../android/app/src/main/AndroidManifest.xml | 1 + example/android/gradle.properties | 15 ++++++++ lib/amap_map.dart | 2 +- pubspec.yaml | 2 +- 9 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 example/android/gradle.properties diff --git a/.gitignore b/.gitignore index 6700c8e..48ad359 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ build/ **/pubspec.lock .settings/ .project +**.cxx diff --git a/android/build.gradle b/android/build.gradle index 77c4e8f..6a6f8c6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:3.5.4' } } @@ -22,7 +22,8 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { - compileSdkVersion 34 + namespace = "com.amap.flutter.map" + compileSdkVersion 35 defaultConfig { minSdkVersion 16 @@ -34,6 +35,6 @@ android { dependencies { implementation 'com.amap.api:3dmap-location-search:10.1.200_loc6.4.9_sea9.7.4' - implementation 'androidx.annotation:annotation:1.8.1' + implementation 'androidx.annotation:annotation:1.9.1' } diff --git a/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java b/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java index 2633dda..1ce5f5a 100644 --- a/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java +++ b/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java @@ -23,40 +23,17 @@ public class AMapFlutterMapPlugin implements private static final String CLASS_NAME = "AMapFlutterMapPlugin"; private static final String VIEW_TYPE = "com.amap.flutter.map"; private Lifecycle lifecycle; + private FlutterPluginBinding pluginBinding; public AMapFlutterMapPlugin() { } - public static void registerWith(PluginRegistry.Registrar registrar) { - LogUtil.i(CLASS_NAME, "registerWith=====>"); - - final Activity activity = registrar.activity(); - if (activity == null) { - LogUtil.w(CLASS_NAME, "activity is null!!!"); - return; - } - if (activity instanceof LifecycleOwner) { - registrar - .platformViewRegistry() - .registerViewFactory( - VIEW_TYPE, - new AMapPlatformViewFactory( - registrar.messenger(), - () -> ((LifecycleOwner) activity).getLifecycle())); - } else { - registrar - .platformViewRegistry() - .registerViewFactory( - VIEW_TYPE, - new AMapPlatformViewFactory(registrar.messenger(), new ProxyLifecycleProvider(activity))); - } - } - // FlutterPlugin @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { LogUtil.i(CLASS_NAME, "onAttachedToEngine==>"); + this.pluginBinding = binding; binding .getPlatformViewRegistry() .registerViewFactory( @@ -78,6 +55,13 @@ public class AMapFlutterMapPlugin implements public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { LogUtil.i(CLASS_NAME, "onAttachedToActivity==>"); lifecycle = FlutterLifecycleAdapter.getActivityLifecycle(binding); + pluginBinding.getPlatformViewRegistry().registerViewFactory( + VIEW_TYPE, + new AMapPlatformViewFactory( + pluginBinding.getBinaryMessenger(), + () -> lifecycle + ) + ); } @Override diff --git a/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java b/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java index c45afc2..6d5e905 100644 --- a/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java +++ b/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java @@ -30,7 +30,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import io.flutter.view.FlutterMain; +import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.embedding.engine.loader.FlutterLoader; /** * @author whm @@ -44,6 +45,15 @@ public class ConvertUtil { private static final int[] LocationTypeMap = new int[]{MyLocationStyle.LOCATION_TYPE_SHOW, MyLocationStyle.LOCATION_TYPE_FOLLOW, MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE}; public static float density; private static String apiKey; + private static FlutterLoader flutterLoader; // For asset loading + + public static void initialize(Context context) { + flutterLoader = new FlutterLoader(); + if (!flutterLoader.initialized()) { + flutterLoader.startInitialization(context); + flutterLoader.ensureInitializationComplete(context, null); + } + } public static void setPrivacyStatement(Context context, Object object) { if (null == object) { @@ -396,15 +406,15 @@ public class ConvertUtil { case "fromAsset": if (data.size() == 2) { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + flutterLoader.getLookupKeyForAsset(toString(data.get(1)))); } else { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2)))); + flutterLoader.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2)))); } case "fromAssetImage": if (data.size() == 3) { return BitmapDescriptorFactory.fromAsset( - FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + flutterLoader.getLookupKeyForAsset(toString(data.get(1)))); } else { throw new IllegalArgumentException( "'fromAssetImage' Expected exactly 3 arguments, got: " + data.size()); diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 7884623..28746d2 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -26,7 +26,8 @@ if (flutterVersionName == null) { android { - compileSdkVersion 34 + namespace = "com.amap.flutter.amap_map_example" + compileSdkVersion 35 lint { disable 'InvalidPackage' @@ -36,7 +37,7 @@ android { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.amap.flutter.amap_map_example" minSdkVersion flutter.minSdkVersion - targetSdkVersion 33 + targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -69,7 +70,7 @@ android { jniLibs.srcDirs = ['libs'] } } - ndkVersion '25.1.8937393' + ndkVersion '27.0.12077973' } dependencies { } diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index aa7c6f9..8762a6e 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -19,6 +19,7 @@ diff --git a/example/android/gradle.properties b/example/android/gradle.properties new file mode 100644 index 0000000..fd2393c --- /dev/null +++ b/example/android/gradle.properties @@ -0,0 +1,15 @@ +## For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx1024m -XX:MaxPermSize=256m +org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. For more details, visit +# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects +# org.gradle.parallel=true +#Tue Mar 11 22:34:19 CST 2025 +android.enableJetifier=true +android.useAndroidX=true diff --git a/lib/amap_map.dart b/lib/amap_map.dart index d6b74c3..a3f0004 100644 --- a/lib/amap_map.dart +++ b/lib/amap_map.dart @@ -11,7 +11,7 @@ // distributed under the License is distributed on an "AS IS" BASIS, /// 高德地图Flutter插件入口文件 -library amap_map; +library; import 'dart:async'; diff --git a/pubspec.yaml b/pubspec.yaml index d44e69e..83216f9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: amap_map description: Amap SDK Flutter plugin for integrating AMapSDK in iOS and Android applications. -version: 1.0.12 +version: 1.0.13 homepage: https://github.com/kuloud/amap_map issue_tracker: https://github.com/kuloud/amap_map/issues platforms: From c11bc05d0183524a5b088c4c64a42cfa0f9642eb Mon Sep 17 00:00:00 2001 From: kuloud Date: Wed, 12 Mar 2025 00:29:59 +0800 Subject: [PATCH 3/5] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0changelog=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3b5897..b979dec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ 2025-03-11 * 升级amap android sdk版本 10.1.200_loc6.4.9_sea9.7.4 | 2025-03-11 * 升级amap iOS sdk版本 10.1.200 | 2024-12-26 +* 修复问题:android 构建异常,过期接口 io.flutter.view.FlutterMain 替换 +* 修复问题:android 构建异常,过期接口 PluginRegistry.Registrar 替换 + ## 1.0.12 2024-08-26 From 7cd7360eb88caea32ff93c7ada4d47e7bd06ab33 Mon Sep 17 00:00:00 2001 From: kuloud Date: Wed, 12 Mar 2025 10:18:04 +0800 Subject: [PATCH 4/5] doc: update readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c0c1878..9112724 100644 --- a/README.md +++ b/README.md @@ -269,4 +269,6 @@ class AMapController { google 官方说明地址:https://source.android.com/devices/tech/debug/tagged-pointers -2. 原本本插件拓展设计的思路是把一些不常用的特性功能做成可插拔的 extension,昨天(2024/07/28)考虑了下,觉得有点过度设计了,包括轻量版 SDK 的接入适配,于是决定后续实现做些调整,尽量贴合 SDK API 实现功能。 +1. 原本本插件拓展设计的思路是把一些不常用的特性功能做成可插拔的 extension,昨天(2024/07/28)考虑了下,觉得有点过度设计了,包括轻量版 SDK 的接入适配,于是决定后续实现做些调整,尽量贴合 SDK API 实现功能。 + +1. 如果模拟器运行遇到 `com.amap.api.col.3sl.dl$b.createContext(GlesUtility.java:73)` 闪退,可尝试切换模拟器图像加速模式为`Software`以获得更好的兼容性。(#27) From 19c0c3bae68b3e7284d98cd0e489ab7491ee1fcd Mon Sep 17 00:00:00 2001 From: kuloud Date: Wed, 12 Mar 2025 11:03:18 +0800 Subject: [PATCH 5/5] chore: code lint --- CHANGELOG.md | 4 ++ README.md | 16 +++--- analysis_options.yaml | 22 +++++++- .../flutter/map/AMapFlutterMapPlugin.java | 4 -- example/lib/animated_category_item.dart | 3 +- .../pages/interactive/move_camera_demo.dart | 40 +++++++------- example/lib/pages/map/map_all_config.dart | 54 ++++++++++--------- example/lib/pages/map/min_max_zoom.dart | 18 +++---- example/lib/pages/map/multi_map.dart | 4 +- .../pages/overlays/custom_info_window.dart | 34 ++++++------ example/lib/pages/overlays/marker_config.dart | 20 +++---- .../pages/overlays/marker_custom_icon.dart | 8 +-- example/lib/pages/overlays/place_polygon.dart | 16 +++--- .../lib/pages/overlays/place_polyline.dart | 22 ++++---- example/pubspec.yaml | 1 - example/test/amap_tools_test.dart | 20 +++---- lib/src/types/marker.dart | 4 +- lib/src/types/polygon.dart | 4 +- lib/src/types/polyline.dart | 2 +- lib/src/types/ui.dart | 4 +- pubspec.yaml | 4 +- 21 files changed, 164 insertions(+), 140 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b979dec..058d17f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.14 +2025-03-12 +* code lint + ## 1.0.13 2025-03-11 * 升级amap android sdk版本 10.1.200_loc6.4.9_sea9.7.4 | 2025-03-11 diff --git a/README.md b/README.md index 9112724..f1c12d1 100644 --- a/README.md +++ b/README.md @@ -259,16 +259,16 @@ class AMapController { 1. [android] app 的 targetSDKVersion >= 30, 地图页返回闪退 -在里的 AndroidManifest.xml 里的 application 里增加`android:allowNativeHeapPointerTagging="false"` + 在里的 AndroidManifest.xml 里的 application 里增加`android:allowNativeHeapPointerTagging="false"` -```xml - - ... - -``` + ```xml + + ... + + ``` -google 官方说明地址:https://source.android.com/devices/tech/debug/tagged-pointers + google 官方说明地址:https://source.android.com/devices/tech/debug/tagged-pointers 1. 原本本插件拓展设计的思路是把一些不常用的特性功能做成可插拔的 extension,昨天(2024/07/28)考虑了下,觉得有点过度设计了,包括轻量版 SDK 的接入适配,于是决定后续实现做些调整,尽量贴合 SDK API 实现功能。 -1. 如果模拟器运行遇到 `com.amap.api.col.3sl.dl$b.createContext(GlesUtility.java:73)` 闪退,可尝试切换模拟器图像加速模式为`Software`以获得更好的兼容性。(#27) +1. 如果模拟器运行遇到 `com.amap.api.col.3sl.dl$b.createContext(GlesUtility.java:73)` 闪退,可尝试切换模拟器图像加速模式为`Software`以获得更好的兼容性。[Issue #27](https://github.com/kuloud/amap_map/issues/27) diff --git a/analysis_options.yaml b/analysis_options.yaml index ea2c9e9..97772f7 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1 +1,21 @@ -include: package:lints/recommended.yaml \ No newline at end of file +include: package:flutter_lints/flutter.yaml + +analyzer: + exclude: + - "**/*.g.dart" + - "**/*.freezed.dart" + errors: + missing_required_param: error + missing_return: error + invalid_null_aware_operator: error + +linter: + rules: + always_specify_types: true + prefer_final_fields: true + prefer_final_in_for_each: true + prefer_const_constructors: true + prefer_const_declarations: true + avoid_print: false + avoid_empty_else: true + sort_child_properties_last: true \ No newline at end of file diff --git a/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java b/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java index 1ce5f5a..ea73720 100644 --- a/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java +++ b/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java @@ -1,10 +1,7 @@ package com.amap.flutter.map; -import android.app.Activity; - import androidx.annotation.NonNull; import androidx.lifecycle.Lifecycle; -import androidx.lifecycle.LifecycleOwner; import com.amap.flutter.map.utils.LogUtil; @@ -12,7 +9,6 @@ import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.embedding.engine.plugins.activity.ActivityAware; import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.embedding.engine.plugins.lifecycle.FlutterLifecycleAdapter; -import io.flutter.plugin.common.PluginRegistry; /** * AmapFlutterMapPlugin diff --git a/example/lib/animated_category_item.dart b/example/lib/animated_category_item.dart index dad6fef..14a6252 100644 --- a/example/lib/animated_category_item.dart +++ b/example/lib/animated_category_item.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; class AnimatedCategoryItem extends StatelessWidget { AnimatedCategoryItem({ + super.key, required double startDelayFraction, required this.controller, required this.child, @@ -27,7 +28,7 @@ class AnimatedCategoryItem extends StatelessWidget { Widget build(BuildContext context) { return AnimatedBuilder( animation: controller, - builder: (context, child) { + builder: (BuildContext context, Widget? child) { return Padding( padding: EdgeInsets.only(top: topPaddingAnimation.value), child: child, diff --git a/example/lib/pages/interactive/move_camera_demo.dart b/example/lib/pages/interactive/move_camera_demo.dart index 010373f..ced0df3 100644 --- a/example/lib/pages/interactive/move_camera_demo.dart +++ b/example/lib/pages/interactive/move_camera_demo.dart @@ -4,7 +4,7 @@ import 'package:amap_map_example/widgets/amap_gridview.dart'; import 'package:flutter/material.dart'; class MoveCameraDemoPage extends StatefulWidget { - MoveCameraDemoPage({super.key}); + const MoveCameraDemoPage({super.key}); @override State createState() => _BodyState(); @@ -29,7 +29,7 @@ class _BodyState extends State { Widget cameraOptions() { return Container( - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, @@ -45,7 +45,7 @@ class _BodyState extends State { } return ConstrainedBox( - constraints: BoxConstraints.expand(), + constraints: const BoxConstraints.expand(), child: Column( children: [ ConstrainedBox( @@ -54,7 +54,7 @@ class _BodyState extends State { minHeight: MediaQuery.of(context).size.height * 0.7), child: Stack( children: [ - Container( + SizedBox( height: MediaQuery.of(context).size.height * 0.7, width: MediaQuery.of(context).size.width, child: amap, @@ -66,28 +66,28 @@ class _BodyState extends State { mainAxisSize: MainAxisSize.min, children: [ InkResponse( + onTap: _zoomIn, child: Container( - child: Icon( + width: 40, + height: 40, + color: Colors.blue, + child: const Icon( Icons.add, color: Colors.white, ), - width: 40, - height: 40, - color: Colors.blue, ), - onTap: _zoomIn, ), InkResponse( + onTap: _zoomOut, child: Container( - child: Icon( + color: Colors.blue, + width: 40, + height: 40, + child: const Icon( Icons.remove, color: Colors.white, ), - color: Colors.blue, - width: 40, - height: 40, ), - onTap: _zoomOut, ), ], ), @@ -103,14 +103,14 @@ class _BodyState extends State { ? Container( width: MediaQuery.of(context).size.width, color: Colors.grey, - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), alignment: Alignment.centerLeft, child: Text( _currentZoom!, - style: TextStyle(color: Colors.white), + style: const TextStyle(color: Colors.white), ), ) - : SizedBox(), + : const SizedBox(), Container( child: cameraOptions(), ), @@ -141,7 +141,7 @@ class _BodyState extends State { void _changeCameraPosition() { _mapController?.moveCamera( CameraUpdate.newCameraPosition( - CameraPosition( + const CameraPosition( //中心点 target: LatLng(31.230378, 121.473658), //缩放级别 @@ -184,8 +184,8 @@ class _BodyState extends State { _mapController?.moveCamera( CameraUpdate.newLatLngBounds( LatLngBounds( - southwest: LatLng(33.789925, 104.838326), - northeast: LatLng(38.740688, 114.647472)), + southwest: const LatLng(33.789925, 104.838326), + northeast: const LatLng(38.740688, 114.647472)), 15.0), animated: true, ); diff --git a/example/lib/pages/map/map_all_config.dart b/example/lib/pages/map/map_all_config.dart index b8df8bf..5849e7c 100644 --- a/example/lib/pages/map/map_all_config.dart +++ b/example/lib/pages/map/map_all_config.dart @@ -6,13 +6,15 @@ import 'package:flutter/services.dart'; import 'package:x_amap_base/x_amap_base.dart'; class AllMapConfigDemoPage extends StatefulWidget { + const AllMapConfigDemoPage({super.key}); + @override State createState() => _MapUiBodyState(); } class _MapUiBodyState extends State { //默认显示在北京天安门 - static final CameraPosition _kInitialPosition = const CameraPosition( + static const CameraPosition _kInitialPosition = CameraPosition( target: LatLng(39.909187, 116.397451), zoom: 10.0, ); @@ -127,7 +129,7 @@ class _MapUiBodyState extends State { //ui控制 final List uiOptions = [ AMapSwitchButton( - label: Text('显示路况'), + label: const Text('显示路况'), defaultValue: _trafficEnabled, onSwitchChanged: (value) => { setState(() { @@ -136,7 +138,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('显示3D建筑物'), + label: const Text('显示3D建筑物'), defaultValue: _buildingsEnabled, onSwitchChanged: (value) => { setState(() { @@ -145,7 +147,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('显示指南针'), + label: const Text('显示指南针'), defaultValue: _compassEnabled, onSwitchChanged: (value) => { setState(() { @@ -154,7 +156,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('显示地图文字'), + label: const Text('显示地图文字'), defaultValue: _labelsEnabled, onSwitchChanged: (value) => { setState(() { @@ -163,7 +165,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('显示比例尺'), + label: const Text('显示比例尺'), defaultValue: _scaleEnabled, onSwitchChanged: (value) => { setState(() { @@ -172,7 +174,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('点击Poi'), + label: const Text('点击Poi'), defaultValue: _touchPoiEnabled, onSwitchChanged: (value) => { setState(() { @@ -181,7 +183,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('自定义地图'), + label: const Text('自定义地图'), defaultValue: _customStyleOptions.enabled, onSwitchChanged: (value) => { setState(() { @@ -194,7 +196,7 @@ class _MapUiBodyState extends State { //手势开关 final List gesturesOptions = [ AMapSwitchButton( - label: Text('旋转'), + label: const Text('旋转'), defaultValue: _rotateGesturesEnabled, onSwitchChanged: (value) => { setState(() { @@ -203,7 +205,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('滑动'), + label: const Text('滑动'), defaultValue: _scrollGesturesEnabled, onSwitchChanged: (value) => { setState(() { @@ -212,7 +214,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('倾斜'), + label: const Text('倾斜'), defaultValue: _tiltGesturesEnabled, onSwitchChanged: (value) => { setState(() { @@ -221,7 +223,7 @@ class _MapUiBodyState extends State { }, ), AMapSwitchButton( - label: Text('缩放'), + label: const Text('缩放'), defaultValue: _zoomGesturesEnabled, onSwitchChanged: (value) => { setState(() { @@ -233,14 +235,14 @@ class _MapUiBodyState extends State { Widget mapTypeOptions() { return Container( - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - Text('地图样式', style: TextStyle(fontWeight: FontWeight.w600)), + const Text('地图样式', style: TextStyle(fontWeight: FontWeight.w600)), Container( - padding: EdgeInsets.only(left: 10), + padding: const EdgeInsets.only(left: 10), child: createGridView(mapTypeList), ), ], @@ -250,15 +252,15 @@ class _MapUiBodyState extends State { Widget myLocationStyleContainer() { return Container( - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), child: Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: [ // Text('定位小蓝点', style: TextStyle(fontWeight: FontWeight.w600)), AMapSwitchButton( - label: - Text('定位小蓝点', style: TextStyle(fontWeight: FontWeight.w600)), + label: const Text('定位小蓝点', + style: TextStyle(fontWeight: FontWeight.w600)), defaultValue: _myLocationStyleOptions.enabled, onSwitchChanged: (value) => { setState(() { @@ -273,14 +275,14 @@ class _MapUiBodyState extends State { Widget uiOptionsWidget() { return Container( - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - Text('UI操作', style: TextStyle(fontWeight: FontWeight.w600)), + const Text('UI操作', style: TextStyle(fontWeight: FontWeight.w600)), Container( - padding: EdgeInsets.only(left: 10), + padding: const EdgeInsets.only(left: 10), child: createGridView(uiOptions), ), ], @@ -290,14 +292,14 @@ class _MapUiBodyState extends State { Widget gesturesOptiosWeidget() { return Container( - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - Text('手势控制', style: TextStyle(fontWeight: FontWeight.w600)), + const Text('手势控制', style: TextStyle(fontWeight: FontWeight.w600)), Container( - padding: EdgeInsets.only(left: 10), + padding: const EdgeInsets.only(left: 10), child: createGridView(gesturesOptions), ), ], @@ -364,7 +366,7 @@ class _MapUiBodyState extends State { Widget createGridView(List widgets) { return GridView.count( primary: false, - physics: NeverScrollableScrollPhysics(), + physics: const NeverScrollableScrollPhysics(), //水平子Widget之间间距 crossAxisSpacing: 1.0, //垂直子Widget之间间距 @@ -379,7 +381,7 @@ class _MapUiBodyState extends State { //移动地图中心点到首开广场 void _moveCameraToShoukai() { - _controller.moveCamera(CameraUpdate.newCameraPosition(CameraPosition( + _controller.moveCamera(CameraUpdate.newCameraPosition(const CameraPosition( target: LatLng(39.993306, 116.473004), zoom: 18, tilt: 30, diff --git a/example/lib/pages/map/min_max_zoom.dart b/example/lib/pages/map/min_max_zoom.dart index 2669711..969b1db 100644 --- a/example/lib/pages/map/min_max_zoom.dart +++ b/example/lib/pages/map/min_max_zoom.dart @@ -2,7 +2,7 @@ import 'package:amap_map/amap_map.dart'; import 'package:flutter/material.dart'; class MinMaxZoomDemoPage extends StatefulWidget { - MinMaxZoomDemoPage({super.key}); + const MinMaxZoomDemoPage({super.key}); @override State createState() => _BodyState(); @@ -22,7 +22,7 @@ class _BodyState extends State { minMaxZoomPreference: MinMaxZoomPreference(_minZoom, _maxZoom), ); return ConstrainedBox( - constraints: BoxConstraints.expand(), + constraints: const BoxConstraints.expand(), child: Stack( children: [ Container( @@ -40,24 +40,24 @@ class _BodyState extends State { Container( width: MediaQuery.of(context).size.width, color: Colors.grey, - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), alignment: Alignment.centerLeft, child: Text( '当前限制的最小最大缩放级别是:[$_minZoom, $_maxZoom]', - style: TextStyle(color: Colors.blue), + style: const TextStyle(color: Colors.blue), ), ), _currentZoom != null ? Container( width: MediaQuery.of(context).size.width, color: Colors.grey, - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), alignment: Alignment.centerLeft, child: Text( _currentZoom!, - style: TextStyle(color: Colors.white), + style: const TextStyle(color: Colors.white), )) - : SizedBox(), + : const SizedBox(), ], ), ), @@ -69,7 +69,7 @@ class _BodyState extends State { children: [ InkResponse( child: Container( - child: Icon( + child: const Icon( Icons.add, color: Colors.white, ), @@ -81,7 +81,7 @@ class _BodyState extends State { ), InkResponse( child: Container( - child: Icon( + child: const Icon( Icons.remove, color: Colors.white, ), diff --git a/example/lib/pages/map/multi_map.dart b/example/lib/pages/map/multi_map.dart index 636e8ee..2ce55fb 100644 --- a/example/lib/pages/map/multi_map.dart +++ b/example/lib/pages/map/multi_map.dart @@ -3,7 +3,7 @@ import 'package:x_amap_base/x_amap_base.dart'; import 'package:flutter/material.dart'; class MultiMapDemoPage extends StatefulWidget { - const MultiMapDemoPage(); + const MultiMapDemoPage({super.key}); @override State createState() => _MultiMapDemoState(); } @@ -14,7 +14,7 @@ class _MultiMapDemoState extends State { return Container( height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, - child: Column( + child: const Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ diff --git a/example/lib/pages/overlays/custom_info_window.dart b/example/lib/pages/overlays/custom_info_window.dart index 0299bf8..b7fa65d 100644 --- a/example/lib/pages/overlays/custom_info_window.dart +++ b/example/lib/pages/overlays/custom_info_window.dart @@ -39,8 +39,8 @@ class _State extends State { position: markPostion, icon: _markerIcon!, infoWindow: InfoWindow(title: '第 $markerCount 个Marker'), - onTap: (markerId) => _onMarkerTapped(markerId), - onDragEnd: (markerId, endPosition) => + onTap: (String markerId) => _onMarkerTapped(markerId), + onDragEnd: (String markerId, LatLng endPosition) => _onMarkerDragEnd(markerId, endPosition), ); @@ -196,7 +196,7 @@ class _State extends State { child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ + children: [ Container( height: MediaQuery.of(context).size.height * 0.6, width: MediaQuery.of(context).size.width, @@ -212,64 +212,64 @@ class _State extends State { Column( children: [ TextButton( - child: const Text('添加'), onPressed: _add, + child: const Text('添加'), ), TextButton( - child: const Text('移除'), onPressed: (selectedMarkerId == null) ? null : _remove, + child: const Text('移除'), ), TextButton( - child: const Text('更新InfoWidow'), onPressed: (selectedMarkerId == null) ? null : _changeInfo, + child: const Text('更新InfoWidow'), ), TextButton( - child: const Text('修改锚点'), onPressed: (selectedMarkerId == null) ? null : _changeAnchor, + child: const Text('修改锚点'), ), TextButton( - child: const Text('修改透明度'), onPressed: (selectedMarkerId == null) ? null : _changeAlpha, + child: const Text('修改透明度'), ), ], ), Column( children: [ TextButton( - child: const Text('全部移除'), onPressed: _markers.isNotEmpty ? _removeAll : null, + child: const Text('全部移除'), ), AMapSwitchButton( - label: Text('允许拖动'), + label: const Text('允许拖动'), onSwitchChanged: (selectedMarkerId == null) ? null : _toggleDraggable, defaultValue: false, ), AMapSwitchButton( - label: Text('显示'), + label: const Text('显示'), onSwitchChanged: (selectedMarkerId == null) ? null : _toggleVisible, defaultValue: true, ), TextButton( - child: const Text('修改坐标'), onPressed: (selectedMarkerId == null) ? null : _changePosition, + child: const Text('修改坐标'), ), TextButton( - child: const Text('修改旋转角度'), onPressed: (selectedMarkerId == null) ? null : _changeRotation, + child: const Text('修改旋转角度'), ), ], ), @@ -300,8 +300,8 @@ class CustomInfoWindowAdapter extends BaseInfoWindowAdapter { decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(8.0), - boxShadow: [ - BoxShadow( + boxShadow: [ + const BoxShadow( color: Colors.black26, blurRadius: 4.0, spreadRadius: 2.0, @@ -310,10 +310,10 @@ class CustomInfoWindowAdapter extends BaseInfoWindowAdapter { ), child: Column( mainAxisSize: MainAxisSize.min, - children: [ + children: [ Text( marker.infoWindow.title ?? 'No Title', - style: TextStyle(fontWeight: FontWeight.bold), + style: const TextStyle(fontWeight: FontWeight.bold), ), Text( marker.infoWindow.snippet ?? 'No Snippet', diff --git a/example/lib/pages/overlays/marker_config.dart b/example/lib/pages/overlays/marker_config.dart index c516de1..3764363 100644 --- a/example/lib/pages/overlays/marker_config.dart +++ b/example/lib/pages/overlays/marker_config.dart @@ -266,64 +266,64 @@ class _State extends State { Column( children: [ TextButton( - child: const Text('添加'), onPressed: _add, + child: const Text('添加'), ), TextButton( - child: const Text('移除'), onPressed: (selectedMarkerId == null) ? null : _remove, + child: const Text('移除'), ), TextButton( - child: const Text('更新InfoWidow'), onPressed: (selectedMarkerId == null) ? null : _changeInfo, + child: const Text('更新InfoWidow'), ), TextButton( - child: const Text('修改锚点'), onPressed: (selectedMarkerId == null) ? null : _changeAnchor, + child: const Text('修改锚点'), ), TextButton( - child: const Text('修改透明度'), onPressed: (selectedMarkerId == null) ? null : _changeAlpha, + child: const Text('修改透明度'), ), ], ), Column( children: [ TextButton( - child: const Text('全部移除'), onPressed: _markers.isNotEmpty ? _removeAll : null, + child: const Text('全部移除'), ), AMapSwitchButton( - label: Text('允许拖动'), + label: const Text('允许拖动'), onSwitchChanged: (selectedMarkerId == null) ? null : _toggleDraggable, defaultValue: false, ), AMapSwitchButton( - label: Text('显示'), + label: const Text('显示'), onSwitchChanged: (selectedMarkerId == null) ? null : _toggleVisible, defaultValue: true, ), TextButton( - child: const Text('修改坐标'), onPressed: (selectedMarkerId == null) ? null : _changePosition, + child: const Text('修改坐标'), ), TextButton( - child: const Text('修改旋转角度'), onPressed: (selectedMarkerId == null) ? null : _changeRotation, + child: const Text('修改旋转角度'), ), ], ), diff --git a/example/lib/pages/overlays/marker_custom_icon.dart b/example/lib/pages/overlays/marker_custom_icon.dart index ba1a2a6..4df831f 100644 --- a/example/lib/pages/overlays/marker_custom_icon.dart +++ b/example/lib/pages/overlays/marker_custom_icon.dart @@ -3,17 +3,19 @@ import 'package:x_amap_base/x_amap_base.dart'; import 'package:flutter/material.dart'; class MarkerCustomIconPage extends StatefulWidget { + const MarkerCustomIconPage({super.key}); + @override State createState() => _BodyState(); } class _BodyState extends State { - static final LatLng markerPosition = const LatLng(39.909187, 116.397451); + static const LatLng markerPosition = LatLng(39.909187, 116.397451); final Map _initMarkerMap = {}; String? _currentMarkerId; bool _hasInitMarker = false; - static final String _startIconPath = 'assets/start.png'; - static final String _endIconPath = 'assets/end.png'; + static const String _startIconPath = 'assets/start.png'; + static const String _endIconPath = 'assets/end.png'; String _iconPath = _startIconPath; void _initMarker(BuildContext context) async { if (_hasInitMarker) { diff --git a/example/lib/pages/overlays/place_polygon.dart b/example/lib/pages/overlays/place_polygon.dart index 51741e0..05cd628 100644 --- a/example/lib/pages/overlays/place_polygon.dart +++ b/example/lib/pages/overlays/place_polygon.dart @@ -110,7 +110,7 @@ class _State extends State { List currentPoints = polygon.points; List newPoints = []; newPoints.addAll(currentPoints); - newPoints.add(LatLng(39.828809, 116.360364)); + newPoints.add(const LatLng(39.828809, 116.360364)); setState(() { _polygons[selectedPolygonId!] = polygon.copyWith( @@ -133,7 +133,7 @@ class _State extends State { Widget build(BuildContext context) { final AMapWidget map = AMapWidget( initialCameraPosition: - CameraPosition(target: LatLng(39.828809, 116.360364), zoom: 13), + const CameraPosition(target: LatLng(39.828809, 116.360364), zoom: 13), onMapCreated: _onMapCreated, polygons: Set.of(_polygons.values), ); @@ -159,42 +159,42 @@ class _State extends State { Column( children: [ TextButton( - child: const Text('添加'), onPressed: _add, + child: const Text('添加'), ), TextButton( - child: const Text('删除'), onPressed: (selectedPolygonId == null) ? null : _remove, + child: const Text('删除'), ), TextButton( - child: const Text('修改边框宽度'), onPressed: (selectedPolygonId == null) ? null : _changeStrokeWidth, + child: const Text('修改边框宽度'), ), ], ), Column( children: [ TextButton( - child: const Text('修改边框和填充色'), onPressed: (selectedPolygonId == null) ? null : _changeColors, + child: const Text('修改边框和填充色'), ), AMapSwitchButton( - label: Text('显示'), + label: const Text('显示'), onSwitchChanged: (selectedPolygonId == null) ? null : _toggleVisible, defaultValue: true, ), TextButton( - child: const Text('修改坐标'), onPressed: (selectedPolygonId == null) ? null : _changePoints, + child: const Text('修改坐标'), ), ], ), diff --git a/example/lib/pages/overlays/place_polyline.dart b/example/lib/pages/overlays/place_polyline.dart index 9e79c71..7a28ec1 100644 --- a/example/lib/pages/overlays/place_polyline.dart +++ b/example/lib/pages/overlays/place_polyline.dart @@ -171,7 +171,7 @@ class _State extends State { List currentPoints = polyline.points; List newPoints = []; newPoints.addAll(currentPoints); - newPoints.add(LatLng(39.835347, 116.34575)); + newPoints.add(const LatLng(39.835347, 116.34575)); setState(() { _polylines[selectedPolylineId!] = polyline.copyWith( @@ -218,28 +218,28 @@ class _State extends State { Column( children: [ TextButton( - child: const Text('添加'), onPressed: _add, + child: const Text('添加'), ), TextButton( - child: const Text('删除'), onPressed: (selectedPolylineId == null) ? null : _remove, + child: const Text('删除'), ), TextButton( - child: const Text('修改线宽'), onPressed: (selectedPolylineId == null) ? null : _changeWidth, + child: const Text('修改线宽'), ), TextButton( - child: const Text('修改透明度'), onPressed: (selectedPolylineId == null) ? null : _changeAlpha, + child: const Text('修改透明度'), ), AMapSwitchButton( - label: Text('显示'), + label: const Text('显示'), onSwitchChanged: (selectedPolylineId == null) ? null : _toggleVisible, @@ -250,34 +250,34 @@ class _State extends State { Column( children: [ TextButton( - child: const Text('修改颜色'), onPressed: (selectedPolylineId == null) ? null : _changeColor, + child: const Text('修改颜色'), ), TextButton( - child: const Text('修改线头样式'), onPressed: (selectedPolylineId == null) ? null : _changeCapType, + child: const Text('修改线头样式'), ), TextButton( - child: const Text('修改连接样式'), onPressed: (selectedPolylineId == null) ? null : _changeJointType, + child: const Text('修改连接样式'), ), TextButton( - child: const Text('修改虚线类型'), onPressed: (selectedPolylineId == null) ? null : _changeDashLineType, + child: const Text('修改虚线类型'), ), TextButton( - child: const Text('修改坐标'), onPressed: (selectedPolylineId == null) ? null : _changePoints, + child: const Text('修改坐标'), ), ], ), diff --git a/example/pubspec.yaml b/example/pubspec.yaml index c3d971a..3bfc05f 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -13,7 +13,6 @@ dependencies: sdk: flutter permission_handler: ^11.3.1 - flutter_plugin_android_lifecycle: ^2.0.21 amap_map: path: ../ diff --git a/example/test/amap_tools_test.dart b/example/test/amap_tools_test.dart index be2ab71..ab4f08d 100644 --- a/example/test/amap_tools_test.dart +++ b/example/test/amap_tools_test.dart @@ -3,36 +3,36 @@ import 'package:x_amap_base/x_amap_base.dart'; void main() { test('Distance between two different point', () { - LatLng p1 = LatLng(1, 1); - LatLng p2 = LatLng(2, 2); + LatLng p1 = const LatLng(1, 1); + LatLng p2 = const LatLng(2, 2); double distance = AMapTools.distanceBetween(p1, p2); expect(distance, 157401.56104583555); }); test('Distance between two same point', () { - LatLng p1 = LatLng(1, 1); - LatLng p2 = LatLng(1, 1); + LatLng p1 = const LatLng(1, 1); + LatLng p2 = const LatLng(1, 1); double distance = AMapTools.distanceBetween(p1, p2); expect(distance, 0); }); test('Distance between two different point with equal lat', () { - LatLng p1 = LatLng(1, 1); - LatLng p2 = LatLng(1, 2); + LatLng p1 = const LatLng(1, 1); + LatLng p2 = const LatLng(1, 2); double distance = AMapTools.distanceBetween(p1, p2); expect(distance, 111302.53586533663); }); test('Distance between two different point with equal lng', () { - LatLng p1 = LatLng(1, 1); - LatLng p2 = LatLng(2, 1); + LatLng p1 = const LatLng(1, 1); + LatLng p2 = const LatLng(2, 1); double distance = AMapTools.distanceBetween(p1, p2); expect(distance, 111319.49079327357); }); test('Distance between two different point with close point', () { - LatLng p1 = LatLng(39.938212, 116.455139); - LatLng p2 = LatLng(39.987656, 116.265605); + LatLng p1 = const LatLng(39.938212, 116.455139); + LatLng p2 = const LatLng(39.987656, 116.265605); double distance = AMapTools.distanceBetween(p1, p2); expect(distance, 17082.425889709597); }); diff --git a/lib/src/types/marker.dart b/lib/src/types/marker.dart index 0190155..ffa1f5e 100644 --- a/lib/src/types/marker.dart +++ b/lib/src/types/marker.dart @@ -96,12 +96,12 @@ class Marker extends BaseOverlay { (alpha != null ? (alpha < 0 ? 0 : (alpha > 1 ? 1 : alpha)) : alpha), // ignore: unnecessary_null_comparison anchor = (anchor == null - ? Offset(0.5, 1.0) + ? const Offset(0.5, 1.0) : ((anchor.dx < 0 || anchor.dx > 1 || anchor.dy < 0 || anchor.dy > 1) - ? Offset(0.5, 1.0) + ? const Offset(0.5, 1.0) : anchor)), super(); diff --git a/lib/src/types/polygon.dart b/lib/src/types/polygon.dart index cf6bb13..65bf88f 100644 --- a/lib/src/types/polygon.dart +++ b/lib/src/types/polygon.dart @@ -77,8 +77,8 @@ class Polygon extends BaseOverlay { addIfPresent('id', id); json['points'] = _pointsToJson(); addIfPresent('strokeWidth', strokeWidth); - addIfPresent('strokeColor', strokeColor.value); - addIfPresent('fillColor', fillColor.value); + addIfPresent('strokeColor', strokeColor.toARGB32()); + addIfPresent('fillColor', fillColor.toARGB32()); addIfPresent('visible', visible); addIfPresent('joinType', joinType.index); return json; diff --git a/lib/src/types/polyline.dart b/lib/src/types/polyline.dart index 497b836..89abb92 100644 --- a/lib/src/types/polyline.dart +++ b/lib/src/types/polyline.dart @@ -155,7 +155,7 @@ class Polyline extends BaseOverlay { addIfPresent('capType', capType.index); addIfPresent('joinType', joinType.index); addIfPresent('customTexture', customTexture?.toMap()); - addIfPresent('color', color.value); + addIfPresent('color', color.toARGB32()); return json; } diff --git a/lib/src/types/ui.dart b/lib/src/types/ui.dart index 48baf40..128da80 100644 --- a/lib/src/types/ui.dart +++ b/lib/src/types/ui.dart @@ -167,8 +167,8 @@ class MyLocationStyleOptions { } addIfPresent('enabled', enabled); - addIfPresent('circleFillColor', circleFillColor?.value); - addIfPresent('circleStrokeColor', circleStrokeColor?.value); + addIfPresent('circleFillColor', circleFillColor?.toARGB32()); + addIfPresent('circleStrokeColor', circleStrokeColor?.toARGB32()); addIfPresent('circleStrokeWidth', circleStrokeWidth); addIfPresent('icon', icon?.toMap()); return json; diff --git a/pubspec.yaml b/pubspec.yaml index 83216f9..d9a4482 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: amap_map description: Amap SDK Flutter plugin for integrating AMapSDK in iOS and Android applications. -version: 1.0.13 +version: 1.0.14 homepage: https://github.com/kuloud/amap_map issue_tracker: https://github.com/kuloud/amap_map/issues platforms: @@ -26,9 +26,9 @@ dependencies: x_common: ^1.0.4 dev_dependencies: + flutter_lints: ^5.0.0 flutter_test: sdk: flutter - lints: ^5.1.1 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec