LiveMapsImageryLayer.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Windows;
  2. using Comal.Classes;
  3. using Syncfusion.UI.Xaml.Maps;
  4. namespace PRSDesktop;
  5. public class LiveMapsImageryLayer : ImageryLayer
  6. {
  7. static readonly DependencyProperty StyleProperty =
  8. DependencyProperty.Register(
  9. nameof(Style),
  10. typeof(LiveMapStyle),
  11. typeof(MapViewModel),
  12. new PropertyMetadata(LiveMapStyle.OSM)
  13. );
  14. public LiveMapStyle Style
  15. {
  16. get => (LiveMapStyle)GetValue(StyleProperty);
  17. set
  18. {
  19. SetValue(StyleProperty, value);
  20. LayerType = Style == LiveMapStyle.OSM
  21. ? LayerType.OSM
  22. : LayerType.Bing;
  23. BingMapStyle = Style == LiveMapStyle.BingStandard
  24. ? BingMapStyle.Road
  25. : Style == LiveMapStyle.BingTerrain
  26. ? BingMapStyle.Aerial
  27. : BingMapStyle.AerialWithLabels;
  28. }
  29. }
  30. protected override string GetUri(int X, int Y, int Scale)
  31. {
  32. return Style == LiveMapStyle.GoogleStandard
  33. ? $"http://mt1.google.com/vt/lyrs=m&x={X}&y={Y}&z={Scale}"
  34. : Style == LiveMapStyle.GoogleTerrain
  35. ? $"http://mt1.google.com/vt/lyrs=s&x={X}&y={Y}&z={Scale}"
  36. : Style == LiveMapStyle.GoogleTerrainWithLabels
  37. ? $"http://mt1.google.com/vt/lyrs=y&x={X}&y={Y}&z={Scale}"
  38. : base.GetUri(X,Y,Scale);
  39. }
  40. }