0

Googleマップの最初の位置がフラッターするため、現在の位置を取得しようとしています..しかし、常にこのようなエラーが発生します...initialCameraPosition !=null is not trueこれまでのところ、非同期待機を使用して現在の位置を取得しようとしました..コードは次のとおりです

static LatLng _initialPosition;

@override
  void initState() {
    _getLocation();
    super.initState();
  }
void _getLocation() async {
    LocationData currentLocation;
    currentLocation = await location.getLocation();
    setState(() {
      _initialPosition =
          LatLng(currentLocation.latitude, currentLocation.longitude);
    });
  }

static final CameraPosition initialLocation = CameraPosition(
    target: _initialPosition,
    zoom: 14.4746,
  );

コードから追加する必要があるものはありますか? ここに私のウィジェットがあります

GoogleMap(
            mapType: MapType.normal,
            initialCameraPosition: initialLocation,
            markers:...,
            circles:...,
            onMapCreated: (GoogleMapController controller) {
              _controller = controller;
            },
          ),
4

1 に答える 1

1

_getLocation は非同期関数です。GoogleMap の起動時に _initialPosition が設定されていない可能性があります。

_initialPosition に開始値を指定し、_initialPosition が更新されたら GoogleMap を更新します。

于 2020-05-12T05:32:05.657 に答える