reason

替换google map

......@@ -3,7 +3,6 @@
package="pub.yiyan.parlando.Parlando">
<application
android:name=".MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="Parlando"
android:requestLegacyExternalStorage="true"
......@@ -54,11 +53,8 @@
android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="038a8a2d7280a244b5c51d517023ede3" />
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="WSVybPeSZqwIGLYXjN44mighexoFX6Dn" />
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyBwkClNvPHwcuieSu7NJEZVCu6JDM-tkFQ" />
</application>
<queries>
......@@ -76,6 +72,8 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission
android:name="android.permission.QUERY_ALL_PACKAGES"
tools:node="remove" />
......
package pub.yiyan.parlando.Parlando
import com.baidu.mapapi.base.BmfMapApplication
class MyApplication : BmfMapApplication() {
override fun onCreate() {
super.onCreate();
}
}
\ No newline at end of file
......@@ -25,8 +25,6 @@ import 'util/device_utils.dart';
import 'util/handle_error_utils.dart';
import 'util/log_utils.dart';
import 'util/theme_utils.dart';
import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart'
show BMFMapSDK, BMF_COORD_TYPE;
import 'package:permission_handler/permission_handler.dart';
///
......@@ -88,9 +86,6 @@ Future<void> main() async {
/// 动态申请定位权限
requestPermission();
/// 设置用户是否同意SDK隐私协议
/// since 3.1.0 开发者必须设置
BMFMapSDK.setAgreePrivacy(true);
}
class MyApp extends StatelessWidget {
......
import 'dart:convert';
import 'package:Parlando/map/poi_search_model.dart';
import 'package:flutter/services.dart';
import 'amap_2d_view.dart';
import 'interface/amap_2d_controller.dart';
class AMap2DMobileController extends AMap2DController {
AMap2DMobileController(
int id,
this._widget,
) : _channel = MethodChannel('plugins.weilu/flutter_2d_amap_$id') {
_channel.setMethodCallHandler(_handleMethod);
}
final MethodChannel _channel;
final AMap2DView _widget;
Future<dynamic> _handleMethod(MethodCall call) async {
final String method = call.method;
switch (method) {
case 'poiSearchResult':
{
if (_widget.onPoiSearched != null) {
final Map args = call.arguments as Map<dynamic, dynamic>;
final List<PoiSearch> list = [];
for (var value
in (json.decode(args['poiSearchResult'] as String) as List)) {
list.add(PoiSearch.fromJsonMap(value as Map<String, dynamic>));
}
_widget.onPoiSearched!(list);
}
return Future<dynamic>.value('');
}
}
return Future<dynamic>.value('');
}
/// city:cityName(中文或中文全拼)、cityCode均可
@override
Future<void> search(String keyWord, {String city = ''}) async {
return _channel.invokeMethod('search', <String, dynamic>{
'keyWord': keyWord,
'city': city,
});
}
@override
Future<void> move(String lat, String lon) async {
return _channel
.invokeMethod('move', <String, dynamic>{'lat': lat, 'lon': lon});
}
@override
Future<void> location() async {
return _channel.invokeMethod('location');
}
}
import 'package:flutter/material.dart';
import 'amap_2d_view_state.dart';
import 'interface/amap_2d_controller.dart';
import 'poi_search_model.dart';
typedef AMap2DViewCreatedCallback = void Function(AMap2DController controller);
class AMap2DView extends StatefulWidget {
const AMap2DView({
Key? key,
this.isPoiSearch = true,
this.onPoiSearched,
this.onAMap2DViewCreated,
}) : super(key: key);
final bool isPoiSearch;
final AMap2DViewCreatedCallback? onAMap2DViewCreated;
final Function(List<PoiSearch>)? onPoiSearched;
@override
AMap2DViewState createState() => AMap2DViewState();
}
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'amap_2d_view.dart';
class AMap2DViewState extends State<AMap2DView> {
@override
Widget build(BuildContext context) {
return Text(
'$defaultTargetPlatform is not yet supported by the flutter_2d_amap plugin');
}
}
import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart'
show BMFMapSDK, BMF_COORD_TYPE;
class Flutter2dAMap {
static String _webKey = '';
static String get webKey => _webKey;
static Future<bool?> setApiKey(
{String iOSKey = '', String webKey = ''}) async {
if (kIsWeb) {
_webKey = webKey;
} else {
// 百度地图sdk初始化鉴权
if (Platform.isIOS) {
BMFMapSDK.setApiKeyAndCoordType(
'rMsgMvYERM9zHDDdaipk34oBx7yoaGQh', BMF_COORD_TYPE.BD09LL);
} else if (Platform.isAndroid) {
// Android 目前不支持接口设置Apikey,
// 请在主工程的Manifest文件里设置,详细配置方法请参考官网(https://lbsyun.baidu.com/)demo
BMFMapSDK.setCoordType(BMF_COORD_TYPE.BD09LL);
}
}
return Future.value(true);
}
/// 更新同意隐私状态,需要在初始化地图之前完成
static Future<void> updatePrivacy(bool isAgree) async {
if (kIsWeb) {
} else {
if (Platform.isIOS || Platform.isAndroid) {
BMFMapSDK.setAgreePrivacy(true);
}
}
}
}
abstract class AMap2DController {
/// city:cityName(中文或中文全拼)、cityCode均可
Future<void> search(String keyWord, {String city = ''});
Future<void> move(String lat, String lon);
Future<void> location();
}
class PoiSearch {
PoiSearch({
this.cityCode,
this.cityName,
this.provinceName,
this.title,
this.adName,
this.provinceCode,
this.latitude,
this.longitude,
});
PoiSearch.fromJsonMap(Map<String, dynamic> map)
: cityCode = map['cityCode'] as String?,
cityName = map['cityName'] as String?,
provinceName = map['provinceName'] as String?,
title = map['title'] as String?,
adName = map['adName'] as String?,
provinceCode = map['provinceCode'] as String?,
latitude = map['latitude'] as String?,
longitude = map['longitude'] as String?;
String? cityCode;
String? cityName;
String? provinceName;
String? title;
String? adName;
String? provinceCode;
String? latitude;
String? longitude;
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['cityCode'] = cityCode;
data['cityName'] = cityName;
data['provinceName'] = provinceName;
data['title'] = title;
data['adName'] = adName;
data['provinceCode'] = provinceCode;
data['latitude'] = latitude;
data['longitude'] = longitude;
return data;
}
}
......@@ -13,7 +13,6 @@ import 'package:Parlando/routers/routers.dart';
import 'package:Parlando/widgets/my_app_bar.dart';
import 'package:Parlando/extension/int_extension.dart';
import 'package:flutter_baidu_mapapi_search/flutter_baidu_mapapi_search.dart';
import 'package:getwidget/getwidget.dart';
import 'package:path_provider/path_provider.dart';
......@@ -110,12 +109,12 @@ class PoemPublishState extends State<PoemPublish> {
NavigatorUtils.pushResult(
context, PoemRouter.addressSelectPage, (result) {
setState(() {
final BMFSuggestionInfo model =
result as BMFSuggestionInfo;
_longitude = model.location!.longitude.toString();
_latitude = model.location!.latitude.toString();
_address =
'${model.city!} ${model.district!} ${model.address!}';
// final BMFSuggestionInfo model =
// result as BMFSuggestionInfo;
// _longitude = model.location!.longitude.toString();
// _latitude = model.location!.latitude.toString();
// _address =
// '${model.city!} ${model.district!} ${model.address!}';
});
});
},
......
This diff is collapsed. Click to expand it.
......@@ -391,34 +391,6 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_baidu_mapapi_base:
dependency: transitive
description:
name: flutter_baidu_mapapi_base
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.0"
flutter_baidu_mapapi_map:
dependency: "direct main"
description:
name: flutter_baidu_mapapi_map
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.1"
flutter_baidu_mapapi_search:
dependency: "direct main"
description:
name: flutter_baidu_mapapi_search
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.0"
flutter_baidu_mapapi_utils:
dependency: "direct main"
description:
name: flutter_baidu_mapapi_utils
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.0"
flutter_blurhash:
dependency: transitive
description:
......@@ -426,13 +398,6 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.7.0"
flutter_bmflocation:
dependency: "direct main"
description:
name: flutter_bmflocation
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.0"
flutter_cache_manager:
dependency: transitive
description:
......@@ -612,6 +577,20 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.1"
google_maps_flutter:
dependency: "direct main"
description:
name: google_maps_flutter
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.10"
google_maps_flutter_platform_interface:
dependency: transitive
description:
name: google_maps_flutter_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.2"
graphs:
dependency: transitive
description:
......@@ -785,6 +764,27 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
location:
dependency: "direct main"
description:
name: location
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.4.0"
location_platform_interface:
dependency: transitive
description:
name: location_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.0"
location_web:
dependency: transitive
description:
name: location_web
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.1"
logger:
dependency: transitive
description:
......
......@@ -124,10 +124,8 @@ dependencies:
google_fonts: ^3.0.1
wakelock: ^0.6.1+2
flutter_baidu_mapapi_map: ^3.2.1
flutter_baidu_mapapi_utils: ^3.2.0
flutter_baidu_mapapi_search: ^3.2.0
flutter_bmflocation: ^3.2.0
location: ^4.4.0
google_maps_flutter: ^2.1.10
dependency_overrides:
decimal: 1.5.0
......