FlutterMap放大到白色屏幕

ckx4rj1h  于 2023-04-07  发布在  Flutter
关注(0)|答案(3)|浏览(163)

当放大Map时,它会在最后创建一个白色屏幕。有人知道为什么吗?
在Android和iOS上发生。在模拟器/模拟器上以及在发布模式下的物理设备上发生。发生在所有磁贴服务上:Google、MapBox和OpenStreetMap。
GoogleMap和MapBox包不会发生这种情况,但它们都很慢,并且在滚动显示的页面时会不断地弹出列表视图。
这张gif图显示了发生了什么:

下面是一个我的最小代码示例:

Widget build(BuildContext context) {
  return Scaffold(
      body: FlutterMap(
    options: MapOptions(
      center: LatLng(routeLat, routeLong),
      zoom: 17.0,
    ),
    layers: [
      TileLayerOptions(
        urlTemplate:
            mapStringAndKey
      ),
      MarkerLayerOptions(
        markers: [
          Marker(
            width: 150.0,
            height: 100.0,
            point: LatLng(routeLat, routeLong),
            builder: (ctx) => Container(
              child: Column(
                children: [
                  Icon(
                    Icons.location_on,
                    size: 40,
                    color: Colors.blue,
                  ),
                ],
              ),
            ),
          ),
        ],
      ),
    ],
  ));
}

谢谢你的任何想法。

mnemlml8

mnemlml81#

这可能是因为FlutterMap正在尝试加载不受支持的缩放级别的Map图块。每次缩放时,FlutterMap都会为新的缩放级别获取图块。您应该定义maxZoom属性以防止用户缩放过多并获得白色。

FlutterMap(
   options: MapOptions(
      maxZoom: // your maxZoom value
   ),
   // ...
)
nwwlzxa7

nwwlzxa72#

FlutterMap提供了一个最大和最小缩放,这可能是正确的,但使用MapBox或GoogleMap只是更好地放大。
我最终在全屏页面中使用MapBox包https://pub.dev/packages/mapbox_gl,它不会像在scrollview中那样影响滚动,并且将在scrollview中使用静态图像或flutter_map,以确保scrollview速度快,并将用户从那里重定向到Map。

idv4meu8

idv4meu83#

要走的路是使用maxNativeZoom,所以如果你设置maxNativeZoom: 18,如果你放大超过18,它只会“过放大”。
试试这个:

FlutterMap(
  options: MapOptions(
     maxNativeZoom: // your zoom level
  ),
  // ...
)

相关问题