diff --git a/example/lib/flutter_map_mbtiles/page.dart b/example/lib/flutter_map_mbtiles/page.dart index 07b81ce..fd25f12 100644 --- a/example/lib/flutter_map_mbtiles/page.dart +++ b/example/lib/flutter_map_mbtiles/page.dart @@ -3,6 +3,7 @@ import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map_mbtiles/flutter_map_mbtiles.dart'; import 'package:flutter_map_plugins_example/utils.dart'; import 'package:latlong2/latlong.dart'; +import 'package:mbtiles/mbtiles.dart'; class FlutterMapMbTilesPage extends StatefulWidget { const FlutterMapMbTilesPage({super.key}); @@ -58,7 +59,7 @@ class _FlutterMapMbTilesPageState extends State { ), children: [ TileLayer( - tileProvider: MbTilesTilesProvider( + tileProvider: MbTilesTileProvider( mbtiles: _mbtiles!, ), ), diff --git a/example/lib/vector_map_tiles_mbtiles/page.dart b/example/lib/vector_map_tiles_mbtiles/page.dart index 5fe26b8..765de80 100644 --- a/example/lib/vector_map_tiles_mbtiles/page.dart +++ b/example/lib/vector_map_tiles_mbtiles/page.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; -import 'package:flutter_map_mbtiles/flutter_map_mbtiles.dart'; import 'package:flutter_map_plugins_example/utils.dart'; import 'package:latlong2/latlong.dart'; +import 'package:mbtiles/mbtiles.dart'; import 'package:vector_map_tiles/vector_map_tiles.dart'; import 'package:vector_map_tiles_mbtiles/vector_map_tiles_pmtiles.dart'; import 'package:vector_tile_renderer/vector_tile_renderer.dart'; @@ -49,7 +49,7 @@ class _VectorMapTilesMbTilesPageState extends State { padding: const EdgeInsets.all(12), child: Text( 'MBTiles Name: ${metadata.name}, ' - 'Format: ${metadata.format}', + 'Format: ${metadata.format}', ), ), Expanded( diff --git a/flutter_map_mbtiles/lib/flutter_map_mbtiles.dart b/flutter_map_mbtiles/lib/flutter_map_mbtiles.dart index f4e33c0..bb7016e 100644 --- a/flutter_map_mbtiles/lib/flutter_map_mbtiles.dart +++ b/flutter_map_mbtiles/lib/flutter_map_mbtiles.dart @@ -1,3 +1 @@ -export 'package:mbtiles/mbtiles.dart'; - -export 'src/raster_mbtiles_provider.dart'; +export 'src/mbtiles_tile_provider.dart'; diff --git a/flutter_map_mbtiles/lib/src/mbtiles_tile_provider.dart b/flutter_map_mbtiles/lib/src/mbtiles_tile_provider.dart new file mode 100644 index 0000000..b090ce9 --- /dev/null +++ b/flutter_map_mbtiles/lib/src/mbtiles_tile_provider.dart @@ -0,0 +1,32 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_map/flutter_map.dart'; +import 'package:flutter_map_mbtiles/src/mbtiles_image_provider.dart'; +import 'package:mbtiles/mbtiles.dart'; + +/// MBTiles raster [TileProvider], use for `png`, `jpg` or `webp` tiles. +class MbTilesTileProvider extends TileProvider { + /// MBTiles database + final MBTiles mbtiles; + + /// Create a new [MbTilesTileProvider] instance with an MBTiles instance. + MbTilesTileProvider({required this.mbtiles}); + + /// Create a new [MbTilesTileProvider] instance by providing the path of the + /// MBTiles file. + /// The MBTiles database will be opened internally. + MbTilesTileProvider.fromPath({required String path}) + : mbtiles = MBTiles(mbtilesPath: path); + + @override + ImageProvider getImage(TileCoordinates coordinates, TileLayer options) => + MbTilesImageProvider( + coordinates: coordinates, + mbtiles: mbtiles, + ); + + @override + void dispose() { + mbtiles.dispose(); + super.dispose(); + } +} diff --git a/flutter_map_mbtiles/lib/src/raster_mbtiles_provider.dart b/flutter_map_mbtiles/lib/src/raster_mbtiles_provider.dart deleted file mode 100644 index 06317da..0000000 --- a/flutter_map_mbtiles/lib/src/raster_mbtiles_provider.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'package:flutter/widgets.dart'; -import 'package:flutter_map/flutter_map.dart'; -import 'package:flutter_map_mbtiles/src/mbtiles_image_provider.dart'; -import 'package:mbtiles/mbtiles.dart'; - -/// MBTiles raster [TileProvider], use for `png`, `jpg` or `webp` tiles. -class MbTilesTilesProvider extends TileProvider { - /// MBTiles database - final MBTiles mbtiles; - - /// Create a new [MbTilesTilesProvider] instance and pass it to as provider - /// to a [TileLayer] - MbTilesTilesProvider({required this.mbtiles}); - - @override - ImageProvider getImage(TileCoordinates coordinates, TileLayer options) => - MbTilesImageProvider( - coordinates: coordinates, - mbtiles: mbtiles, - ); -} diff --git a/flutter_map_mbtiles/test/integration_test.dart b/flutter_map_mbtiles/test/integration_test.dart index 4756dae..661dd37 100644 --- a/flutter_map_mbtiles/test/integration_test.dart +++ b/flutter_map_mbtiles/test/integration_test.dart @@ -1,6 +1,6 @@ import 'package:flutter_map/flutter_map.dart'; -import 'package:flutter_map_mbtiles/flutter_map_mbtiles.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:mbtiles/mbtiles.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; diff --git a/flutter_map_mbtiles/test/utils/test_app.dart b/flutter_map_mbtiles/test/utils/test_app.dart index 6b85ba1..9d48605 100644 --- a/flutter_map_mbtiles/test/utils/test_app.dart +++ b/flutter_map_mbtiles/test/utils/test_app.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; -import 'package:flutter_map_mbtiles/flutter_map_mbtiles.dart'; +import 'package:flutter_map_mbtiles/src/mbtiles_tile_provider.dart'; import 'package:latlong2/latlong.dart'; +import 'package:mbtiles/mbtiles.dart'; // ignore_for_file: diagnostic_describe_all_properties @@ -22,7 +23,7 @@ class TestApp extends StatelessWidget { children: [ TileLayer( urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', - tileProvider: MbTilesTilesProvider(mbtiles: mbtiles), + tileProvider: MbTilesTileProvider(mbtiles: mbtiles), ), ], ), diff --git a/vector_map_tiles_mbtiles/CHANGELOG.md b/vector_map_tiles_mbtiles/CHANGELOG.md index 6a7ea60..17a5ed4 100644 --- a/vector_map_tiles_mbtiles/CHANGELOG.md +++ b/vector_map_tiles_mbtiles/CHANGELOG.md @@ -1,4 +1,4 @@ -## 1.0.0 +## 0.1.0 - Initial release - Add `PmTilesVectorTileProvider` \ No newline at end of file diff --git a/vector_map_tiles_mbtiles/pubspec.yaml b/vector_map_tiles_mbtiles/pubspec.yaml index 1bc1574..97dd2f6 100644 --- a/vector_map_tiles_mbtiles/pubspec.yaml +++ b/vector_map_tiles_mbtiles/pubspec.yaml @@ -3,7 +3,7 @@ description: PMTiles for vector_map_files / flutter_map repository: https://github.com/josxha/flutter_map_plugins issue_tracker: https://github.com/josxha/flutter_map_plugins/issues topics: [ flutter-map, vector-map-tiles, map, pmtiles ] -version: 1.0.0 +version: 0.1.0 environment: sdk: '>=3.2.5 <4.0.0'