52 lines
1.7 KiB
Dart
52 lines
1.7 KiB
Dart
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter_map_cancellable_tile_provider/flutter_map_cancellable_tile_provider.dart';
|
|
import 'package:flutter_map/flutter_map.dart';
|
|
import 'package:latlong2/latlong.dart';
|
|
import 'package:flutter/foundation.dart' show kIsWeb;
|
|
|
|
|
|
class MyMAP extends StatelessWidget {
|
|
final LatLng initCenter;
|
|
final double initZoom;
|
|
const MyMAP({super.key, this.initCenter = const LatLng(51.509364, -0.128928), this.initZoom = 15});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
TileProvider? tileProvider = null;
|
|
if (kIsWeb) {
|
|
tileProvider = CancellableNetworkTileProvider();
|
|
}
|
|
return FlutterMap(
|
|
options: MapOptions(
|
|
initialCenter: initCenter,
|
|
// Center the map over London
|
|
initialZoom: initZoom,
|
|
maxZoom:20,
|
|
minZoom: 10,
|
|
),
|
|
children: [
|
|
|
|
|
|
TileLayer( // Display map tiles from any source
|
|
urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
|
|
tileProvider: tileProvider,
|
|
// OSMF's Tile Server
|
|
userAgentPackageName: 'com.example.app',
|
|
maxNativeZoom: 19, // Scale tiles when the server doesn't support higher zoom levels
|
|
// And many more recommended properties!
|
|
),
|
|
// RichAttributionWidget( // Include a stylish prebuilt attribution widget that meets all requirments
|
|
// attributions: [
|
|
// TextSourceAttribution(
|
|
// 'OpenStreetMap contributors',
|
|
// onTap: () =>
|
|
// launchUrl(Uri.parse(
|
|
// 'https://openstreetmap.org/copyright')), // (external)
|
|
// ),
|
|
// // Also add images...
|
|
// ],
|
|
// ),
|
|
],
|
|
);
|
|
}
|
|
} |