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

Flutter Map开发报错:layers参数及TileLayerOptions等方法未定义

Flutter Map 报错修复方案

报错原因及修复方法

  • 命名参数'layers'未定义:flutter_map 新版本将 layers 参数从 FlutterMap 组件的直接参数,移至 MapOptions 的 layers 属性中,需调整参数位置。
  • 未定义'TileLayerOptions'和'MarkerLayerOptions':库版本更新后,这类带Options后缀的配置类已重构为直接的Widget,分别替换为TileLayer和MarkerLayer。

修正后的完整代码

import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong2/latlong.dart';
import 'dart:math';

class HotSpot extends StatefulWidget {
  @override
  _HotSpotState createState() => _HotSpotState();
}

class _HotSpotState extends State<HotSpot> {
  List<User> users = [];
  MapController mapController = MapController();
  Random random = Random();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('HotSpot'),
      ),
      body: FlutterMap(
        options: MapOptions(
          center: const LatLng(0, 0),
          zoom: 5.0,
          // 将layers移至MapOptions内部
          layers: [
            TileLayer(
              urlTemplate: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
              subdomains: const ['a', 'b', 'c'],
            ),
            MarkerLayer(
              markers: users
                  .map((user) => Marker(
                        point: LatLng(user.latitude, user.longitude),
                        builder: (context) => const Icon(
                          Icons.location_on,
                          color: Colors.red,
                        ),
                      ))
                  .toList(),
            ),
          ],
        ),
        mapController: mapController,
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // 添加随机用户位置到地图
          double latitude = random.nextDouble() * 180 - 90;
          double longitude = random.nextDouble() * 360 - 180;
          User user = User(latitude, longitude);
          setState(() {
            users.add(user);
          });
        },
        child: const Icon(Icons.add),
      ),
    );
  }
}

class User {
  double latitude;
  double longitude;

  User(this.latitude, this.longitude);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:15:42