我正在尝试搜索地址,然后尝试通过Geolocator获取该位置的位置,然后尝试将相机位置设置为该位置,但是它不起作用。
我发现了Geolocator的两种方法的一些例外。 Geolodator的所有其他方法对我来说都很好:
1。 Geolocator()。placemarkFromAddress()显示:
PlatformException(ERROR_GEOCODING_ADDRESS,服务不可用,空)
2。 Geolocator()。placemarkFromCoordinates()显示:
PlatformException(ERROR_GEOCODING_COORDINATES,服务不可用,空)
此处是我正在尝试的代码:
try {
List<Placemark> placemark = await Geolocator().placemarkFromAddress(searchAddress);
Placemark newPlace = placemark[0];
controller.animateCamera(CameraUpdate.newCameraPosition(CameraPosition(
target: LatLng(newPlace.position.latitude,newPlace.position.longitude),
zoom: 15.0,
)));
}catch(e){
print(e);
}
答案 0 :(得分:2)
placemarkFromCoordinates已从插件“ geolocator”移至“ geocoding”,只需在pubspec.yaml和用户placemarkFromCoordinates中添加插件“ geocoding”
答案 1 :(得分:1)
答案 2 :(得分:0)
现在已移至 https://pub.dev/packages/geocoding
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:geocoding/geocoding.dart';
class MapScreen02 extends StatefulWidget {
@override
_MapScreen02State createState() => _MapScreen02State();
}
class _MapScreen02State extends State<MapScreen02> {
GoogleMapController mapController;
String searchAdd;
// List<Location> locations = await locationFromAddress("Gronausestraat 710, Enschede");
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: [
GoogleMap(
onMapCreated: onMapCreated,
initialCameraPosition:
CameraPosition(target: LatLng(40.7128, -74.0060), zoom: 10.0),
),
Positioned(
top: 30,
right: 15,
left: 15,
child: Container(
height: 50,
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white,
),
child: TextField(
decoration: InputDecoration(
hintText: 'Enter Address',
border: InputBorder.none,
contentPadding: EdgeInsets.only(
left: 15,
top: 15,
),
suffixIcon: IconButton(
icon: Icon(Icons.search),
onPressed: searchnavigate,
iconSize: 30,
),
),
onChanged: (val) {
setState(() {
searchAdd = val;
});
},
),
),
),
],
),
);
}
searchnavigate() {
locationFromAddress(searchAdd).then((result) {
mapController.animateCamera(CameraUpdate.newCameraPosition(CameraPosition(
target: LatLng(result[0].latitude, result[0].longitude),
zoom: 10,
)));
});
}
void onMapCreated(controller) {
setState(() {
mapController = controller;
});
}
}
答案 3 :(得分:0)
改用 GeoCoding 包。