【发布时间】:2019-11-13 11:45:27
【问题描述】:
我用谷歌地图制作了一个应用程序,您可以在其中找到一个地方并在地图上建立一条通往它的路径。我想根据用户键入的内容在其下方显示地点和地址。显示结果后,我需要获取其经纬度以在地图上标记。
我尝试使用flutter_google_places: 0.2.3,但未定义函数(GoogleMapsPlaces、Prediction)。接下来我使用了flutter_google_places_autocomplete: 0.1.3,一切都很好。不幸的是,当我尝试运行该项目时出现错误:
编译器消息: file:///C:/Users/admin/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/flutter_google_places_autocomplete-0.1.3/lib/src/flutter_google_places_autocomplete.dart:337:35: 错误:位置参数太多:允许 0 个,但找到了 1 个。尝试 删除额外的位置参数。 _places = new GoogleMapsPlaces(widget.apiKey); ^ file:///C:/Users/admin/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/google_maps_webservice-0.0.14/lib/src/places.dart:22:3: 上下文:找到了这个候选人,但参数不匹配。
GoogleMapsPlaces({ ^ 编译器失败 C:\Users\admin\AndroidStudioProjects\advertise_me\lib\main.dartFAILURE:构建失败并出现异常。
其中:脚本 'C:\Users\admin\flutter\packages\flutter_tools\gradle\flutter.gradle' 行:647
出了什么问题:任务 ':app:compileflutterBuildDebugandroid-arm64' 执行失败。
Process 'command 'C:\Users\admin\flutter\bin\flutter.bat'' 以非零退出值 1 结束
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。
通过https://help.gradle.org获得更多帮助
BUILD FAILED in 9s Finished with error: Gradle task assembleDebug 退出代码 1 失败
我的 pubspes.yaml:
依赖关系:颤动: sdk:颤动
cupertino_icons: ^0.1.2 url_launcher: ^4.2.0+1
google_maps_flutter:bottom_sheet_stateful:^0.1.1
flutter_google_places_autocomplete:0.1.3 地理编码器:0.1.2
google_maps_webservice:0.0.14
我的代码:
import 'package:flutter/material.dart';
import 'package:advertise_me/login_screen.dart';
import 'dart:async';
import 'package:google_maps_webservice/geocoding.dart';
//import 'package:flutter_google_places/flutter_google_places.dart';
import 'package:flutter_google_places_autocomplete/flutter_google_places_autocomplete.dart';
import 'package:geocoder/geocoder.dart';
void main() => runApp(MyApp());
const kGoogleApiKey = "My key";
GoogleMapsPlaces _places = GoogleMapsPlaces(apiKey: kGoogleApiKey);
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: demo(),
),
);
}
}
class demo extends StatefulWidget {
@override
demoState createState() => new demoState();
}
class demoState extends State<demo> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
alignment: Alignment.center,
child: RaisedButton(
onPressed: () async {
Prediction p = await showGooglePlacesAutocomplete(
context: context, apiKey: kGoogleApiKey);
displayPrediction(p);
},
child: Text('Find address'),
)
)
);
}
Future<Null> displayPrediction(Prediction p) async {
if (p != null) {
PlacesDetailsResponse detail =
await _places.getDetailsByPlaceId(p.placeId);
var placeId = p.placeId;
double lat = detail.result.geometry.location.lat;
double lng = detail.result.geometry.location.lng;
var address = await Geocoder.local.findAddressesFromQuery(p.description);
print(lat);
print(lng);
}
}
}
我该如何解决这个错误? 非常感谢任何帮助。
【问题讨论】:
标签: google-maps flutter dart googleplacesautocomplete