当放大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,
),
],
),
),
),
],
),
],
));
}
谢谢你的任何想法。
3条答案
按热度按时间mnemlml81#
这可能是因为FlutterMap正在尝试加载不受支持的缩放级别的Map图块。每次缩放时,FlutterMap都会为新的缩放级别获取图块。您应该定义
maxZoom
属性以防止用户缩放过多并获得白色。nwwlzxa72#
FlutterMap提供了一个最大和最小缩放,这可能是正确的,但使用MapBox或GoogleMap只是更好地放大。
我最终在全屏页面中使用MapBox包https://pub.dev/packages/mapbox_gl,它不会像在scrollview中那样影响滚动,并且将在scrollview中使用静态图像或flutter_map,以确保scrollview速度快,并将用户从那里重定向到Map。
idv4meu83#
要走的路是使用
maxNativeZoom
,所以如果你设置maxNativeZoom: 18
,如果你放大超过18,它只会“过放大”。试试这个: