diff --git a/.gitignore b/.gitignore index 66ccd8d0..6b4a36b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,16 @@ .vs/ bin/ obj/ +Experimental/ +TestApps/ +TestData/ +Win2D/ +Caches/ZoneTreeCache/ +SampleApps/Shared/TestLayers.cs +MapControlExperimental.sln +MapControlTestApps.sln *.user +*.nupkg +*.pdf +*.txt +*.cmd diff --git a/MapControl/Shared/Wgs84UtmProjection.cs b/MapControl/Shared/Wgs84UtmProjection.cs index e6156f65..7263ff42 100644 --- a/MapControl/Shared/Wgs84UtmProjection.cs +++ b/MapControl/Shared/Wgs84UtmProjection.cs @@ -26,10 +26,6 @@ namespace MapControl public Wgs84UtmProjection(int zone, Hemisphere hemisphere) { SetZone(zone, hemisphere); - - EquatorialRadius = Wgs84EquatorialRadius; - Flattening = Wgs84Flattening; - ScaleFactor = 0.9996; FalseEasting = 5e5; } diff --git a/SampleApps/AvaloniaApp/MainWindow.axaml.cs b/SampleApps/AvaloniaApp/MainWindow.axaml.cs index c2c8cb26..9180a363 100644 --- a/SampleApps/AvaloniaApp/MainWindow.axaml.cs +++ b/SampleApps/AvaloniaApp/MainWindow.axaml.cs @@ -16,9 +16,9 @@ namespace SampleApplication var loggerFactory = LoggerFactory.Create(builder => builder.AddDebug().SetMinimumLevel(LogLevel.Information)); ImageLoader.LoggerFactory = loggerFactory; - //var tileCache = new MapControl.Caching.ImageFileCache(TileImageLoader.DefaultCacheFolder, loggerFactory); - //TileImageLoader.Cache = tileCache; - //Closed += (s, e) => tileCache.Dispose(); + var tileCache = new MapControl.Caching.ImageFileCache(TileImageLoader.DefaultCacheFolder, loggerFactory); + TileImageLoader.Cache = tileCache; + Closed += (s, e) => tileCache.Dispose(); InitializeComponent(); AddTestLayers(); @@ -44,13 +44,19 @@ namespace SampleApplication } } - private void MapPointerPressed(object sender, PointerPressedEventArgs e) + private async void MapPointerPressed(object sender, PointerPressedEventArgs e) { if (e.Pointer.Type == PointerType.Mouse) { var point = e.GetCurrentPoint(map); - if (point.Properties.IsRightButtonPressed) + if (point.Properties.IsLeftButtonPressed && + e.KeyModifiers.HasFlag(KeyModifiers.Control) && + map.MapLayer is WmsImageLayer wmsLayer) + { + Debug.WriteLine(await wmsLayer.GetFeatureInfoAsync(e.GetPosition(map))); + } + else if (point.Properties.IsRightButtonPressed) { e.Pointer.Capture(map); var location = map.ViewToLocation(point.Position); diff --git a/SampleApps/WinUiApp/MainWindow.xaml.cs b/SampleApps/WinUiApp/MainWindow.xaml.cs index 2e11119e..e31cd70e 100644 --- a/SampleApps/WinUiApp/MainWindow.xaml.cs +++ b/SampleApps/WinUiApp/MainWindow.xaml.cs @@ -19,9 +19,9 @@ namespace SampleApplication var loggerFactory = LoggerFactory.Create(builder => builder.AddDebug().SetMinimumLevel(LogLevel.Information)); ImageLoader.LoggerFactory = loggerFactory; - //var tileCache = new MapControl.Caching.ImageFileCache(TileImageLoader.DefaultCacheFolder, loggerFactory); - //TileImageLoader.Cache = tileCache; - //Closed += (s, e) => tileCache.Dispose(); + var tileCache = new MapControl.Caching.ImageFileCache(TileImageLoader.DefaultCacheFolder, loggerFactory); + TileImageLoader.Cache = tileCache; + Closed += (s, e) => tileCache.Dispose(); InitializeComponent(); AddTestLayers(); diff --git a/SampleApps/WpfApplication/MainWindow.xaml.cs b/SampleApps/WpfApplication/MainWindow.xaml.cs index 206f0536..f34f287e 100644 --- a/SampleApps/WpfApplication/MainWindow.xaml.cs +++ b/SampleApps/WpfApplication/MainWindow.xaml.cs @@ -10,16 +10,41 @@ using System.Windows.Input; namespace SampleApplication { +#if NET + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + class HttpHandler : DelegatingHandler + { + public HttpHandler() : base(new SocketsHttpHandler()) + { + } + + protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + Debug.WriteLine(request.RequestUri); + + return base.SendAsync(request, cancellationToken); + } + } +#endif + public partial class MainWindow : Window { public MainWindow() { +#if NET + var httpClient = new HttpClient(new HttpHandler()) { Timeout = TimeSpan.FromSeconds(10) }; + httpClient.DefaultRequestHeaders.Add("User-Agent", $"XAML Map Control Test Application"); + ImageLoader.HttpClient = httpClient; +#endif var loggerFactory = LoggerFactory.Create(builder => builder.AddDebug().SetMinimumLevel(LogLevel.Information)); ImageLoader.LoggerFactory = loggerFactory; - //var tileCache = new MapControl.Caching.ImageFileCache(TileImageLoader.DefaultCacheFolder, loggerFactory); - //TileImageLoader.Cache = tileCache; - //Closed += (s, e) => tileCache.Dispose(); + var tileCache = new MapControl.Caching.ImageFileCache(TileImageLoader.DefaultCacheFolder, loggerFactory); + TileImageLoader.Cache = tileCache; + Closed += (s, e) => tileCache.Dispose(); InitializeComponent(); AddTestLayers(); @@ -43,6 +68,10 @@ namespace SampleApplication { map.TargetCenter = map.ViewToLocation(e.GetPosition(map)); } + else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)) + { + map.ProjectionCenter = map.ViewToLocation(e.GetPosition(map)); + } else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Control) && map.MapLayer is WmsImageLayer wmsLayer) {