Updated Wgs84UtmProjection

This commit is contained in:
ClemensFischer 2026-01-12 11:49:24 +01:00
parent c50551d4fe
commit 50261de408
5 changed files with 58 additions and 15 deletions

12
.gitignore vendored
View file

@ -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

View file

@ -26,10 +26,6 @@ namespace MapControl
public Wgs84UtmProjection(int zone, Hemisphere hemisphere)
{
SetZone(zone, hemisphere);
EquatorialRadius = Wgs84EquatorialRadius;
Flattening = Wgs84Flattening;
ScaleFactor = 0.9996;
FalseEasting = 5e5;
}

View file

@ -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);

View file

@ -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();

View file

@ -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<HttpResponseMessage> 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)
{