首页 > 解决方案 > 如何在颤动中使用我当前的位置作为我的标记和折线原始纬度和经度

问题描述

我有一张显示我当前位置和目的地位置的地图。我能够得到我当前位置的纬度和经度。我可以通过输入纬度和经度来预先确定我的起始标记应该在哪里。我想使用我当前位置的纬度和经度作为起点折线并作为我的制造商。

这是我的代码。

  Completer<GoogleMapController> _controller = Completer();

  late Position currentPosition;

  var geoLocator = Geolocator();
  late Geolocator geolocatorTwo;
  var locationOptions = LocationOptions(accuracy: LocationAccuracy.bestForNavigation, distanceFilter: 4);

  void getCurrentPositiion() async {
    Position position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.bestForNavigation);
    currentPosition = position;
    LatLng pos = LatLng(position.latitude, position.longitude);
    mapController.animateCamera((CameraUpdate.newLatLng(pos)));
  }

在 initState 中,addMaker。

  @override
  void initState() {
    double destLatitude = 5.6609595;
    // Destination Longitude
    double destLongitude = -0.0181556999;
    /// add origin marker origin marker
    _addMarker(
      LatLng(currentPosition.latitude, currentPosition.longitude),
      "origin",
      BitmapDescriptor.defaultMarker,
    );

    // Add destination marker
    _addMarker(
      LatLng(double.parse(widget.vendors!.latitude), double.parse(widget.vendors!.longitude)),
      "destination",
      BitmapDescriptor.defaultMarkerWithHue(90),
    );
    _getPolyline();
    super.initState();
  }

以及获取折线的功能。

  void _getPolyline() async {
    List<LatLng> polylineCoordinates = [];

    PolylineResult result = await polylinePoints.getRouteBetweenCoordinates(
      "API KEY",
      PointLatLng(currentLocation.latitude, currentLocation.longitude),
      PointLatLng(double.parse(widget.vendors!.latitude), double.parse(widget.vendors!.longitude)),
      travelMode: TravelMode.driving,
    );
    if (result.points.isNotEmpty) {
      result.points.forEach((PointLatLng point) {
        polylineCoordinates.add(LatLng(point.latitude, point.longitude));
      });
    } else {
      print(result.errorMessage);
    }
    _addPolyLine(polylineCoordinates);
  }

我收到错误 currentLocation 尚未初始化。

标签: fluttergoogle-mapsgoogle-maps-markersgoogle-polyline

解决方案


推荐阅读