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
相关产品推荐
相关产品推荐

