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

Flutter构建失败求助:flutter_map与open_street_map插件参数错误

Flutter Release构建错误修复方案(flutter_map 6.1.0 + open_street_map_search_and_pick 0.1.1)

1. Marker组件无builder命名参数

flutter_map 6.x版本移除了Marker的builder参数,改用child属性直接传入Widget。如果是批量生成Marker,可使用MarkerLayer的markerBuilder回调。

修改示例:

// 旧代码
Marker(
  builder: (ctx) => Icon(Icons.location_pin),
  point: LatLng(37.7749, -122.4194),
)

// 新代码
Marker(
  child: Icon(Icons.location_pin),
  point: LatLng(37.7749, -122.4194),
)

// 批量生成Marker时用markerBuilder
MarkerLayer(
  markerBuilder: (context, markers) => markers.map((marker) => marker.child).toList(),
  markers: myMarkerList,
)

2. OpenStreetMapSearchAndPick组件无onPlacePicked命名参数

open_street_map_search_and_pick 0.1.1版本的回调参数名为onPicked,而非onPlacePicked,直接替换参数名即可。

修改示例:

// 旧代码
OpenStreetMapSearchAndPick(
  onPlacePicked: (place) {
    // 处理选中地点
  },
  center: LatLng(37.7749, -122.4194),
)

// 新代码
OpenStreetMapSearchAndPick(
  onPicked: (place) {
    // 处理选中地点
  },
  center: LatLng(37.7749, -122.4194),
)

3. onTap回调参数类型不匹配

flutter_map 6.x版本的MapOptions.onTap回调新增了TapPosition参数,需调整回调函数参数列表,不需要该参数时可使用下划线_忽略。

修改示例:

// 旧代码
MapOptions(
  onTap: (latLng) {
    // 处理地图点击
  },
  center: LatLng(37.7749, -122.4194),
)

// 新代码
MapOptions(
  onTap: (tapPosition, latLng) {
    // 处理地图点击,若不需要tapPosition可写(_, latLng)
  },
  center: LatLng(37.7749, -122.4194),
)

内容的提问来源于stack exchange,提问作者Pritul Kumar Roy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:42:36