agrobot_base/Exemplos/Aspose.GIS-for-.NET-master/Apps/Geo.Map.Generator/MainWindow.xaml.cs

84 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media.Imaging;
using Aspose.Gis;
using Aspose.Gis.Geometries;
using Aspose.Gis.GeoTools;
namespace Geo.Map.Generator
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
ProjectPresenter _projectPresenter = new();
private void MapPoints_Click(object sender, RoutedEventArgs e)
{
var current = _projectPresenter.MapPoints(CheckInput());
ShowMap(current);
}
private void MapPolygons_Click(object sender, RoutedEventArgs e)
{
var current = _projectPresenter.MapPolygons(CheckInput());
ShowMap(current);
}
private void MapLines_Click(object sender, RoutedEventArgs e)
{
var current = _projectPresenter.MapLines(CheckInput());
ShowMap(current);
}
private void PreviewTextInput(object sender, TextCompositionEventArgs e)
{
Regex regex = new Regex("[^0-9]+");
e.Handled = regex.IsMatch(e.Text);
}
private int CheckInput()
{
try
{
if (!String.IsNullOrEmpty(objsCount.Text))
return int.Parse(objsCount.Text);
}
catch (Exception ex)
{
objsCount.Text = ex.Message;
}
return 100;
}
private void ShowMap(List<IGeometry> current)
{
if (current == null)
return;
Image finalImage = pOutput;
BitmapImage logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri(new FileInfo(GeometryOutput.SaveGeometryAsMap(current, "map")).FullName);
logo.EndInit();
finalImage.Source = logo;
}
}
}