agrobot_base/AgroBase/AgroBase/Models/MapasModel.cs

86 lines
2.6 KiB
C#

using AgroBase.Properties;
using AgroBase.Services;
using CefSharp.WinForms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AgroBase.Models
{
public class MapasModel
{
public ChromiumWebBrowser chromiumWebBrowser { get; set; }
public Panel pnlMapa { get; set; }
private PictureBox picLoading { get; set; } = new PictureBox();
public Label lblMapa { get; set; } = new Label();
public MapasService mapaService { get; set; } = new MapasService();
public void btnCarregar_Click(object sender, EventArgs e)
{
mapaService.CarregarMapa(MapasVariaveisModel.NomeArquivoMapaInterativo, MapasVariaveisModel.NomeArquivoMapaInterativoSaida);
picLoading.Dock = DockStyle.Fill;
picLoading.BackColor = System.Drawing.Color.Transparent;
picLoading.Image = Resources.loading;
picLoading.Name = "picLoading";
picLoading.SizeMode = PictureBoxSizeMode.Zoom;
picLoading.Visible = true;
pnlMapa.Controls.Add(picLoading);
Timer tmr = new Timer() { Interval = 500 };
tmr.Tick += Tmr_Tick;
tmr.Start();
}
private void Tmr_Tick(object sender, EventArgs e)
{
if (mapaService.pythonProcess.HasExited)
{
((Timer)sender).Stop();
picLoading.Visible = false;
mapaService.CarregarDadosMapa();
lblMapa.Text = "Mapa carregado: " + mapaService.NomeArquivos;
chromiumWebBrowser = new ChromiumWebBrowser(mapaService.MapaUrl);
pnlMapa.Controls.Add(chromiumWebBrowser);
chromiumWebBrowser.Dock = DockStyle.Fill;
}
}
}
public class MapaFeatureCollectionModel
{
public string type { get; set; }
public List<MapaFeatureModel> features { get; set; }
}
public class MapaFeatureModel
{
public string type { get; set; }
public MapaFeaturePropertiesModel properties { get; set; }
public MapaFeatureGeometryModel geometry { get; set; }
}
public class MapaFeaturePropertiesModel
{
public string Id { get; set; }
public string Name { get; set; }
public double Length { get; set; }
public double Dist1 { get; set; }
public double Dist2 { get; set; }
}
public class MapaFeatureGeometryModel
{
public string type { get; set; }
public List<List<double>> coordinates { get; set; }
}
}