【问题标题】:flutter NoSuchMethodError: The getter 'lat' was called on null颤振 NoSuchMethodError:getter 'lat' 在 null 上被调用
【发布时间】:2023-04-08 23:03:01
【问题描述】:

通过谷歌地图搜索时,使用返回位置的函数,并调用 null。 placeDetail类初始化使用了,但是不知道是什么问题。

void _moveCamera() async {
try{
  GoogleMapController controller = await _mapController.future;
  controller.animateCamera(
    CameraUpdate.newLatLng(
        LatLng(
            placeDetail.lat,
            placeDetail.lng)),
  );
} catch(e) {
  print("error?? -$e");

}

print("noo - ${placeDetail.lat}");
print("noo - ${placeDetail.lng}");

setState(() {
  _markers.add(
      Marker(
    markerId: MarkerId(placeDetail.name),
    position: LatLng(placeDetail?.lat, placeDetail.lng),
    infoWindow: InfoWindow(
        title: placeDetail.name,
        snippet: placeDetail.formattedAddress),
  ));
});
}

json을 받아온 부분은 문제가 없는 걸로 생각됩니다。 格式化地址:대한민국 서울특별시 은평구 응암동,几何:{位置:{纬度:37.5942526,lng:126.9185857},이렇게출력이됩니다。

我在这里初始化了。

void getCurrentPosition() async {
LocationData pos = await location.getLocation();
setState(() {
  currentPos = LatLng(
    pos.latitude,
    pos.longitude,
  );
});


placeDetail = PlaceDetail(lng: pos.longitude, lat: pos.latitude); 
print('google mapff - ${currentPos.latitude}');


GoogleMapController mapCtrl = await _mapController.future;
mapCtrl.animateCamera(
  CameraUpdate.newCameraPosition(
    CameraPosition(
        target: LatLng(
            currentPos.latitude,
            currentPos.longitude),
        zoom: zoomLevel),
  ),
);

}

【问题讨论】:

  • 你能再添加一些代码吗?您现在添加的代码看起来不错,但似乎流程中的某个地方存在问题。
  • 该错误是由于错误地将布尔值添加到json数据引起的。感谢您一起寻找解决方案!

标签: flutter


【解决方案1】:

你在哪里定义了 placeDetail ?您必须确保 placeDetail 在正在执行的代码范围内。

【讨论】:

  • 我已经添加了你定义的地方
猜你喜欢
  • 2021-03-06
  • 2018-09-10
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
  • 2020-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多