如何在Flutter中使用地理编码从地址获取坐标?

eufgjt7s  于 2022-12-05  发布在  Flutter
关注(0)|答案(1)|浏览(159)

有人能教我如何在flutter中使用地理编码从给定的地址获得经度和纬度吗?
我想得到坐标,用它们作为Map上的标记。
更新:下面是我的代码:
扩展状态{

late double _latitude;
  late double _longitude;

  @override
  void initState(){
    getLatLon();
    super.initState();
  }

  Future <void> getLatLon() async {
    GeoCode geoCode = GeoCode();

    try {
      Coordinates coordinates = await geoCode.forwardGeocoding(address: "${widget.packageModel.destination}");
      final lat = coordinates.latitude!;
      final lon = coordinates.longitude!;

      setState((){
        _latitude = lat;
        _longitude = lon;
      });

    } catch (e) {
      print(e);
    }
  }

这是我试图在Map上显示坐标的地方,但它似乎没有显示Map,它说_latitude还没有初始化:

//Location
Container(
  padding: EdgeInsets.only(top: 20),
  height: MediaQuery.of(context).size.height / 2.5,
  width: MediaQuery.of(context).size.width,
  child: GoogleMap(
    scrollGesturesEnabled: true,
    mapType: MapType.normal,
    initialCameraPosition: CameraPosition(
      target: LatLng(_latitude, _longitude),
      zoom: 14
    )
  ),
),
bbmckpt7

bbmckpt71#

documentation中的示例:

import 'package:geocode/geocode.dart';

void main() async {
  GeoCode geoCode = GeoCode();

  try {
    Coordinates coordinates = await geoCode.forwardGeocoding(
        address: "532 S Olive St, Los Angeles, CA 90013");

    print("Latitude: ${coordinates.latitude}");
    print("Longitude: ${coordinates.longitude}");
  } catch (e) {
    print(e);
  }
}

您还有其他问题吗?

相关问题