| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System;
- using System.Threading.Tasks;
- using Microsoft.AspNetCore.Components;
- using CaritasPWA.Shared.Models.OSM;
- using Darnton.Blazor.Leaflet.LeafletMap;
-
- namespace CaritasPWA.Pages {
- public class CaritasServiceFundVeloKeyDataPageBase : ComponentBase, IAsyncDisposable {
-
- protected Map PositionMap;
- protected TileLayer OpenStreetMapsTileLayer;
- protected MapStateViewModel MapStateViewModel;
- protected MarkerViewModel MarkerViewModel;
-
-
- public CaritasServiceFundVeloKeyDataPageBase() : base() {
- var mapCentre = new LatLng(46.80121, 8.22669); // Centered on Swiss
- MapStateViewModel = new MapStateViewModel {
- MapCentreLatitude = mapCentre.Lat,
- MapCentreLongitude = mapCentre.Lng,
- Zoom = 6
- };
-
- PositionMap = new Map("bicycleLocationMap", new MapOptions {
- Center = mapCentre,
- Zoom = MapStateViewModel.Zoom
- });
-
- OpenStreetMapsTileLayer = new TileLayer(
- "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
- new TileLayerOptions {
- Attribution = @"Map data © <a href=""https://www.openstreetmap.org/"">OpenStreetMap</a> contributors, " +
- @"<a href=""https://creativecommons.org/licenses/by-sa/2.0/"">CC-BY-SA</a>"
- }
- );
-
- MarkerViewModel = new MarkerViewModel();
-
- }
-
- protected async void GetMapState() {
- var mapCentre = await PositionMap.GetCenter();
- MapStateViewModel.MapCentreLatitude = mapCentre.Lat;
- MapStateViewModel.MapCentreLongitude = mapCentre.Lng;
- MapStateViewModel.Zoom = await PositionMap.GetZoom();
- MapStateViewModel.MapContainerSize = await PositionMap.GetSize();
- MapStateViewModel.MapViewPixelBounds = await PositionMap.GetPixelBounds();
- MapStateViewModel.MapLayerPixelOrigin = await PositionMap.GetPixelOrigin();
- StateHasChanged();
- }
-
- protected async void SetMapState() {
- var mapCentre = new LatLng(MapStateViewModel.MapCentreLatitude, MapStateViewModel.MapCentreLongitude);
- await PositionMap.SetView(mapCentre, MapStateViewModel.Zoom);
- }
-
- protected async void AddMarkerAtMapCenter() {
- var mapCentre = await PositionMap.GetCenter();
- var marker = new Marker(mapCentre, new MarkerOptions {
- Keyboard = MarkerViewModel.Keyboard,
- Title = MarkerViewModel.Title,
- Alt = MarkerViewModel.Alt,
- ZIndexOffset = MarkerViewModel.ZIndexOffset,
- Opacity = MarkerViewModel.Opacity,
- RiseOnHover = MarkerViewModel.RiseOnHover,
- RiseOffset = MarkerViewModel.RiseOffset,
- });
-
- await marker.AddTo(PositionMap);
- }
-
- public async ValueTask DisposeAsync() {
- await OpenStreetMapsTileLayer.DisposeAsync();
- await PositionMap.DisposeAsync();
- }
-
-
- }
- }
|