首页 > 解决方案 > 使用 flutter_map 包创建没有地理位置的平铺地图

问题描述

我想平铺一张大图像并在带有 flutter_map 包的 Flutter 应用程序中查看它。即,使用 flutter_map 包作为可缩放的平铺图像的大型位图查看器。

在网络上,我可以使用 Leaflet 实现这一点,并相信这是一个很常见的用例?

在 Leaflet 中,我可以按如下方式平铺图像并创建地图。假设图像大小为 7680x4320,缩放级别为 0 (512x512) 到级别 4(全图像分辨率)。

 var mapExtent = [0.00000000, -4320.00000000, 7680.00000000, 0.00000000];
  var mapMinZoom = 0;
  var mapMaxZoom = 4;
  var mapMaxResolution = 1.00000000;
  var mapMinResolution = Math.pow(2, mapMaxZoom) * mapMaxResolution;
  var tileExtent = [0.00000000, -4320.00000000, 7680.00000000, 0.00000000];
  var crs = L.CRS.Simple;
  crs.transformation = new L.Transformation(1, -tileExtent[0], -1, tileExtent[3]);
  crs.scale = function(zoom) {
    return Math.pow(2, zoom) / mapMinResolution;
  };
  crs.zoom = function(scale) {
    return Math.log(scale * mapMinResolution) / Math.LN2;
  };
  var layer;
  var map = new L.Map('map', {
      maxZoom: mapMaxZoom,
      minZoom: mapMinZoom,
      crs: crs
    });
    
    layer = L.tileLayer('{z}/{x}/{y}.png', {
      minZoom: mapMinZoom, maxZoom: mapMaxZoom,
      tileSize: L.point(512, 512),
      noWrap: true,
      tms: false
    }).addTo(map);
  map.fitBounds([
    crs.unproject(L.point(mapExtent[2], mapExtent[3])),
    crs.unproject(L.point(mapExtent[0], mapExtent[1]))
  ]);

有没有办法或例子使用flutter_map和CrsSimple在Dart中实现同样的事情?

谢谢,

标签: flutterdartleafletfluttermap

解决方案


推荐阅读