You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Maps Flutter中绘制用户位置到指定标记点的polyline路线

问题原因

你代码的核心问题是执行顺序逻辑错误,还有几个常见的配置遗漏:

  • onMapCreated回调中你先执行了_getPolyline(),再执行locatePosition()获取用户位置,但_getPolyline()依赖还未初始化的currentPosition变量,必然触发late变量未初始化的报错
  • 没有提前申请位置权限,Geolocator无法正常获取用户位置
  • 未确认Google Maps相关API是否开启,API_KEY权限配置是否正确
  • Polyline没有设置颜色,就算绘制成功也可能因为透明不可见

修复步骤

1. 调整执行顺序,确保位置获取完成后再绘制路线

把_getPolyline()挪到locatePosition()的最后,位置获取成功之后再执行,修改locatePosition方法:

void locatePosition() async {
  // 先申请位置权限,确认授权后再获取位置
  LocationPermission permission = await Geolocator.checkPermission();
  if (permission == LocationPermission.denied || permission == LocationPermission.deniedForever) {
    permission = await Geolocator.requestPermission();
    if (permission != LocationPermission.whileInUse && permission != LocationPermission.always) {
      // 权限被拒绝可自行补充提示逻辑
      return;
    }
  }
  Position position = await Geolocator.getCurrentPosition(
      desiredAccuracy: LocationAccuracy.high);
  currentPosition = position;
  LatLng latlatposition = LatLng(position.latitude, position.longitude);
  CameraPosition cameraPosition =
      new CameraPosition(target: latlatposition, zoom: 16);
  newGoogleMapController
      .animateCamera(CameraUpdate.newCameraPosition(cameraPosition));
  // 位置获取成功后再调用绘制路线方法
  _getPolyline();
}

2. 修改onMapCreated回调,去掉提前调用的_getPolyline

onMapCreated: (GoogleMapController controller) {
  _controllerGoogleMap.complete(controller);
  newGoogleMapController = controller;
  locatePosition();
  setState(() {});
}

3. 给Polyline添加可见的颜色

修改_addPolyLine方法里的Polyline配置:

Polyline polyline = Polyline(
  polylineId: id,
  points: polylineCoordinates,
  width: 8,
  // 增加颜色配置,可自行替换为其他颜色
  color: Colors.blueAccent,
);

4. 确认基础配置正确

  • 检查Android的AndroidManifest.xml、iOS的Info.plist里已经正确添加了Google Maps的API_KEY配置
  • 确认Google Cloud控制台里你的API_KEY已经开启了Maps SDK for Android、Maps SDK for iOS、Directions API三个服务
  • 把_getPolyline里的"API_KEY"替换成你自己的真实API_KEY

内容的提问来源于stack exchange,提问作者Aziz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:36:02