flutter_map_rastercoords
A flutter_map plugin for displaying large, non-geographical images as tiled maps using a simple coordinate reference system. Tiles should be generated using gdal2tiles with the --xyz and -p raster options.
Inspired from leaflet-rastercoords.
Features
- Provides utilities to convert between pixel coordinates and LatLng.
- Helper utilities for
flutter_mapsetup, including:getMaxBounds()for constraining the map view.zoomproperty that returns the optimal zoom level based on image dimensions.
Usage
-
Generate map tiles from your "large" image using gdal2tiles.py
gdal2tiles.py --xyz -p raster -z 0-3 -w none <image> <tiles dir> -
Serve the generated tiles locally, for example using serve
serve -l 8000 -
Add
flutter_map_rastercoordsto yourpubspec.yaml:dependencies: flutter_map_rastercoords: ^0.0.1 -
Create a
RasterCoordsinstance:final rc = RasterCoords(width: 1280, height: 1280); -
Use it in your
FlutterMap:Widget build(BuildContext context) { return FlutterMap( options: MapOptions( // for non-geographical maps crs: CrsSimple(), // initialize with map on center initialCenter: rc.pixelToLatLng(x: 1280 / 2, y: 1280 / 2), // optimal zoom maxZoom: rc.zoom, minZoom: 1, initialZoom: 1, // set max bounds cameraConstraint: CameraConstraint.containCenter( bounds: rc.getMaxBounds(), ), ), children: [ TileLayer( // URL template for your locally hosted tiles urlTemplate: 'http://localhost:8000/map_tiles/{z}/{x}/{y}.png', ), ], ); }