100 lines
3.5 KiB
C#
100 lines
3.5 KiB
C#
using AgroBase.Models;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Net.Http;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AgroBase.Services
|
|
{
|
|
public static class MapasVariaveisModel
|
|
{
|
|
public static string NomeArquivoMapaInterativo = "mapa_interativo.html";
|
|
public static string NomeArquivoMapaInterativoSaida = "GeoJson.json";
|
|
public static string NomeArquivoMapaGPS = "mapa_gps.html";
|
|
public static string TopicoCoordenadasGPS = "coordenadas_gps";
|
|
public static string TopicoSelecaoRuasMapa = "selecao_ruas_mapa";
|
|
public static string TopicoTrajetoriaDinamica = "trajetoria_dinamica";
|
|
}
|
|
|
|
public class MapasService
|
|
{
|
|
OpenFileDialog opfMapa;
|
|
public Process pythonProcess;
|
|
private string CaminhoSaida = Variaveis.CaminhoSistema + PythonService.CaminhoGeral + PythonService.CaminhoLeitura;
|
|
public string NomeArquivoMapa = "";
|
|
public string NomeArquivos = "";
|
|
public string CaminhoMapa = "";
|
|
public string ArquivoSaida = "";
|
|
public string MapaUrl = "";
|
|
public string CaminhoDadosMapa = "";
|
|
public MapaFeatureCollectionModel DadosMapa;
|
|
public bool Carregado = false;
|
|
|
|
|
|
public void CarregarMapa(string nomeArquivoMapa, string nomeArquivoSaida)
|
|
{
|
|
NomeArquivoMapa = nomeArquivoMapa;
|
|
ArquivoSaida = nomeArquivoSaida;
|
|
|
|
opfMapa = new OpenFileDialog
|
|
{
|
|
DefaultExt = ".shp",
|
|
Filter = "Shapefile (*.shp)|*.shp",
|
|
Title = "Selecionar arquivo de mapa"
|
|
};
|
|
|
|
if (opfMapa.ShowDialog() == DialogResult.OK)
|
|
{
|
|
NomeArquivos = opfMapa.FileName.Split('\\')[opfMapa.FileName.Split('\\').Length - 1].Split('.')[0];
|
|
CaminhoMapa = opfMapa.FileName.Substring(0, opfMapa.FileName.Length - NomeArquivos.Length - 4).Replace("\\", "/");
|
|
|
|
pythonProcess = PythonService.RunScript(PythonService.ScriptMapConverter, new string[] {
|
|
CaminhoMapa,
|
|
NomeArquivos,
|
|
ArquivoSaida,
|
|
NomeArquivoMapa,
|
|
MapasVariaveisModel.TopicoCoordenadasGPS,
|
|
MapasVariaveisModel.TopicoSelecaoRuasMapa,
|
|
MapasVariaveisModel.TopicoTrajetoriaDinamica,
|
|
});
|
|
|
|
MapaUrl = new Uri(CaminhoSaida + NomeArquivoMapa).AbsoluteUri;
|
|
CaminhoDadosMapa = CaminhoSaida + ArquivoSaida;
|
|
}
|
|
}
|
|
|
|
public void CarregarMapaGPS(string nomeArquivoMapa)
|
|
{
|
|
NomeArquivoMapa = nomeArquivoMapa;
|
|
|
|
pythonProcess = PythonService.RunScript(PythonService.ScriptMapGPS, new string[] {
|
|
CaminhoMapa,
|
|
NomeArquivos,
|
|
ArquivoSaida,
|
|
NomeArquivoMapa,
|
|
MapasVariaveisModel.TopicoCoordenadasGPS
|
|
});
|
|
|
|
MapaUrl = new Uri(CaminhoSaida + NomeArquivoMapa).AbsoluteUri;
|
|
CaminhoDadosMapa = CaminhoSaida + ArquivoSaida;
|
|
}
|
|
|
|
public void CarregarDadosMapa()
|
|
{
|
|
var dados = File.ReadAllText(CaminhoDadosMapa);
|
|
DadosMapa = JsonConvert.DeserializeObject<MapaFeatureCollectionModel>(dados);
|
|
int i = 0;
|
|
DadosMapa.features.ForEach(feature =>
|
|
{
|
|
feature.geometry.id = i.ToString();
|
|
i++;
|
|
});
|
|
}
|
|
|
|
|
|
}
|
|
}
|