【发布时间】:2021-07-27 20:39:48
【问题描述】:
我的应用正在加载 HERE 地图,并且可以使用一组手动输入的坐标作为中心点正常工作。
我在应用程序的另一部分实现了Geolocator 以生成用户位置,然后将其实现为一个函数,以查找其当前位置附近的地点并显示在地图上。
我现在已经使用了Geolocator 定位器,并想用它来打开用户位置上的地图。代码使用async和await获取用户坐标。
地图打开功能不想接受async/ await,但我尝试在自己的类中构建它并拉取坐标,但没有成功。
我比较新,任何建议都非常感谢
Async & Await 目前在“打开地图的功能”中带有红色下划线,当我在“打开地图的功能”顶部将MapMarkerExample 更改为mapMarkerExample 时,_mapMarkerExample = MapMarkerExample (_showDialog, hereMapController); 为红色在“打开地图的命令”上加下划线
打开地图的命令
void _onMapCreated(HereMapController hereMapController) {
hereMapController.mapScene.loadSceneForMapScheme(MapScheme.normalDay, (MapError error) {
if (error == null) {
_mapMarkerExample = MapMarkerExample (_showDialog, hereMapController);
} else {
print("Map scene not loaded. MapError: " + error.toString());
}
});
}
地图打开功能
MapMarkerExample(ShowDialogFunction showDialogCallback, HereMapController hereMapController) async {
_showDialog = showDialogCallback;
_hereMapController = hereMapController;
Position position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
var lat = position.latitude;
var long = position.longitude;
double distanceToEarthInMeters = 8000;
_hereMapController.camera.lookAtPointWithDistance(
GeoCoordinates(lat, long), distanceToEarthInMeters);
_setTapGestureHandler();
_showDialog("Note", "Tap markers for more.");
}
【问题讨论】: