我已经实现了一种可靠的方式来获取用户正在创建的应用中的经度和纬度坐标,但是似乎无法将这些坐标转换为地标。
我还想弄清楚我需要使用什么来打印这些数据。
这就是我要获取的数据:
List<Placemark> place = []; void _getPlace() async { List<Placemark> newPlace = await _geolocator.placemarkFromCoordinates(_position.latitude, _position.longitude); print(newPlace); setState(() { place = newPlace; }); }
谢谢
编辑:
在CopsOnRoad的回应之后,我得到了这个错误:
[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: NoSuchMethodError: The method 'placemarkFromCoordinates' was called on null. Receiver: null Tried calling: placemarkFromCoordinates(51.4998, -0.129) #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:50:5) #1 _NearbyPageState._getPlace package:tr/pages/nearby.dart:128 <asynchronous suspension> #2 _NearbyPageState._controlCard.<anonymous closure> package:tr/pages/nearby.dart:629 #3 GestureRecognizer.invokeCallback package:flutter/…/gestures/recognizer.dart:182 #4 TapGestureRecognizer._checkUp package:flutter/…/gestures/tap.dart:365 #5 TapGestureRecognizer.acceptGesture package:flutter/…/gestures/tap.dart:312 #6 GestureArenaManager.sweep package:flutter/…/gestures/arena.dart:156 #7 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent package:flutter/…/gestures/binding.dart:222 #8 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (p<…>
您已经在那里,您需要的其他东西是:
String _address = ""; // create this variable void _getPlace() async { List<Placemark> newPlace = await _geolocator.placemarkFromCoordinates(_position.latitude, _position.longitude); // this is all you need Placemark placeMark = newPlace[0]; String name = placeMark.name; String subLocality = placeMark.subLocality; String locality = placeMark.locality; String administrativeArea = placeMark.administrativeArea; String postalCode = placeMark.postalCode; String country = placeMark.country; String address = "${name}, ${subLocality}, ${locality}, ${administrativeArea} ${postalCode}, ${country}"; print(address); setState(() { _address = address; // update _address }); }