1

我在我的 Flutter 应用程序中以表单形式使用 flutter_map 并且使地图居中不起作用。地图只显示了一片海洋。那是因为我的后备值(坐标)是 0, 0。然后标记从 value[0] 和 value 1更新到正确的位置,但中心没有更新。

new FlutterMap(
            options: new MapOptions(
              // TODO: Center doesn't refresh
              // https://github.com/fleaflet/flutter_map/issues/10
              center: new latlong.LatLng(value[0], value[1]),
              zoom: 13.0,
            ),
            layers: [
              new TileLayerOptions(urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", subdomains: ['a', 'b', 'c']),
              new MarkerLayerOptions(
                markers: [
                  new Marker(
                    width: 20.0,
                    height: 20.0,
                    point: new latlong.LatLng(value[0], value[1]),
                    builder: (ctx) => new Container(
                      child: Icon(
                        Icons.location_on,
                        color: primaryColor,
                      ),
                    ),
                  ),
                ],
              ),
            ],
          ),

我不知道为什么center: new latlong.LatLng(value[0], value[1]),不起作用。有人可以帮我吗?这是 Flutter 包:https ://pub.dev/packages/flutter_map

4

1 回答 1

2

参数 'center' 只会在开始时使用,不会更新。

您必须使用控制器移动到新位置。

https://pub.dev/documentation/flutter_map/latest/flutter_map/MapController-class.html

初始化您的控制器并将其添加到您的 FlutterMap

FlutterMap(controller:myController)
于 2021-01-06T11:05:42.227 回答