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

使用flutter_map添加地图时出现Unable to load asset错误求助

问题原因与解决方案
  • 错误根源:你误用了AssetTileProvider()——这个Provider的作用是加载本地assets目录中的离线地图瓦片,但你传入的是在线OpenStreetMap瓦片的URL,Flutter会把这个URL当作本地资源路径去查找,所以才会不断报"Unable to load asset"的错误。

  • 修复方法:将AssetTileProvider()替换为NetworkTileProvider(),这个Provider专门用于从网络加载在线瓦片资源。

修改后的完整代码:

FlutterMap(
  mapController: mapController,
  options: MapOptions(
    initialCenter: const LatLng(51.5, -0.09),
    initialZoom: 5,
  ),
  children: [
    TileLayer(
      tileProvider: NetworkTileProvider(),
      urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
    ),
  ],
),
  • 补充说明:如果后续需要使用离线瓦片,才需要用AssetTileProvider(),此时要将urlTemplate改为本地assets路径(比如'assets/map_tiles/{z}/{x}/{y}.png'),同时在pubspec.yaml中声明对应的资源目录:
flutter:
  assets:
    - assets/map_tiles/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:17:08