flutter_map_rastercoords 0.0.4
flutter_map_rastercoords: ^0.0.4 copied to clipboard
Flutter map utility library for non-geographic map projections using CRS Simple
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_map
setup, including:getMaxBounds()
for constraining the map view.zoom
property 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_rastercoords
to yourpubspec.yaml
:dependencies: flutter_map_rastercoords: ^0.0.1
-
Create a
RasterCoords
instance: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', ), ], ); }