我在尝试通过 flutter_osm 获取当前位置时收到此错误:“此表达式的类型为 'void',因此无法使用其值”

问题描述 投票:0回答:1

我遇到的错误消息表明

currentLocation()
方法被定义为返回
Future<void>
,这意味着它不返回任何值,因此我无法将其结果分配给变量。

  Widget origin() {
    return Positioned(
      bottom: 20,
      right: 15,
      left: 15,
      child: ElevatedButton(
        onPressed: () async {
          try {
// the error is on this line 
 GeoPoint currentLocation = await mapController.currentLocation();

            debugPrint(
                "Current Location: Latitude: ${currentLocation.latitude}, Longitude:   ${currentLocation.longitude}");

            await mapController.addMarker(
              markerPosition: currentLocation,
              markerIcon: MarkerIcon(
                iconWidget: markerIcon,
              ),
            );

            setState(() {
              geoPoint.add(currentLocation);
              widgetStateList.add(destinationState);
            });
          } catch (e) {
            debugPrint("Error getting current location: $e");
          }
        },
        child: const Text(MyStrings.originSelect),
      ),
    );
  }
android flutter dart openstreetmap
1个回答
0
投票

您可以使用

myLocation()
功能获取当前位置。

函数

currentLocation()
确实返回
Future<void>
并将地图移动到当前用户位置。

© www.soinside.com 2019 - 2024. All rights reserved.