Flutter_map ClientException 和 SocketException

问题描述 投票:0回答:1

我添加“flutter_map”包以在 Android 和 iOS 上显示 OpenStreetMap。 当我调用mapcontroller.move时它可以工作,但在iOS上用手指手势缩放时出现异常。

这里有一个例外: flutter:ClientException 和 SocketException:连接失败(操作系统错误:打开的文件太多,errno = 24),地址 =tile.openstreetmap.org,端口 = 443,uri = https://tile.openstreetmap.org/10/546/ 350.png dnssd_clientstub Deliver_request:套接字对失败 24(打开文件太多)

这是我的颤振代码

class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {

  // Create map controller
  final MapController _mapController = MapController();

  LatLng currentPosition =  const LatLng(52.5200, 13.4050);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      extendBodyBehindAppBar: true, 
      floatingActionButton: Column(
        mainAxisAlignment: MainAxisAlignment.end,
        children: <Widget>[
          // cuurrent location button
          SizedBox(
            height: 50.0,
            width: 50.0,
            child: FittedBox(
              child: FloatingActionButton(
                heroTag: "getCurrentLocation_bnb",
                backgroundColor: Colors.white,
                child: const Icon(
                  Icons.my_location,
                  color: Colors.black,
                ),
                onPressed: () {
                  setState(() {
                    _mapController.move(currentPosition, 17);           
                  });
                },
              ),
            ),
          ),
          ],),
          // Scaffold body
          body:   FlutterMap(
          mapController: _mapController,
          options: MapOptions(  
              initialCenter: currentPosition,
              initialZoom: 5,
              maxZoom: 18,
              minZoom: 5,
             
          ),
          // layers of map
          children: <Widget>[
           TileLayer(
            urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
           ),
          ])           
        );
  }
flutter socketexception fluttermap
1个回答
0
投票

我通过添加tileprovider解决了这个问题

TileLayer(
    urlTemplate:'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
    tileProvider: CachedNetworkTileProvider(),
            ),
© www.soinside.com 2019 - 2024. All rights reserved.