我已经实现了一个可靠的方法来获得用户的纬度,经度坐标在我创建的应用程序,但似乎不能把这些坐标变成一个地标。
我还想弄清楚我需要使用什么来打印这些数据。
这就是我想要得到的数据:
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<…>
7条答案
按热度按时间eeq64g8w1#
**更新:**使用geocoding
旧解决方案:
你已经在那里,你需要额外的东西是:
ukxgm1gy2#
从版本6.0.0开始,从geolocator中删除了位置标记,并将其移至geocoding。
从版本6.0.0开始,地理编码功能(placemarkFromAddress和placemarkFromCoordinates)不再是地理定位器插件的一部分。我们已将这些功能移到它们自己的插件中:这个新插件是旧方法的改进版本。
使用地理编码将纬度和经度转换为地址
yquaqz183#
使用pub.dev flutter_地理编码
https://pub.dev/packages/flutter_geocoding
或
我已经使用了swift的GMSGeocoder和java的android.location.Geocoder,并将其应用到flutter中,我认为它比pub.dev中的库Geocode效率更高。
我的示例代码
地理编码库java和swift自加
java
雨燕
Flutter
baubqpgj4#
首先,您已经包含了lib -geolocator:^3.0.1,在公共质量标准yaml中
试试这个解决方案-
4smxwvx55#
2o7dmzc56#
使用
Geolocator Plugin
新版本(从版本6.0.0开始)。地理编码功能(placemarkFromAddress
和placemarkFromCoordinates
)不再是geolocator插件的一部分。此方法已将这些功能移至其自己的插件:geocodingslhcrj9b7#
未来getLatAndlong()异步{cl =等待地理定位器. getCurrentPosition(). then((值)=〉值);
mymarker.add(标记(信息窗口:信息窗口(标题:地标[0].国家!+"",+地标[0].管理区域!+"",+地标[0].位置!),可拖动:真的,
);}