Modul zobrazení polohy v mapě
Veškeré zdrojové soubory se nachází v ./map
- Google Maps
- Mapy.com
- Mapbox
GoogleMapsWidget
class MapsWidget extends StatefulWidget {
final double longitude;
final double latitude;
final String? apiKey;
final fmaps.MapController mapController;
final MarkerService? markerService;
final bool showMarkers;
const MapsWidget({
super.key,
required this.apiKey,
required this.longitude,
required this.latitude,
required this.mapController,
this.markerService,
this.showMarkers = true,
});
| Parameter | Type | Description |
|---|---|---|
| latitude | Double | Zeměpisná šířka středu mapy |
| longitude | Double | Zeměpisná délka středu mapy |
| apiKey | String | Api klíč poskytovatele map |
| children | List<Widget>? | Widgety, které se zobrazí na mapě |
| userAgentPackageName | String? | User agent, který bude použit při získávání map |
| markerService | MarkerService? | Instance třídy poskytující značky pozic závodníků |
| showMarkers | bool | Možnost zobrazení značek v mapě |
MapyComWidget
class MapsWidget extends MapViewWidget {
MapsWidget({
super.key,
required String apiKey,
required super.longitude,
required super.latitude,
required super.mapController,
MarkerService? markerService,
bool showMarkers = true,
})
MapboxWidget
class MapsWidget extends StatefulWidget {
final double longitude;
final double latitude;
final String? apiKey;
final fmaps.MapController mapController;
final MarkerService? markerService;
final bool showMarkers;
const MapsWidget({
super.key,
required this.apiKey,
required this.longitude,
required this.latitude,
required this.mapController,
this.markerService,
this.showMarkers = true,
});
| Parameter | Type | Description |
|---|---|---|
| latitude | Double | Zeměpisná šířka středu mapy |
| longitude | Double | Zeměpisná délka středu mapy |
| apiKey | String | Api klíč poskytovatele map |
| children | List<Widget>? | Widgety, které se zobrazí na mapě |
| userAgentPackageName | String? | User agent, který bude použit při získávání map |
| markerService | MarkerService? | Instance třídy poskytující značky pozic závodníků |
| showMarkers | bool | Možnost zobrazení značek v mapě |
MapViewWidget
class MapViewWidget extends StatefulWidget {
final double latitude;
final double longitude;
final MapController? mapController;
final String? url;
final List<Widget>? children;
final String? userAgentPackageName;
final MarkerService? markerService;
final bool showMarkers;
const MapViewWidget({
super.key,
this.url,
required this.latitude,
required this.longitude,
this.mapController,
this.children,
this.userAgentPackageName,
this.markerService,
this.showMarkers = true,
});
| Parameter | Type | Description |
|---|---|---|
| latitude | Double | Zeměpisná šířka středu mapy |
| longitude | Double | Zeměpisná délka středu mapy |
| mapController | MapController? | Controller pro nastavení pozice a přiblížení mapy |
| url | String | Základ url na API |
| children | List<Widget>? | Widgety, které se zobrazí na mapě |
| userAgentPackageName | String? | User agent, který bude použit při získávání map |
| markerService | MarkerService? | Instance třídy poskytující značky pozic závodníků |
| showMarkers | bool | Možnost zobrazení značek v mapě |
MapWidget
class MapWidget extends StatefulWidget {
final bool showMarkers;
final MapProvider provider;
final String apiKey;
final String url;
const MapWidget({
super.key,
required this.url,
this.apiKey = "",
this.showMarkers = true,
this.provider = MapProvider.google,
});
| Parameter | Type | Description |
|---|---|---|
| showMarkers | bool | Možnost zobrazení značek v mapě |
| provider | MapProvider | Poskytovatel map |
| apiKey | String | Api klíč pro poskytovatele map |
| url | String | Základ url na API |
PositionsLayer
class PositionsLayer extends StatefulWidget {
final MarkerService? markerService;
const PositionsLayer({super.key, this.markerService});
| Parameter | Type | Description |
|---|---|---|
| markerService | MarkerService? | Instance třídy poskytující značky pozic závodníků |
PreferencesWidget
class PreferencesWidget extends StatefulWidget {
String url;
PreferencesWidget({super.key, required this.url})
| Parameter | Type | Description |
|---|---|---|
| url | String | Základní URL Rest API |
Atributy
| Variable | Type | Description |
|---|---|---|
| sharing | int | Volba sdílení polohy |
| Map<String, int> | sharingOptions | Dostupné volby sdílení |
Metody
loadPreferences()
Načtení volby sdílení do proměnné sharing
MarkerService
abstract class MarkerService
Metody
Stream<List<Racer>> getRacerStream()
Metoda poskytující stream pozic závodníků
Widget? createMarkerLayer()
Metoda pro vytvoření vrstvy značek závodníků v mapě
Future<Map<String, dynamic>> createGoogleMapsMarkers(List<Racer> racers)
Metoda pro vytvoření vrstvy značek závodníků pro Google mapy
Future<List<Map<String, dynamic>>> createMapboxAnnotations(List<Racer> racers)
Metoda pro vytvoření vrstvy značek závodníků pro Mapbox
DefaultMarkerService
class DefaultMarkerService implements MarkerService {
String url;
DefaultMarkerService({required this.url});
| Parameter | Type | Description |
|---|---|---|
| url | String | Základní URL Rest API |
Metody
Stream<List<Racer>> getRacerStream()
Metoda poskytující stream pozic závodníků
Widget? createMarkerLayer()
Metoda pro vytvoření vrstvy značek závodníků v mapě
Future<Map<String, dynamic>> createGoogleMapsMarkers(List<Racer> racers)
Metoda pro vytvoření vrstvy značek závodníků pro Google mapy
Future<List<Map<String, dynamic>>> createMapboxAnnotations(List<Racer> racers)
Metoda pro vytvoření vrstvy značek závodníků pro Mapbox
Future<Uint8List> createMarkerImage(name, {Size size = const Size(75, 75), Duration waitToRender = const Duration(milliseconds: 300),})
Pomocná metoda pro vytvoření obrázku značky pro použití u Google map
Racer
class Racer {
final double latitude;
final double longitude;
final String name;
Racer({required this.latitude, required this.longitude, required this.name});
| Parameter | Type | Description |
|---|---|---|
| latitude | Double | Zeměpisná šířka závodníka |
| longitude | Double | Zeměpisná délka závodníka |
| name | String | Jméno/Číslo závodníka |
Metody
Racer.fromJson(Map<String, dynamic> json)
Pojmenováný konstruktor pro načtení z JSONu