diff --git a/AgroBase/AgroBase/Forms/IHM/Operacao/ucOperacaoParametros.cs b/AgroBase/AgroBase/Forms/IHM/Operacao/ucOperacaoParametros.cs
index 18bb0734d..12cb609ac 100644
--- a/AgroBase/AgroBase/Forms/IHM/Operacao/ucOperacaoParametros.cs
+++ b/AgroBase/AgroBase/Forms/IHM/Operacao/ucOperacaoParametros.cs
@@ -23,6 +23,9 @@ namespace AgroBase.Forms.IHM.Operacao
private readonly ucParametrosMapa _ucMapa;
private OperacaoModel operacaoParametrizando;
+ private OperacaoModel _operacaoFonteCarregada;
+ private OperacaoParametrosModel _parametrosFonteCarregados;
+ private OperacaoParametrosControleModel _controleFonteCarregado;
public ucOperacaoParametros()
{
@@ -135,6 +138,11 @@ namespace AgroBase.Forms.IHM.Operacao
private void DefinirOperacaoParametrizando(OperacaoModel operacao, bool recarregarMapa = true)
{
operacaoParametrizando = operacao;
+
+ _operacaoFonteCarregada = operacao;
+ _parametrosFonteCarregados = operacao?.Parametros;
+ _controleFonteCarregado = operacao?.Parametros?.Controle;
+
CarregarDadosGerais();
_ucMovimento.DefinirOperacao(operacaoParametrizando);
_ucDirecional.DefinirOperacao(operacaoParametrizando);
@@ -298,12 +306,46 @@ namespace AgroBase.Forms.IHM.Operacao
}
- public void AtualizarParametrosTela(OperacaoModel op)
+ public void AtualizarParametrosTela(
+ OperacaoModel op,
+ bool recarregarMapa = true)
{
- DefinirOperacaoParametrizando(op, true);
+ DefinirOperacaoParametrizando(op, recarregarMapa);
}
+
+ ///
+ /// Recarrega os controles somente quando a operação ou alguma das
+ /// instâncias autoritativas de parâmetros foi substituída. Isso cobre
+ /// a parametrização parcial recebida da base sem apagar uma edição
+ /// local que o operador esteja fazendo sobre a mesma instância.
+ ///
+ public void SincronizarComOperacaoAtualSeNecessario()
+ {
+ OperacaoModel atual = Variaveis.OperacaoEmAndamento;
+
+ if (atual == null)
+ return;
+
+ bool fonteAlterada =
+ !ReferenceEquals(_operacaoFonteCarregada, atual) ||
+ !ReferenceEquals(_parametrosFonteCarregados, atual.Parametros) ||
+ !ReferenceEquals(
+ _controleFonteCarregado,
+ atual.Parametros?.Controle
+ );
+
+ if (!fonteAlterada)
+ return;
+
+ // Em atualização parcial a operação e o mapa continuam os mesmos.
+ // Recarregar o WebView aqui é desnecessário e pode perder estado
+ // visual; os demais controles devem refletir a nova autoridade.
+ DefinirOperacaoParametrizando(atual, recarregarMapa: false);
+ }
+
public void AtualizarDadosTela()
{
+ SincronizarComOperacaoAtualSeNecessario();
operacaoParametrizando?.Mapa?.AtualizarInteratividadeMapaAsync(parametrizacao: true);
}
diff --git a/AgroBase/AgroBase/Forms/IHM/frmOperacao.cs b/AgroBase/AgroBase/Forms/IHM/frmOperacao.cs
index 4dc39d65d..638d300fe 100644
--- a/AgroBase/AgroBase/Forms/IHM/frmOperacao.cs
+++ b/AgroBase/AgroBase/Forms/IHM/frmOperacao.cs
@@ -73,9 +73,40 @@ namespace AgroBase.Forms.IHM
}
}
- public void AtualizarParametrosTela(OperacaoModel op)
+ public void AtualizarParametrosTela(
+ OperacaoModel op,
+ bool recarregarMapa = true)
{
- _ucParametros.AtualizarParametrosTela(op);
+ if (IsDisposed || Disposing)
+ return;
+
+ // Se o formulário ainda não criou o handle, não force sua criação
+ // na thread MQTT. Ao abrir a aba, a sincronização por referência
+ // abaixo carregará a operação atual.
+ if (!IsHandleCreated)
+ return;
+
+ if (InvokeRequired)
+ {
+ try
+ {
+ BeginInvoke(new Action(
+ AtualizarParametrosTela
+ ), op, recarregarMapa);
+ }
+ catch (InvalidOperationException)
+ {
+ // O formulário pode estar encerrando entre a verificação
+ // e o BeginInvoke. A próxima abertura sincroniza a fonte.
+ }
+ catch (ObjectDisposedException)
+ {
+ }
+
+ return;
+ }
+
+ _ucParametros.AtualizarParametrosTela(op, recarregarMapa);
}
@@ -124,6 +155,7 @@ namespace AgroBase.Forms.IHM
break;
case AbaOperacaoIHM.Parametros:
lblContextoAba.Text = "Parâmetros da operação atual e configuração local";
+ _ucParametros.SincronizarComOperacaoAtualSeNecessario();
ExibirConteudo(_ucParametros);
break;
default:
diff --git a/AgroBase/AgroBase/Forms/Simuladores/frmSimulacaoMapaGPS.cs b/AgroBase/AgroBase/Forms/Simuladores/frmSimulacaoMapaGPS.cs
index 4ace1aea8..20f3127e4 100644
--- a/AgroBase/AgroBase/Forms/Simuladores/frmSimulacaoMapaGPS.cs
+++ b/AgroBase/AgroBase/Forms/Simuladores/frmSimulacaoMapaGPS.cs
@@ -89,6 +89,12 @@ namespace AgroBase.Forms
private double velocidadeCarroMs;
private double _ultimoAnguloControleAplicado;
+ private double _ultimoAnguloControleAlvoAtrasado;
+
+ // Modelo simples do atuador direcional: a fila existente representa o
+ // atraso de transporte; este limite representa o tempo físico de giro.
+ // Mantido no código para não exigir mudança no Designer nesta versão.
+ private double VelocidadeAngularDirecionalGrausSegundo => VariaveisEquipamento.VelocidadeAngularDirecionalGrausSegundo;
private GPSModel posicaoAtual = new GPSModel();
// Mantida para compatibilidade e para os dados apresentados na tela.
@@ -398,11 +404,26 @@ namespace AgroBase.Forms
if (atualizarAnguloControle)
{
- anguloControle = CalcularAnguloControleAtrasado(
+ _ultimoAnguloControleAlvoAtrasado = CalcularAnguloControleAtrasado(
Volatile.Read(ref _delayComandoPassos)
);
}
+ // Diferente da versão anterior, o fim da fila vira um alvo e
+ // não um salto instantâneo. A pose usa somente o ângulo físico.
+ anguloControle = AtualizarAnguloControleFisico(
+ _ultimoAnguloControleAlvoAtrasado,
+ tempoPassadoSegundos
+ );
+
+ if (operacao.DispMvd?.Dados != null)
+ {
+ operacao.DispMvd.Dados.AnguloDirecionalSimuladoCanonico =
+ anguloControle;
+ operacao.DispMvd.Dados.MomentoAnguloDirecionalSimulado =
+ DateTime.UtcNow;
+ }
+
GPSModel gps = GPSService.GetSnapshot();
double anguloAtual =
@@ -1614,7 +1635,10 @@ namespace AgroBase.Forms
);
lock (_estadoSimulacaoLock)
+ {
+ _ultimoAnguloControleAlvoAtrasado = angulo;
_ultimoAnguloControleAplicado = angulo;
+ }
txtAnguloControle.Text = angulo.ToString("0.00");
}
@@ -1638,9 +1662,26 @@ namespace AgroBase.Forms
historicoAngulosControle.Dequeue();
}
- _ultimoAnguloControleAplicado =
- historicoAngulosControle.Peek();
+ return historicoAngulosControle.Peek();
+ }
+ }
+ private double AtualizarAnguloControleFisico(
+ double anguloAlvo,
+ double dtSegundos)
+ {
+ if (!ValorFinito(anguloAlvo))
+ anguloAlvo = 0.0;
+
+ double passoMaximo =
+ VelocidadeAngularDirecionalGrausSegundo *
+ Math.Max(0.0, dtSegundos);
+
+ lock (_estadoSimulacaoLock)
+ {
+ double erro = anguloAlvo - _ultimoAnguloControleAplicado;
+ double passo = Math.Max(-passoMaximo, Math.Min(passoMaximo, erro));
+ _ultimoAnguloControleAplicado += passo;
return _ultimoAnguloControleAplicado;
}
}
diff --git a/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs b/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs
index 239b4bf97..f0dd047c1 100644
--- a/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs
+++ b/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs
@@ -32,9 +32,11 @@ namespace AgroBase.Models.Modules
private DateTime _ultimaDescobertaEnviada = DateTime.MinValue;
private readonly object _estadoLock = new object();
private readonly SemaphoreSlim _calibragemGate = new SemaphoreSlim(1, 1);
+ private readonly SemaphoreSlim _alivioPressaoGate = new SemaphoreSlim(1, 1);
private readonly object _calibragemCtsLock = new object();
private CancellationTokenSource _calibragemCts;
private bool _sincronizacaoSeguraPendente;
+ private volatile bool _alivioPressaoLinhaEmAndamento;
[JsonIgnore]
internal object EstadoSyncRoot => _estadoLock;
@@ -1817,6 +1819,15 @@ namespace AgroBase.Models.Modules
if (op?.DispAtu?.Dados?.Conectado != true)
return;
+ /*
+ * Durante o alívio de pressão, a sequência explícita abaixo é a
+ * única dona das saídas do atuador. Sem esta barreira, o ciclo de
+ * segurança da finalização fecharia os bicos antes de completar
+ * a janela de despressurização.
+ */
+ if (_alivioPressaoLinhaEmAndamento)
+ return;
+
bool operacaoConcluida = op.Sensoriamento?.Operacao?.StatusOperacaoAtual == StatusOperacao.Concluido;
bool pulverizadorAutomatico = op.Parametros?.Controle?.PulverizadorAutomatico ?? false;
@@ -1898,6 +1909,10 @@ namespace AgroBase.Models.Modules
foreach (var bomba in BombasPressurizadoras.Where(x => x != null && x.Inicializado))
{
bool ehBombaPrincipal = bomba.ID == BombaPressurizadora?.ID;
+ bool ehAgitador = bomba.ID == AgitadorDeCalda?.ID;
+ bool agitadorManual =
+ ehAgitador &&
+ op.Parametros?.Controle?.AtuAgitadorModo == ModoAgitadorCalda.Manual;
bool comandoSolicitado = bomba.Comandar && bomba.ComandoAtuar;
@@ -1914,6 +1929,21 @@ namespace AgroBase.Models.Modules
{
statusDesejado = comandoSolicitado && atuacaoPermitida;
}
+ /*
+ * O agitador em Manual pode ser ligado pela base antes do
+ * início da operação para preparar a calda. Continuam valendo
+ * os bloqueios absolutos de emergência, finalização e operação
+ * concluída; somente a exigência OperacaoIniciada/Pausa deixa
+ * de se aplicar neste modo explícito do operador.
+ */
+ else if (agitadorManual)
+ {
+ statusDesejado =
+ comandoSolicitado &&
+ !op.Sensoriamento.Operacao.Finalizando &&
+ !op.Sensoriamento.Operacao.Emergencia &&
+ !operacaoConcluida;
+ }
/*
* Fora da calibração, a bomba principal automática
* deve permanecer ligada enquanto a operação estiver
@@ -2070,7 +2100,10 @@ namespace AgroBase.Models.Modules
return false;
}
- private bool PodeEnviarComandoFisico(bool statusLigado, string componente)
+ private bool PodeEnviarComandoFisico(
+ bool statusLigado,
+ string componente,
+ bool permitirDuranteFinalizacao = false)
{
var dados = Variaveis.OperacaoEmAndamento?.DispAtu?.Dados;
@@ -2084,6 +2117,24 @@ namespace AgroBase.Models.Modules
if (!BloqueioAbsolutoAtuacao(out string motivo))
return true;
+ /*
+ * Exceção estreita, usada exclusivamente pela rotina de alívio:
+ * permite abrir bicos com a bomba já desligada enquanto a operação
+ * está em Finalizando. Emergência, aplicação encerrando e operação
+ * concluída continuam bloqueando o comando.
+ */
+ var operacao = Variaveis.OperacaoEmAndamento?.Sensoriamento?.Operacao;
+
+ if (permitirDuranteFinalizacao &&
+ _alivioPressaoLinhaEmAndamento &&
+ operacao?.Finalizando == true &&
+ operacao.Emergencia != true &&
+ operacao.StatusOperacaoAtual != StatusOperacao.Concluido &&
+ !Variaveis.Fechando)
+ {
+ return true;
+ }
+
Variaveis.MostrarLog($"[ATU/SEGURANCA] Comando ON bloqueado para {componente}: {motivo}");
return false;
}
@@ -2108,12 +2159,13 @@ namespace AgroBase.Models.Modules
CanMessagePosicaoDados dado,
bool setarControle,
bool status,
- double? angulo = null
+ double? angulo = null,
+ bool permitirDuranteFinalizacao = false
)
{
var dispAtu = Variaveis.OperacaoEmAndamento?.DispAtu;
- if (bico == null || !PodeEnviarComandoFisico(status, bico.ID))
+ if (bico == null || !PodeEnviarComandoFisico(status, bico.ID, permitirDuranteFinalizacao))
return;
bool comandoControle = bico.ComandoAtuar;
@@ -2228,6 +2280,130 @@ namespace AgroBase.Models.Modules
}
}
+ ///
+ /// Desliga as bombas, abre todos os bicos comandáveis por uma janela
+ /// curta para aliviar a pressão residual da linha e volta tudo ao
+ /// estado seguro. Deve ser chamada depois de marcar a operação como
+ /// Finalizando, para impedir que qualquer automação religue a bomba.
+ ///
+ public async Task AliviarPressaoLinhaAsync(int tempoAlivioMs = 1000)
+ {
+ tempoAlivioMs = Math.Max(0, tempoAlivioMs);
+
+ await _alivioPressaoGate.WaitAsync().ConfigureAwait(false);
+
+ try
+ {
+ var op = Variaveis.OperacaoEmAndamento;
+
+ if (op?.Sensoriamento?.Operacao?.Finalizando != true)
+ {
+ Variaveis.MostrarLog("[ATU/ALIVIO] Ignorado: operação não está finalizando.");
+ return;
+ }
+
+ if (!Conectado)
+ {
+ Variaveis.MostrarLog("[ATU/ALIVIO] Ignorado: atuador desconectado.");
+ return;
+ }
+
+ if (op.Sensoriamento.Operacao.Emergencia || Variaveis.Fechando)
+ {
+ Variaveis.MostrarLog("[ATU/ALIVIO] Ignorado por bloqueio de segurança.");
+ return;
+ }
+
+ var bicos = (BicosPulverizadores ?? new List())
+ .Where(x => x != null && x.Inicializado && x.Comandar)
+ .ToList();
+
+ _alivioPressaoLinhaEmAndamento = true;
+
+ Variaveis.MostrarLog(
+ $"[ATU/ALIVIO] Iniciando: bombas OFF, {bicos.Count} bico(s) aberto(s) por {tempoAlivioMs} ms."
+ );
+
+ /* A bomba precisa estar desligada antes de qualquer bico abrir. */
+ foreach (var bomba in BombasPressurizadoras ?? new List())
+ {
+ if (bomba?.Inicializado != true)
+ continue;
+
+ double pressaoOff = bomba.Sensor_ID_Num > -1 ? 0 : -1;
+
+ EnviarComandoFisicoBomba(
+ bomba,
+ CanMessagePosicaoDados.Command1,
+ setarControle: true,
+ status: false,
+ potencia: 0,
+ pressao: pressaoOff
+ );
+ }
+
+ foreach (var bico in bicos)
+ {
+ EnviarComandoFisicoBico(
+ bico,
+ CanMessagePosicaoDados.Command1,
+ setarControle: true,
+ status: true,
+ angulo: bico.AnguloAbertura,
+ permitirDuranteFinalizacao: true
+ );
+ }
+
+ if (tempoAlivioMs > 0)
+ await Task.Delay(tempoAlivioMs).ConfigureAwait(false);
+ }
+ catch (Exception ex)
+ {
+ Variaveis.MostrarLog("[ATU/ALIVIO] Falha durante o alívio: " + ex.Message);
+ }
+ finally
+ {
+ /*
+ * O fechamento é obrigatório inclusive se ocorrer exceção ou
+ * cancelamento no meio da janela.
+ */
+ foreach (var bico in BicosPulverizadores ?? new List())
+ {
+ if (bico?.Inicializado == true)
+ {
+ EnviarComandoFisicoBico(
+ bico,
+ CanMessagePosicaoDados.Command1,
+ setarControle: true,
+ status: false,
+ angulo: bico.AnguloNeutro
+ );
+ }
+ }
+
+ foreach (var bomba in BombasPressurizadoras ?? new List())
+ {
+ if (bomba?.Inicializado == true)
+ {
+ double pressaoOff = bomba.Sensor_ID_Num > -1 ? 0 : -1;
+
+ EnviarComandoFisicoBomba(
+ bomba,
+ CanMessagePosicaoDados.Command1,
+ setarControle: true,
+ status: false,
+ potencia: 0,
+ pressao: pressaoOff
+ );
+ }
+ }
+
+ _alivioPressaoLinhaEmAndamento = false;
+ _alivioPressaoGate.Release();
+ Variaveis.MostrarLog("[ATU/ALIVIO] Concluído: bicos e bombas em OFF.");
+ }
+ }
+
private void AtualizaComponentesIniciados()
diff --git a/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs b/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs
index 0c726acb7..b2994b508 100644
--- a/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs
+++ b/AgroBase/AgroBase/Models/Modules/DirecionalModel.cs
@@ -313,6 +313,38 @@ namespace AgroBase.Models.Modules
public Dictionary ConfigSentidos { get; set; }
public List Funcoes { get; set; }
+ ///
+ /// Converte o sinal local do módulo (que depende do lado e da montagem
+ /// do motor) para a convenção única usada pelo controle:
+ /// positivo = curva/yaw para a direita; negativo = para a esquerda.
+ ///
+ /// A conversão usa a própria configuração que gera os comandos, evitando
+ /// duplicar uma tabela de sinais que poderia divergir da atuação real.
+ ///
+ public double AnguloCanonicoControle(
+ TipoMovimentoDirecional tipoMovimento,
+ double anguloLocal)
+ {
+ if (double.IsNaN(anguloLocal) || double.IsInfinity(anguloLocal))
+ return 0.0;
+
+ ConfiguracaoSentidoMotor config;
+ if (ConfigSentidos == null ||
+ !ConfigSentidos.TryGetValue(tipoMovimento, out config))
+ {
+ return anguloLocal;
+ }
+
+ // O sentido configurado para Direita define qual sinal local
+ // corresponde ao comando canônico positivo.
+ double fator =
+ config.Direita == Sentido.Horario ? 1.0 :
+ config.Direita == Sentido.Antihorario ? -1.0 :
+ 0.0;
+
+ return fator == 0.0 ? 0.0 : anguloLocal * fator;
+ }
+
public static DirecionalModel CarregarParametrosIniciais(string Mod_ID, byte _EnderecoTx, byte _EnderecoRx)
{
diff --git a/AgroBase/AgroBase/Models/Modules/MovimentacaoUnificadoModel.cs b/AgroBase/AgroBase/Models/Modules/MovimentacaoUnificadoModel.cs
index 924243a70..2dc88a27f 100644
--- a/AgroBase/AgroBase/Models/Modules/MovimentacaoUnificadoModel.cs
+++ b/AgroBase/AgroBase/Models/Modules/MovimentacaoUnificadoModel.cs
@@ -51,8 +51,173 @@ namespace AgroBase.Models.Modules
private readonly SemaphoreSlim _gateMovimentoCombinado = new SemaphoreSlim(1, 1);
private CancellationTokenSource _ctsMovimentoCombinado;
+ // Estado físico separado do comando no simulador. No rover real o
+ // estado é obtido diretamente de AnguloLeitura dos módulos.
+ public double AnguloDirecionalSimuladoCanonico { get; set; } = 0.0;
+ public DateTime MomentoAnguloDirecionalSimulado { get; set; } = DateTime.MinValue;
+
+ public class EstadoDirecionalCanonico
+ {
+ public TipoMovimentoDirecional TipoMovimento { get; set; }
+ public double AnguloComando { get; set; }
+ public double AnguloSP { get; set; }
+ public double AnguloFisico { get; set; }
+ public double Dispersao { get; set; }
+ public int RodasValidas { get; set; }
+ public bool Valido { get; set; }
+ public bool EmTransicao { get; set; }
+ public long TimestampUnixMs { get; set; }
+ }
+
public List Modulos { get; set; } = new List();
+
+ ///
+ /// Consolida as quatro direções em um estado canônico para o MPC.
+ /// Somente os eixos ativos no modo atual participam. A mediana torna o
+ /// valor resistente a uma leitura isolada e a dispersão expõe desacordo.
+ ///
+ public EstadoDirecionalCanonico ObterEstadoDirecionalCanonico(
+ TipoMovimentoDirecional tipoMovimento,
+ double anguloComando,
+ bool simulando)
+ {
+ var agora = DateTime.UtcNow;
+ var leituras = new List();
+ var setpoints = new List();
+ DateTime momentoLeituraMaisRecente = DateTime.MinValue;
+
+ foreach (var modulo in Modulos ?? new List())
+ {
+ if (modulo?.DirMotor == null ||
+ !ModuloAtivoNoTipo(modulo.Modulo_ID, tipoMovimento))
+ continue;
+
+ var dir = modulo.DirMotor;
+ if (!simulando && !dir.Inicializado)
+ continue;
+
+ if (!simulando)
+ {
+ DateTime momentoLeitura =
+ dir.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue;
+ if (momentoLeitura == DateTime.MinValue ||
+ DateTime.Now - momentoLeitura > TimeSpan.FromSeconds(2))
+ continue;
+ if (momentoLeitura > momentoLeituraMaisRecente)
+ momentoLeituraMaisRecente = momentoLeitura;
+ }
+
+ double leitura = dir.AnguloCanonicoControle(
+ tipoMovimento,
+ dir.AnguloLeitura
+ );
+ double sp = dir.AnguloCanonicoControle(
+ tipoMovimento,
+ dir.AnguloSPAtual
+ );
+
+ if (!double.IsNaN(leitura) && !double.IsInfinity(leitura))
+ leituras.Add(leitura);
+ if (!double.IsNaN(sp) && !double.IsInfinity(sp))
+ setpoints.Add(sp);
+ }
+
+ double anguloFisico;
+ if (simulando && MomentoAnguloDirecionalSimulado != DateTime.MinValue)
+ {
+ anguloFisico = AnguloDirecionalSimuladoCanonico;
+ }
+ else
+ {
+ anguloFisico = Mediana(leituras);
+ }
+
+ double anguloSP = setpoints.Count > 0
+ ? Mediana(setpoints)
+ : anguloComando;
+
+ double dispersao = leituras.Count > 0
+ ? leituras.Max(x => Math.Abs(x - Mediana(leituras)))
+ : 0.0;
+
+ int rodasValidas = simulando ? QuantidadeRodasAtivas(tipoMovimento) : leituras.Count;
+ bool valido = simulando
+ ? MomentoAnguloDirecionalSimulado != DateTime.MinValue
+ : rodasValidas >= QuantidadeMinimaRodasValidas(tipoMovimento) && dispersao <= 8.0;
+
+ return new EstadoDirecionalCanonico
+ {
+ TipoMovimento = tipoMovimento,
+ AnguloComando = anguloComando,
+ AnguloSP = anguloSP,
+ AnguloFisico = anguloFisico,
+ Dispersao = dispersao,
+ RodasValidas = rodasValidas,
+ Valido = valido,
+ EmTransicao = Math.Abs(anguloSP - anguloFisico) > 1.0,
+ TimestampUnixMs = simulando
+ ? new DateTimeOffset(
+ MomentoAnguloDirecionalSimulado == DateTime.MinValue
+ ? agora
+ : MomentoAnguloDirecionalSimulado
+ ).ToUnixTimeMilliseconds()
+ : (momentoLeituraMaisRecente == DateTime.MinValue
+ ? 0
+ : new DateTimeOffset(momentoLeituraMaisRecente)
+ .ToUnixTimeMilliseconds())
+ };
+ }
+
+ private static bool ModuloAtivoNoTipo(
+ string moduloId,
+ TipoMovimentoDirecional tipo)
+ {
+ bool dianteiro = (moduloId ?? "").EndsWith("F", StringComparison.OrdinalIgnoreCase);
+ bool traseiro = (moduloId ?? "").EndsWith("T", StringComparison.OrdinalIgnoreCase);
+
+ switch (tipo)
+ {
+ case TipoMovimentoDirecional.RodasDianteiras:
+ return dianteiro;
+ case TipoMovimentoDirecional.RodasTraseiras:
+ return traseiro;
+ case TipoMovimentoDirecional.MovimentoArco:
+ case TipoMovimentoDirecional.MovimentoDiagonal:
+ case TipoMovimentoDirecional.MovimentoLateral:
+ case TipoMovimentoDirecional.RotacionarNoEixo:
+ return dianteiro || traseiro;
+ default:
+ return dianteiro;
+ }
+ }
+
+ private static int QuantidadeRodasAtivas(TipoMovimentoDirecional tipo)
+ {
+ return tipo == TipoMovimentoDirecional.RodasDianteiras ||
+ tipo == TipoMovimentoDirecional.RodasTraseiras ? 2 : 4;
+ }
+
+ private static int QuantidadeMinimaRodasValidas(TipoMovimentoDirecional tipo)
+ {
+ return QuantidadeRodasAtivas(tipo) == 2 ? 1 : 2;
+ }
+
+ private static double Mediana(IEnumerable valores)
+ {
+ var ordenados = (valores ?? Enumerable.Empty())
+ .Where(x => !double.IsNaN(x) && !double.IsInfinity(x))
+ .OrderBy(x => x)
+ .ToList();
+
+ if (ordenados.Count == 0)
+ return 0.0;
+
+ int meio = ordenados.Count / 2;
+ return ordenados.Count % 2 == 1
+ ? ordenados[meio]
+ : (ordenados[meio - 1] + ordenados[meio]) / 2.0;
+ }
public (bool, List) StatusModulosMOV(Direcao Lado)
{
diff --git a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs
index 1eb779f2d..b638ddbfb 100644
--- a/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs
+++ b/AgroBase/AgroBase/Models/Operacoes/OperacaoModel.cs
@@ -1451,6 +1451,14 @@ namespace AgroBase.Models
op.Sensoriamento.Operacao.Finalizando = true;
+ /*
+ * Com a operação já bloqueada para novas atuações automáticas,
+ * desliga as bombas e abre os bicos por 1 s para aliviar a pressão
+ * residual da linha. A própria rotina garante o fechamento final.
+ */
+ await (op.DispAtu?.Dados?.AliviarPressaoLinhaAsync(1000)
+ ?? Task.CompletedTask).ConfigureAwait(false);
+
op.Trajetoria?.LoopAtualizaDados();
await Task.Delay(2000);
@@ -2664,6 +2672,16 @@ namespace AgroBase.Models
op?.DispAtu?.Dados?.PrepararAtuadorParaOperacao();
HealthWorkerService.AtualizarDadosOperacao(true);
+
+ /*
+ * A atualização parcial substitui principalmente a instância de
+ * Parametros.Controle. Os controles da IHM mantinham a referência
+ * visual anterior e podiam regravar valores antigos ao alterar um
+ * único campo. Recarrega a tela na thread da própria IHM, sem
+ * reconstruir o mapa da operação em andamento.
+ */
+ frmInstancial.frmIHM?._frmOperacao?
+ .AtualizarParametrosTela(op, recarregarMapa: false);
}
private void ExecutarLiberacaoHumanaAutonomia(OperacaoComandoBaseModel controleBase, OperacaoModel op)
@@ -2943,6 +2961,12 @@ namespace AgroBase.Models
case S_Code.sBMB:
var bomba = dadosAtu.BombasPressurizadoras?.FirstOrDefault(x => x.ID == controleBase._comp_id);
+ if (bomba == null)
+ {
+ Variaveis.MostrarLog("[ComandoBase] Bomba ATU não encontrada: " + controleBase._comp_id);
+ return;
+ }
+
switch (controleBase.Controle.Comando)
{
case CanMessagePosicaoDados.Command2:
@@ -2960,8 +2984,31 @@ namespace AgroBase.Models
bool ligarBomba = controleBase.Controle.Estado == true;
- if (bomba.ID == dadosAtu?.AgitadorDeCalda?.ID)
- op.Parametros.Controle.AtuAgitadorModo = ligarBomba ? ModoAgitadorCalda.Manual : ModoAgitadorCalda.SemAgitacao;
+ bool ehAgitador = bomba.ID == dadosAtu?.AgitadorDeCalda?.ID;
+
+ if (ehAgitador && op.Parametros?.Controle != null)
+ {
+ /*
+ * O comando direto da base assume a fonte de verdade do
+ * agitador. Manual impede o controle automático de
+ * sobrescrever o ON; SemAgitacao mantém o OFF até uma
+ * nova parametrização da operação.
+ */
+ op.Parametros.Controle.AtuAgitadorModo = ligarBomba
+ ? ModoAgitadorCalda.Manual
+ : ModoAgitadorCalda.SemAgitacao;
+
+ bomba.ComandoAtuar = ligarBomba;
+ bomba.PotenciaSP = ligarBomba
+ ? FuncoesMatematicas.Clamp(controleBase.Controle.Potencia ?? bomba.PotenciaSP, 0, 100)
+ : 0;
+ bomba.PressaoSP = -1;
+
+ Variaveis.MostrarLog(
+ $"[ComandoBase][Agitador] Estado={(ligarBomba ? "ON" : "OFF")}, " +
+ $"Modo={op.Parametros.Controle.AtuAgitadorModo}, Potencia={bomba.PotenciaSP:0.##}%"
+ );
+ }
dadosAtu?.EnviarComandoFisicoBomba(
bomba,
@@ -2970,7 +3017,9 @@ namespace AgroBase.Models
status: ligarBomba,
potencia: controleBase.Controle.Potencia,
pressao: controleBase.Controle.Pressao,
- modo: op.Parametros.Controle.AtuModoControle
+ modo: ehAgitador
+ ? bomba.Controle.Modo
+ : op.Parametros?.Controle?.AtuModoControle
);
return;
}
diff --git a/AgroBase/AgroBase/Models/Variaveis.cs b/AgroBase/AgroBase/Models/Variaveis.cs
index 175e184ad..6a35219b3 100644
--- a/AgroBase/AgroBase/Models/Variaveis.cs
+++ b/AgroBase/AgroBase/Models/Variaveis.cs
@@ -1021,6 +1021,7 @@ namespace AgroBase.Models
public static double DistanciaEntreEixosCm { get; } = 92.0;
public static double BitolaRodasCm { get; } = 75.0;
public static double KuDirecional { get; } = 2.65;
+ public static double VelocidadeAngularDirecionalGrausSegundo { get; } = 50.0;
public static double LeverArmFrontalCm { get; set; } = 37.0; // cm
public static double LeverArmLateralCm { get; set; } = 0.0; // cm
public static double LarguraEquipamentoMm
diff --git a/AgroBase/AgroBase/Services/Operadores/HealthWorkerService.cs b/AgroBase/AgroBase/Services/Operadores/HealthWorkerService.cs
index 58e289225..973e5aaa1 100644
--- a/AgroBase/AgroBase/Services/Operadores/HealthWorkerService.cs
+++ b/AgroBase/AgroBase/Services/Operadores/HealthWorkerService.cs
@@ -193,6 +193,13 @@ namespace AgroBase.Services.Operadores
bool carroEmMovimento = comandoMovimentoAtivo && velocidadeFisicaAtiva;
+ var estadoDirecional = op.DispMvd?.Dados?
+ .ObterEstadoDirecionalCanonico(
+ op.Controle.TipoMovimento,
+ op.Controle.Angulo,
+ op.Simulando
+ );
+
var bombaLinha = op?.DispAtu?.Dados?.BombaPressurizadora;
double pressaoAlvo = bombaLinha?._PressaoSPControle > 0 ? bombaLinha._PressaoSPControle : op.Parametros?.Controle?.AtuPressaoLinha ?? 0;
double pressaoLinha = bombaLinha?._PressaoAtual ?? _Sensoriamento?.Atuador?.PressaoLinha ?? 0;
@@ -252,6 +259,19 @@ namespace AgroBase.Services.Operadores
percentual_bateria = _Sensoriamento.Bateria?.PercentualBateria ?? 0,
}
),
+ ("Direcional", estadoDirecional != null ? new
+ {
+ tipo_movimento = (int)estadoDirecional.TipoMovimento,
+ angulo_comando = estadoDirecional.AnguloComando,
+ angulo_sp = estadoDirecional.AnguloSP,
+ angulo_fisico = estadoDirecional.AnguloFisico,
+ dispersao = estadoDirecional.Dispersao,
+ rodas_validas = estadoDirecional.RodasValidas,
+ valido = estadoDirecional.Valido,
+ em_transicao = estadoDirecional.EmTransicao,
+ timestamp_unix_ms = estadoDirecional.TimestampUnixMs,
+ } : null
+ ),
("Atuador", new
{
pressao_linha_regular = pressaoLinhaRegular,
@@ -427,6 +447,7 @@ namespace AgroBase.Services.Operadores
tracking_row_hybrid_diagonal_enabled = true,
entry_capture_enabled = false,
tracking_axis_debug = false,
+ atuador_dir_taxa_graus_s = VariaveisEquipamento.VelocidadeAngularDirecionalGrausSegundo
}
}
),
diff --git a/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/direcional.py b/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/direcional.py
index ef81e9b3a..657420ab1 100644
--- a/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/direcional.py
+++ b/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/direcional.py
@@ -143,7 +143,7 @@ def _comando_mapa_gps_mpc(contexto: dict):
parada_necessaria=True,
)
- comando_anterior = _ler_comando_anterior_para_mpc()
+ comando_anterior = _ler_comando_anterior_para_mpc(contexto)
inicio = time.perf_counter()
comando = mpc.compute_receding(contexto, comando_anterior)
@@ -461,6 +461,7 @@ def _comando_mapeamento_visual(contexto: dict):
def _montar_contexto_direcional(*, operacao, controle, contexto_global, equipamento):
trajetoria = _dict(contexto_global.get("Trajetoria", {}))
gerais = _dict(contexto_global.get("Gerais", {}))
+ direcional_fisico = _dict(contexto_global.get("Direcional", {}))
gps_info = _montar_contexto_gps(operacao)
imu_contexto = _montar_contexto_imu_direcional(_dict(ContextoGlobalRedis.get_modulo(T_Code.Imu)))
@@ -513,6 +514,38 @@ def _montar_contexto_direcional(*, operacao, controle, contexto_global, equipame
1,
),
},
+ "Direcional": {
+ "TipoMovimento": _int(
+ direcional_fisico.get(
+ "tipo_movimento",
+ controle.get(
+ "tipo_movimento_direcional",
+ TipoMovimentoDirecional.RodasDianteiras.value,
+ ),
+ ),
+ TipoMovimentoDirecional.RodasDianteiras.value,
+ ),
+ "AnguloComando": _float(
+ direcional_fisico.get("angulo_comando", controle.get("angulo_sp", 0.0)),
+ 0.0,
+ ),
+ "AnguloSP": _float(
+ direcional_fisico.get("angulo_sp", controle.get("angulo_sp", 0.0)),
+ 0.0,
+ ),
+ "AnguloFisico": _float(
+ direcional_fisico.get("angulo_fisico", controle.get("angulo_sp_ant", 0.0)),
+ 0.0,
+ ),
+ "Dispersao": _float(direcional_fisico.get("dispersao", 0.0), 0.0),
+ "RodasValidas": _int(direcional_fisico.get("rodas_validas", 0), 0),
+ "Valido": _bool(direcional_fisico.get("valido", False)),
+ "EmTransicao": _bool(direcional_fisico.get("em_transicao", False)),
+ "TimestampUnixMs": _float(
+ direcional_fisico.get("timestamp_unix_ms", 0.0),
+ 0.0,
+ ),
+ },
"VisualWorker": visual_worker,
"IMU": imu_contexto,
"Equipamento": {
@@ -1125,10 +1158,16 @@ def _montar_comando_retorno(comando, latencia=-1.0):
return comando
-def _ler_comando_anterior_para_mpc():
+def _ler_comando_anterior_para_mpc(contexto=None):
controle = _dict(ContextoGlobalRedis.get_controle())
+ direcional = _dict(_dict(contexto).get("Direcional", {}))
- return {
+ telemetria_valida = _bool(direcional.get("Valido", False))
+ timestamp_ms = _float(direcional.get("TimestampUnixMs", 0.0), 0.0)
+ idade_ms = max(0.0, time.time() * 1000.0 - timestamp_ms) if timestamp_ms > 0 else 1e9
+ telemetria_valida = telemetria_valida and idade_ms <= 1500.0
+
+ comando = {
"angulo": _float(
controle.get("angulo_sp_ant", controle.get("angulo_sp", 0.0)),
0.0,
@@ -1148,6 +1187,25 @@ def _ler_comando_anterior_para_mpc():
),
}
+ comando["angulo_aplicado"] = (
+ _float(direcional.get("AnguloFisico", comando["angulo"]), comando["angulo"])
+ if telemetria_valida else comando["angulo"]
+ )
+ comando["angulo_sp_aplicado"] = (
+ _float(direcional.get("AnguloSP", comando["angulo"]), comando["angulo"])
+ if telemetria_valida else comando["angulo"]
+ )
+ comando["tipo_aplicado"] = (
+ _normalizar_tipo_movimento(direcional.get("TipoMovimento", comando["tipo"]))
+ if telemetria_valida else comando["tipo"]
+ )
+ comando["telemetria_direcional_valida"] = telemetria_valida
+ comando["telemetria_direcional_idade_ms"] = idade_ms
+ comando["telemetria_direcional_dispersao"] = _float(
+ direcional.get("Dispersao", 0.0), 0.0
+ )
+ return comando
+
# ============================================================
# Helpers de matriz
diff --git a/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/mpc.py b/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/mpc.py
index 2234ffd3b..00bf46847 100644
--- a/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/mpc.py
+++ b/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/mpc.py
@@ -450,6 +450,27 @@ class ControladorMPC:
1.0, min_value=0.25, max_value=2.0,
)
+ # V22 - amortecimento exclusivo do handoff antecipado em SaindoRua.
+ #
+ # Nesse estado o rover ja opera a 15% e ainda percorre o trecho reto
+ # antes da Dubins. O Pure Pursuit bruto pode alternar pequenos comandos
+ # de Arco quando a projecao/target cruza de um lado para o outro da
+ # centerline. Aplicamos filtro, rate-limit, deadband e passagem por zero
+ # SOMENTE nessa fase. Ao entrar em Manobrando, o PP continua bruto e
+ # preserva integralmente a autoridade angular validada em campo.
+ self._dubins_saida_filter_tau_s = _safe_float(
+ parametros_mpc.get("dubins_saida_filter_tau_s", 0.30),
+ 0.30, min_value=0.0, max_value=2.0,
+ )
+ self._dubins_saida_rate_graus_s = _safe_float(
+ parametros_mpc.get("dubins_saida_rate_graus_s", 18.0),
+ 18.0, min_value=2.0, max_value=120.0,
+ )
+ self._dubins_saida_deadband_graus = _safe_float(
+ parametros_mpc.get("dubins_saida_deadband_graus", 1.0),
+ 1.0, min_value=0.0, max_value=5.0,
+ )
+
# V18 - handoff antecipado para o Pure Pursuit.
#
# SaindoRua ja nasce alguns metros antes da BordaSaida para reduzir a
@@ -773,6 +794,12 @@ class ControladorMPC:
parametros_mpc.get("cinematica_entre_eixos_m", 0.94),
0.94, min_value=0.20, max_value=4.0,
)
+ # Dinâmica física da direção. O valor comandado é o alvo; o estado
+ # usado na cinemática avança gradualmente a partir da telemetria real.
+ self._atuador_dir_taxa_graus_s = _safe_float(
+ parametros_mpc.get("atuador_dir_taxa_graus_s", 50.0),
+ 50.0, min_value=3.0, max_value=180.0,
+ )
# ------------------------------------------------------------------
# V14 - CURVE TRACK: yaw contínuo quando a própria rua está curvando
@@ -1571,14 +1598,93 @@ class ControladorMPC:
return False
+ def _estabilizar_pp_saindo_rua(
+ self, angulo_desejado_rad, comando_anterior, dt_controle
+ ):
+ """V22: amortece o PP apenas no trecho reto de SaindoRua.
+
+ Regras de seguranca:
+ - limita a taxa angular por segundo;
+ - filtra o comando por primeira ordem;
+ - elimina ruido dentro da deadband;
+ - numa inversao real, passa deliberadamente por zero;
+ - nunca devolve comando no hemisferio oposto ao desejado.
+
+ Manobrando nao chama esta funcao e continua recebendo o PP bruto.
+ """
+ limite = math.radians(float(self.angulo_max_graus))
+ desejado = float(np.clip(angulo_desejado_rad, -limite, limite))
+
+ anterior = math.radians(_safe_float(
+ _as_dict(comando_anterior).get("angulo", 0.0),
+ 0.0,
+ min_value=-self.angulo_max_graus,
+ max_value=self.angulo_max_graus,
+ ))
+ dt = _safe_float(dt_controle, 0.5, min_value=0.05, max_value=1.5)
+ dead = math.radians(float(self._dubins_saida_deadband_graus))
+
+ # Perto de zero, pequenas mudancas de lado da projecao nao devem
+ # movimentar as quatro rodas em Arco enquanto o rover ainda esta reto.
+ if abs(desejado) <= dead:
+ desejado = 0.0
+
+ inversao_significativa = bool(
+ abs(desejado) > dead
+ and abs(anterior) > dead
+ and (desejado * anterior) < 0.0
+ )
+
+ if inversao_significativa:
+ filtrado = 0.0
+ else:
+ tau = float(self._dubins_saida_filter_tau_s)
+ alpha = 1.0 if tau <= 1e-6 else dt / (tau + dt)
+ filtrado = anterior + alpha * (desejado - anterior)
+
+ max_delta = math.radians(
+ float(self._dubins_saida_rate_graus_s)
+ ) * dt
+ filtrado = anterior + float(np.clip(
+ filtrado - anterior,
+ -max_delta,
+ max_delta,
+ ))
+
+ if desejado == 0.0 and abs(filtrado) <= 2.0 * dead:
+ filtrado = 0.0
+
+ # Barreira final contra a manutencao de esterco no sentido antigo.
+ if (
+ abs(desejado) > dead
+ and abs(filtrado) > dead
+ and (desejado * filtrado) < 0.0
+ ):
+ filtrado = 0.0
+
+ return float(np.clip(filtrado, -limite, limite))
+
def _comando_seguidor_dubins(
self, contexto, comando_anterior, x, y, theta, velocidade, status_carro,
idx_alvo_correcao, pos_lat, pos_lon, pos_theta, pos_latencia, ponto_alvo_real
):
- angulo_rad, dbg = self._referencia_seguidor_dubins(
+ angulo_bruto_rad, dbg = self._referencia_seguidor_dubins(
x, y, theta, idx_alvo_correcao, velocidade, contexto
)
+ pp_antecipado = _status_in(
+ status_carro, [StatusCarroMapa.SaindoRua]
+ )
+ angulo_rad = (
+ self._estabilizar_pp_saindo_rua(
+ angulo_bruto_rad,
+ comando_anterior,
+ self.tempo_execucao_local,
+ )
+ if pp_antecipado
+ else float(angulo_bruto_rad)
+ )
+
preview_xy = self._simular_preview_seguidor_dubins(
x, y, theta, idx_alvo_correcao, velocidade, contexto,
self.tempo_execucao_local,
@@ -1620,7 +1726,7 @@ class ControladorMPC:
"debug_seguidor_dubins": {
"modo": (
"pure_pursuit_4ws_antecipado"
- if _status_in(status_carro, [StatusCarroMapa.SaindoRua])
+ if pp_antecipado
else "pure_pursuit_4ws"
),
"lookahead_m": float(dbg["lookahead_m"]),
@@ -1628,7 +1734,9 @@ class ControladorMPC:
"alpha_graus": float(math.degrees(dbg["alpha"])),
"kappa_pp": float(dbg["kappa_pp"]),
"kappa_cmd": float(dbg["kappa_cmd"]),
- "comando_graus": float(math.degrees(dbg["delta_final"])),
+ "comando_bruto_graus": float(math.degrees(angulo_bruto_rad)),
+ "comando_graus": float(math.degrees(angulo_rad)),
+ "amortecimento_saida_ativo": bool(pp_antecipado),
},
"candidatos_testados": 0,
"motivos": [],
@@ -2272,6 +2380,13 @@ class ControladorMPC:
)["omega"]
)
+ def _avancar_atuador_direcional(self, angulo_atual, angulo_alvo, dt):
+ """Aplica limite de velocidade ao estado físico da direção (radianos)."""
+ atual = float(angulo_atual)
+ alvo = float(angulo_alvo)
+ passo_max = np.radians(self._atuador_dir_taxa_graus_s) * max(0.0, float(dt))
+ return float(atual + np.clip(alvo - atual, -passo_max, passo_max))
+
@staticmethod
def _posicoes_eixos_tracking(x, y, theta, entre_eixos):
"""Retorna centros dos eixos dianteiro/traseiro a partir do centro.
@@ -3921,6 +4036,9 @@ class ControladorMPC:
self.dt = old_dt
# --- integra por tempo, quebrando cada trecho em subpassos ~dt ---
+ angulo_estado = float(
+ u_hold.get('angulo_inicial', u_hold.get('angulo', 0.0))
+ )
t_rem = latency_s
for dur_s, u in cmd_seq:
if t_rem <= 0.0:
@@ -3935,7 +4053,18 @@ class ControladorMPC:
for _ in range(n):
if time_left_ms() <= 0.0:
return x, y, theta, visitados
- x, y, theta = aplicar_passo_dt(x, y, theta, u, dt_eff)
+ angulo_estado = self._avancar_atuador_direcional(
+ angulo_estado,
+ u.get('angulo', angulo_estado),
+ dt_eff,
+ )
+ u_aplicado = dict(u)
+ u_aplicado['angulo'] = angulo_estado
+ # omega precisa acompanhar o ângulo físico, não o alvo antigo.
+ u_aplicado.pop('omega', None)
+ x, y, theta = aplicar_passo_dt(
+ x, y, theta, u_aplicado, dt_eff
+ )
idx_alvo = self._corrigir_pontos_visitados(
x,
y,
@@ -4190,19 +4319,31 @@ class ControladorMPC:
# -------------------- Correção por latência (vida real) --------------------
# Mantém correção com 'self.dt' e 'velocidade' REAIS
u_hold = {
- "tipo": comando_anterior.get("tipo"),
- "angulo": np.radians(comando_anterior.get("angulo", 0.0)),
+ "tipo": comando_anterior.get(
+ "tipo_aplicado", comando_anterior.get("tipo")
+ ),
+ "angulo": np.radians(
+ comando_anterior.get(
+ "angulo_sp_aplicado",
+ comando_anterior.get("angulo", 0.0),
+ )
+ ),
+ "angulo_inicial": np.radians(
+ comando_anterior.get(
+ "angulo_aplicado",
+ comando_anterior.get("angulo", 0.0),
+ )
+ ),
"v": velocidade,
- "omega": self._calcular_omega_4ws(
- velocidade,
- np.radians(comando_anterior.get("angulo", 0.0)),
- comando_anterior.get("tipo")
- )
}
cmd_seq = None
+ latencia_compensada_s = min(
+ pos_latencia + self.tempo_execucao_local,
+ LAT_MAX,
+ )
x, y, theta, self.visitados_execucao = self.corrigir_pose_por_latencia(
x, y, theta, self.visitados_execucao,
- latency_s=min(pos_latencia + self.tempo_execucao_local, LAT_MAX),
+ latency_s=latencia_compensada_s,
dt=self.dt,
nova_posicao_fn=self._nova_posicao,
u_hold=u_hold,
@@ -4210,6 +4351,19 @@ class ControladorMPC:
time_left_ms=lambda: (deadline - now()) * 1000.0,
calc_omega_fn=self._calcular_omega_4ws
)
+
+ # A pose acima já foi trazida até o presente. O estado inicial do
+ # beam search precisa avançar pelo mesmo intervalo para não voltar
+ # ao ângulo físico antigo recebido junto com a posição GNSS.
+ angulo_aplicado_estimado = self._avancar_atuador_direcional(
+ u_hold["angulo_inicial"],
+ u_hold["angulo"],
+ latencia_compensada_s,
+ )
+ comando_anterior = dict(comando_anterior)
+ comando_anterior["angulo_aplicado"] = float(
+ np.degrees(angulo_aplicado_estimado)
+ )
idx_alvo_correcao = self._corrigir_pontos_visitados(
x,
y,
@@ -4407,6 +4561,12 @@ class ControladorMPC:
"x": x, "y": y, "theta": theta,
"custo": 0.0,
"comandos": [(tipo_anterior, angulo_anterior)],
+ "angulo_atuador": np.radians(
+ comando_anterior.get(
+ "angulo_aplicado",
+ comando_anterior.get("angulo", 0.0),
+ )
+ ),
"trajetoria": [],
"visitados": self.visitados_execucao,
"inicial": True
@@ -4433,6 +4593,10 @@ class ControladorMPC:
cmd_anterior_local = {
"tipo": candidato["comandos"][-1][0],
"angulo": candidato["comandos"][-1][1],
+ "angulo_aplicado": candidato.get(
+ "angulo_atuador",
+ candidato["comandos"][-1][1],
+ ),
}
#look_ahead = passo > 2 and status_carro not in [StatusCarroMapa.Manobrando.value, StatusCarroMapa.Direcionando.value]
@@ -4525,7 +4689,7 @@ class ControladorMPC:
t_c_ini = now()
try:
# >>> CHANGED: passa dt_pred e v_sim para a simulação de um PASSO
- custo, sim, valido, visitados_sim, _debug_custo = self._simular_passo(
+ custo, sim, valido, visitados_sim, _debug_custo, angulo_atuador_final = self._simular_passo(
x_atual, y_atual, theta_atual,
tipo_k, ang_k,
custos_candidatos,
@@ -4543,6 +4707,7 @@ class ControladorMPC:
"x": x_f, "y": y_f, "theta": theta_f,
"custo": candidato["custo"] + float(custo),
"comandos": candidato["comandos"] + [(tipo_k, ang_k)],
+ "angulo_atuador": angulo_atuador_final,
"trajetoria": candidato["trajetoria"] + sim,
"visitados": visitados_sim,
"inicial": False
@@ -5789,6 +5954,9 @@ class ControladorMPC:
simulacoes = []
prev_ang = float(comando_anterior.get("angulo", 0.0))
prev_tipo = comando_anterior.get("tipo", TipoMovimentoDirecional.RodasDianteiras.value)
+ angulo_atuador = float(
+ comando_anterior.get("angulo_aplicado", prev_ang)
+ )
pontos_visitados = visitados.copy()
# chave para custo heurístico vindo do VisualWorker (por ângulo/tipo)
@@ -5822,8 +5990,6 @@ class ControladorMPC:
custo_visual_worker = 0.0
# omega e sub-stepping
- omega_const = self._calcular_omega_4ws(v_planejado, angulo_testado, tipo)
-
#passos_local = max(1, int(getattr(self, "passos_horizonte_local", 1)))
#dt_total = float(dt_pred) * passos_local
#SUB_MAX = float(getattr(self, "_dt_sub_max", 0.15)) # ~150 ms por subpasso (ajuste teu comentário)
@@ -5846,11 +6012,21 @@ class ControladorMPC:
side_mem_local = 0
for n_sub in range(n_subs):
+ angulo_atuador = self._avancar_atuador_direcional(
+ angulo_atuador,
+ angulo_testado,
+ sub_dt,
+ )
+ omega_aplicado = self._calcular_omega_4ws(
+ v_planejado,
+ angulo_atuador,
+ tipo,
+ )
# IMPORTANTE: _nova_posicao precisa aceitar dt opcional
x_sim, y_sim, theta_sim = self._nova_posicao(
x_sim, y_sim, theta_sim,
- omega_const, v_planejado, # (omega, v, tipo, angulo)
- tipo, angulo_testado,
+ omega_aplicado, v_planejado,
+ tipo, angulo_atuador,
dt=sub_dt
)
@@ -6004,7 +6180,7 @@ class ControladorMPC:
#print(
# f"ang:{np.degrees(angulo_testado):.2f} "
- # f"tipo:{tipo.name} omg:{omega_const:.3f} "
+ # f"tipo:{tipo.name} omg:{omega_aplicado:.3f} "
# f"xsim:{finais[0]:.5f} ysim:{finais[1]:.5f} tsim:{finais[2]:.5f} "
# f"xalv:{finais[3]:.5f} yalv:{finais[4]:.5f} "
# f"epos:{somas[5]:.4f} eposn:{somas[6]:.4f} "
@@ -6021,7 +6197,7 @@ class ControladorMPC:
debug_custo = {
"angulo": np.degrees(angulo_testado),
"tipo": tipo.value,
- "omega": omega_const,
+ "omega": omega_aplicado,
"x_sim": finais[0],
"y_sim": finais[1],
"theta_sim": finais[2],
@@ -6057,11 +6233,21 @@ class ControladorMPC:
}
#print(custo_visual_worker)
- return float(custo_total), simulacoes, True, pontos_visitados, debug_custo
+ debug_custo["atuador_direcional"] = {
+ "angulo_inicial_deg": float(np.degrees(
+ comando_anterior.get("angulo_aplicado", prev_ang)
+ )),
+ "angulo_alvo_deg": float(np.degrees(angulo_testado)),
+ "angulo_final_deg": float(np.degrees(angulo_atuador)),
+ "taxa_graus_s": float(self._atuador_dir_taxa_graus_s),
+ }
+ return float(custo_total), simulacoes, True, pontos_visitados, debug_custo, angulo_atuador
except Exception as e:
mostrar_log(f"Erro ao simular passo para {tipo.name} | angulo: {np.degrees(angulo_testado):.2f}: {e}")
- return float('inf'), [(0.0, 0.0, 0.0)], False, visitados
+ return float('inf'), [(0.0, 0.0, 0.0)], False, visitados, {}, float(
+ comando_anterior.get("angulo_aplicado", comando_anterior.get("angulo", 0.0))
+ )
def _nova_posicao(self, x, y, theta, omega, velocidade, tipo, angulo_rad, dt=None):
"""V16: integra UM passo com a cinemática 4WS unificada.
diff --git a/Mapas/Empyreo_Novo/LineFeature_operacional.geojson b/Mapas/Empyreo_Novo/LineFeature_operacional.geojson
new file mode 100644
index 000000000..d85586781
--- /dev/null
+++ b/Mapas/Empyreo_Novo/LineFeature_operacional.geojson
@@ -0,0 +1,30621 @@
+{
+ "type": "FeatureCollection",
+ "features": [
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "1",
+ "Name": "Curvas",
+ "Length": 190.61237200956413,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "1",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38272396382754,
+ -22.22264660911407
+ ],
+ [
+ -47.382800723403584,
+ -22.22264783282561
+ ],
+ [
+ -47.382874407715136,
+ -22.222649714409375
+ ],
+ [
+ -47.38292433519585,
+ -22.222650078926023
+ ],
+ [
+ -47.3829759379427,
+ -22.22264889203026
+ ],
+ [
+ -47.38302864610719,
+ -22.222646417581153
+ ],
+ [
+ -47.383080571948575,
+ -22.22264371928542
+ ],
+ [
+ -47.3831331571162,
+ -22.22264108837022
+ ],
+ [
+ -47.38318677358014,
+ -22.2226381872763
+ ],
+ [
+ -47.383240577754634,
+ -22.222635307281188
+ ],
+ [
+ -47.383294678149014,
+ -22.22263230449033
+ ],
+ [
+ -47.38334949155487,
+ -22.222630114738422
+ ],
+ [
+ -47.383404361111985,
+ -22.222629253628217
+ ],
+ [
+ -47.383458501304666,
+ -22.222629235284977
+ ],
+ [
+ -47.38351336660817,
+ -22.22263082486303
+ ],
+ [
+ -47.38356858352806,
+ -22.22263481368104
+ ],
+ [
+ -47.38359653608833,
+ -22.222637464674097
+ ],
+ [
+ -47.383623079632535,
+ -22.222639639850794
+ ],
+ [
+ -47.38365182800333,
+ -22.22264263008437
+ ],
+ [
+ -47.383679567256564,
+ -22.222646274152808
+ ],
+ [
+ -47.38370732337677,
+ -22.222650692246976
+ ],
+ [
+ -47.38373482566008,
+ -22.222655368677803
+ ],
+ [
+ -47.383762468856986,
+ -22.22266068574572
+ ],
+ [
+ -47.38378933107237,
+ -22.2226659114182
+ ],
+ [
+ -47.38381561387316,
+ -22.22267098326624
+ ],
+ [
+ -47.383843396125535,
+ -22.222676368487697
+ ],
+ [
+ -47.38387131308481,
+ -22.222682042932618
+ ],
+ [
+ -47.38389924495207,
+ -22.222687890093074
+ ],
+ [
+ -47.38392665685693,
+ -22.222694462480252
+ ],
+ [
+ -47.38395384255045,
+ -22.222701002967696
+ ],
+ [
+ -47.383981447904205,
+ -22.222708587739987
+ ],
+ [
+ -47.3840077437564,
+ -22.222715261525963
+ ],
+ [
+ -47.384036037935566,
+ -22.222722819313002
+ ],
+ [
+ -47.384063652025226,
+ -22.222730784919325
+ ],
+ [
+ -47.38409136763376,
+ -22.22273798824856
+ ],
+ [
+ -47.38411819310122,
+ -22.222745970875163
+ ],
+ [
+ -47.38414557588625,
+ -22.22275439409586
+ ],
+ [
+ -47.38417286273566,
+ -22.222762759928194
+ ],
+ [
+ -47.384198483379386,
+ -22.22277074659626
+ ],
+ [
+ -47.38422565151848,
+ -22.222778755524743
+ ],
+ [
+ -47.38425186554105,
+ -22.222786568048885
+ ],
+ [
+ -47.38427877114772,
+ -22.22279558938517
+ ],
+ [
+ -47.38430588567588,
+ -22.222804087437996
+ ],
+ [
+ -47.384330950776196,
+ -22.222811351289323
+ ],
+ [
+ -47.384358661224546,
+ -22.222820238157087
+ ],
+ [
+ -47.384383741996395,
+ -22.222827332980625
+ ],
+ [
+ -47.38440968491608,
+ -22.222835515898286
+ ],
+ [
+ -47.38443515615458,
+ -22.22284311179171
+ ],
+ [
+ -47.384459940384865,
+ -22.22285183451349
+ ],
+ [
+ -47.384482537811834,
+ -22.222858611426595
+ ],
+ [
+ -47.38450289993335,
+ -22.222865747076522
+ ],
+ [
+ -47.38451747678467,
+ -22.222870795753902
+ ],
+ [
+ -47.384537713577274,
+ -22.22287618610149
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "2",
+ "Name": "Curvas",
+ "Length": 190.89999048068972,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "2",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382731533025286,
+ -22.222633186415344
+ ],
+ [
+ -47.38280104727575,
+ -22.22263429461992
+ ],
+ [
+ -47.38287466412836,
+ -22.222636174481746
+ ],
+ [
+ -47.38292421259631,
+ -22.222636536231686
+ ],
+ [
+ -47.382975392063386,
+ -22.222635359072044
+ ],
+ [
+ -47.38302787467091,
+ -22.222632895212406
+ ],
+ [
+ -47.38307977651767,
+ -22.22263019816397
+ ],
+ [
+ -47.383132345019256,
+ -22.222627568083052
+ ],
+ [
+ -47.383185929792496,
+ -22.222624668704306
+ ],
+ [
+ -47.38323972763785,
+ -22.222621789045803
+ ],
+ [
+ -47.383293933629474,
+ -22.222618780394306
+ ],
+ [
+ -47.383349057194714,
+ -22.222616578252225
+ ],
+ [
+ -47.38340423590093,
+ -22.22261571229078
+ ],
+ [
+ -47.38345872488867,
+ -22.222615693829812
+ ],
+ [
+ -47.3835141557277,
+ -22.22261729979324
+ ],
+ [
+ -47.383569883149576,
+ -22.22262132548992
+ ],
+ [
+ -47.38359791063892,
+ -22.222623983589436
+ ],
+ [
+ -47.383624524768145,
+ -22.2226261645506
+ ],
+ [
+ -47.38365365171937,
+ -22.222629194162096
+ ],
+ [
+ -47.3836818091413,
+ -22.222632893165045
+ ],
+ [
+ -47.383709855341586,
+ -22.222637357433108
+ ],
+ [
+ -47.38373760370259,
+ -22.222642075706702
+ ],
+ [
+ -47.383765427364075,
+ -22.222647427486557
+ ],
+ [
+ -47.38379229416747,
+ -22.222652654051796
+ ],
+ [
+ -47.38381856550213,
+ -22.222657723687384
+ ],
+ [
+ -47.383846429363324,
+ -22.222663124722363
+ ],
+ [
+ -47.383874459299285,
+ -22.22266882213134
+ ],
+ [
+ -47.38390265441131,
+ -22.22267472439876
+ ],
+ [
+ -47.38393028380824,
+ -22.22268134893291
+ ],
+ [
+ -47.38395772118298,
+ -22.222687949966623
+ ],
+ [
+ -47.383985418998094,
+ -22.222695560143585
+ ],
+ [
+ -47.38401166175174,
+ -22.22270222045352
+ ],
+ [
+ -47.38404019582808,
+ -22.2227098423208
+ ],
+ [
+ -47.38406776008862,
+ -22.222717793553553
+ ],
+ [
+ -47.384095538102834,
+ -22.222725013102256
+ ],
+ [
+ -47.38412268832632,
+ -22.222733092368806
+ ],
+ [
+ -47.38415013841243,
+ -22.22274153629217
+ ],
+ [
+ -47.384177445934675,
+ -22.22274990845575
+ ],
+ [
+ -47.38420298745656,
+ -22.222757870459503
+ ],
+ [
+ -47.3842300634662,
+ -22.2227658522292
+ ],
+ [
+ -47.38425654783707,
+ -22.22277374532498
+ ],
+ [
+ -47.38428355551484,
+ -22.222782800885454
+ ],
+ [
+ -47.38431036739517,
+ -22.222791204084597
+ ],
+ [
+ -47.38433548122902,
+ -22.222798482059
+ ],
+ [
+ -47.38436314497627,
+ -22.222807353949733
+ ],
+ [
+ -47.38438819037379,
+ -22.222814438766743
+ ],
+ [
+ -47.384414236684364,
+ -22.222822654296163
+ ],
+ [
+ -47.38443994874848,
+ -22.222830322007397
+ ],
+ [
+ -47.38446474413228,
+ -22.222839048654823
+ ],
+ [
+ -47.3844873317328,
+ -22.222845822621085
+ ],
+ [
+ -47.384507996935255,
+ -22.222853064482063
+ ],
+ [
+ -47.384522019132,
+ -22.222857921055503
+ ],
+ [
+ -47.384547778989806,
+ -22.222864782546914
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "3",
+ "Name": "Curvas",
+ "Length": 191.187608947692,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "3",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3827391022217,
+ -22.222619763716338
+ ],
+ [
+ -47.38280137114797,
+ -22.2226207564142
+ ],
+ [
+ -47.38287492054166,
+ -22.22262263455409
+ ],
+ [
+ -47.38292408999691,
+ -22.22262299353731
+ ],
+ [
+ -47.3829748461843,
+ -22.22262182611379
+ ],
+ [
+ -47.3830271032349,
+ -22.222619372843607
+ ],
+ [
+ -47.383078981087046,
+ -22.22261667704247
+ ],
+ [
+ -47.3831315329226,
+ -22.222614047795844
+ ],
+ [
+ -47.38318508600514,
+ -22.22261115013227
+ ],
+ [
+ -47.38323887752324,
+ -22.222608270810262
+ ],
+ [
+ -47.38329318911021,
+ -22.222605256298245
+ ],
+ [
+ -47.383348622834774,
+ -22.22260304176602
+ ],
+ [
+ -47.38340411069004,
+ -22.22260217095335
+ ],
+ [
+ -47.38345894847275,
+ -22.22260215237464
+ ],
+ [
+ -47.38351494484721,
+ -22.222603774723417
+ ],
+ [
+ -47.38357118277097,
+ -22.222607837298813
+ ],
+ [
+ -47.383599285189355,
+ -22.222610502504782
+ ],
+ [
+ -47.383625969903605,
+ -22.222612689250443
+ ],
+ [
+ -47.383655475435184,
+ -22.222615758239815
+ ],
+ [
+ -47.38368405102574,
+ -22.22261951217726
+ ],
+ [
+ -47.383712387306055,
+ -22.222624022619204
+ ],
+ [
+ -47.3837403817447,
+ -22.222628782735544
+ ],
+ [
+ -47.38376838587073,
+ -22.22263416922735
+ ],
+ [
+ -47.38379525726212,
+ -22.222639396685338
+ ],
+ [
+ -47.38382151713067,
+ -22.222644464108516
+ ],
+ [
+ -47.38384946260784,
+ -22.22264988095849
+ ],
+ [
+ -47.38387760551326,
+ -22.222655601330022
+ ],
+ [
+ -47.383906063870036,
+ -22.22266155870438
+ ],
+ [
+ -47.383933910759005,
+ -22.222668235385555
+ ],
+ [
+ -47.38396159982101,
+ -22.222674896967202
+ ],
+ [
+ -47.38398939009137,
+ -22.222682532547136
+ ],
+ [
+ -47.38401557974646,
+ -22.22268917938103
+ ],
+ [
+ -47.38404435371993,
+ -22.222696865328533
+ ],
+ [
+ -47.38407186815136,
+ -22.2227048021877
+ ],
+ [
+ -47.384099708571235,
+ -22.222712037955908
+ ],
+ [
+ -47.38412718355071,
+ -22.22272021386238
+ ],
+ [
+ -47.384154700937884,
+ -22.22272867848842
+ ],
+ [
+ -47.38418202914149,
+ -22.22273705698589
+ ],
+ [
+ -47.384207491533004,
+ -22.222744994322692
+ ],
+ [
+ -47.3842344754132,
+ -22.222752948933582
+ ],
+ [
+ -47.384261230132324,
+ -22.222760922600973
+ ],
+ [
+ -47.384288339881195,
+ -22.22277001238568
+ ],
+ [
+ -47.38431484911376,
+ -22.22277832073114
+ ],
+ [
+ -47.38434001168113,
+ -22.222785612828616
+ ],
+ [
+ -47.3843676287273,
+ -22.222794469742315
+ ],
+ [
+ -47.3843926387505,
+ -22.222801544552812
+ ],
+ [
+ -47.38441878845191,
+ -22.222809792693972
+ ],
+ [
+ -47.38444474134159,
+ -22.222817532223026
+ ],
+ [
+ -47.38446954787892,
+ -22.222826262796076
+ ],
+ [
+ -47.38449212565299,
+ -22.222833033815512
+ ],
+ [
+ -47.38451309393635,
+ -22.22284038188751
+ ],
+ [
+ -47.3845265614786,
+ -22.222845046357033
+ ],
+ [
+ -47.384557844400746,
+ -22.222853378991847
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "4",
+ "Name": "Curvas",
+ "Length": 191.47522741301307,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "4",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382746671416754,
+ -22.222606341017123
+ ],
+ [
+ -47.38280169502028,
+ -22.22260721820848
+ ],
+ [
+ -47.38287517695505,
+ -22.22260909462643
+ ],
+ [
+ -47.38292396739767,
+ -22.222609450842928
+ ],
+ [
+ -47.38297430030546,
+ -22.222608293155513
+ ],
+ [
+ -47.383026331799186,
+ -22.222605850474785
+ ],
+ [
+ -47.383078185656714,
+ -22.222603155920947
+ ],
+ [
+ -47.38313072082623,
+ -22.22260052750859
+ ],
+ [
+ -47.38318424221808,
+ -22.2225976315602
+ ],
+ [
+ -47.383238027406286,
+ -22.222594752574842
+ ],
+ [
+ -47.383292444591234,
+ -22.22259173220214
+ ],
+ [
+ -47.383348188475054,
+ -22.222589505279764
+ ],
+ [
+ -47.383403985479305,
+ -22.222588629615856
+ ],
+ [
+ -47.383459172056924,
+ -22.22258861091944
+ ],
+ [
+ -47.383515733966696,
+ -22.2225902496536
+ ],
+ [
+ -47.38357248239225,
+ -22.222594349107684
+ ],
+ [
+ -47.38360065973968,
+ -22.222597021420103
+ ],
+ [
+ -47.383627415038916,
+ -22.222599213950232
+ ],
+ [
+ -47.38365729915078,
+ -22.22260232231752
+ ],
+ [
+ -47.383686292909886,
+ -22.22260613118948
+ ],
+ [
+ -47.38371491927016,
+ -22.222610687805307
+ ],
+ [
+ -47.383743159786405,
+ -22.222615489764404
+ ],
+ [
+ -47.38377134437695,
+ -22.222620910968146
+ ],
+ [
+ -47.38379822035635,
+ -22.222626139318887
+ ],
+ [
+ -47.38382446875877,
+ -22.222631204529623
+ ],
+ [
+ -47.38385249584189,
+ -22.22263663719252
+ ],
+ [
+ -47.383880751726785,
+ -22.222642380528686
+ ],
+ [
+ -47.38390947332823,
+ -22.222648393009997
+ ],
+ [
+ -47.3839375377092,
+ -22.222655121838137
+ ],
+ [
+ -47.38396547844996,
+ -22.222661843965376
+ ],
+ [
+ -47.38399336118401,
+ -22.222669504950645
+ ],
+ [
+ -47.38401949774058,
+ -22.222676138308493
+ ],
+ [
+ -47.384048511611134,
+ -22.22268388833621
+ ],
+ [
+ -47.38407597621346,
+ -22.222691810821807
+ ],
+ [
+ -47.384103879039,
+ -22.222699062809507
+ ],
+ [
+ -47.38413167877438,
+ -22.22270733535589
+ ],
+ [
+ -47.384159263462614,
+ -22.222715820684588
+ ],
+ [
+ -47.38418661233565,
+ -22.222724205512236
+ ],
+ [
+ -47.38421199560874,
+ -22.22273211818579
+ ],
+ [
+ -47.384238887359516,
+ -22.222740045637895
+ ],
+ [
+ -47.384265912426855,
+ -22.222748099876906
+ ],
+ [
+ -47.38429312424679,
+ -22.2227572238858
+ ],
+ [
+ -47.384319330831616,
+ -22.222765437377607
+ ],
+ [
+ -47.384344542132524,
+ -22.22277274359817
+ ],
+ [
+ -47.38437211247761,
+ -22.222781585534836
+ ],
+ [
+ -47.38439708712649,
+ -22.2227886503388
+ ],
+ [
+ -47.384423340218746,
+ -22.2227969310917
+ ],
+ [
+ -47.38444953393395,
+ -22.22280474243855
+ ],
+ [
+ -47.38447435162481,
+ -22.222813476937244
+ ],
+ [
+ -47.38449691957242,
+ -22.22282024500984
+ ],
+ [
+ -47.38451819093661,
+ -22.22282769929286
+ ],
+ [
+ -47.384531103824486,
+ -22.222832171658503
+ ],
+ [
+ -47.38456790981008,
+ -22.222841975436285
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "5",
+ "Name": "Curvas",
+ "Length": 191.7628458750475,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "5",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38275424061045,
+ -22.22259291831764
+ ],
+ [
+ -47.38280201889263,
+ -22.222593680002745
+ ],
+ [
+ -47.38287543336851,
+ -22.222595554698763
+ ],
+ [
+ -47.38292384479858,
+ -22.22259590814853
+ ],
+ [
+ -47.38297375442684,
+ -22.222594760197207
+ ],
+ [
+ -47.38302556036371,
+ -22.222592328105925
+ ],
+ [
+ -47.383077390226646,
+ -22.222589634799384
+ ],
+ [
+ -47.38312990873013,
+ -22.222587007221296
+ ],
+ [
+ -47.38318339843131,
+ -22.22258411298807
+ ],
+ [
+ -47.383237177293026,
+ -22.222581234339184
+ ],
+ [
+ -47.38329170007252,
+ -22.222578208106015
+ ],
+ [
+ -47.38334775411553,
+ -22.222575968793482
+ ],
+ [
+ -47.38340386026871,
+ -22.22257508827838
+ ],
+ [
+ -47.38345939564118,
+ -22.222575069464224
+ ],
+ [
+ -47.38351652308617,
+ -22.22257672458376
+ ],
+ [
+ -47.383573782013414,
+ -22.22258086091653
+ ],
+ [
+ -47.383602034289865,
+ -22.222583540335435
+ ],
+ [
+ -47.383628860174056,
+ -22.22258573865004
+ ],
+ [
+ -47.383659122866135,
+ -22.222588886395258
+ ],
+ [
+ -47.38368853479374,
+ -22.222592750201677
+ ],
+ [
+ -47.38371745123389,
+ -22.222597352991368
+ ],
+ [
+ -47.38374593782772,
+ -22.22260219679322
+ ],
+ [
+ -47.383774302882735,
+ -22.2226076527089
+ ],
+ [
+ -47.383801183450124,
+ -22.222612881952383
+ ],
+ [
+ -47.383827420386424,
+ -22.22261794495073
+ ],
+ [
+ -47.383855529088336,
+ -22.222623393429146
+ ],
+ [
+ -47.38388389793984,
+ -22.222629159727312
+ ],
+ [
+ -47.383912882785914,
+ -22.22263522731558
+ ],
+ [
+ -47.383941164658815,
+ -22.2226420082907
+ ],
+ [
+ -47.38396935708913,
+ -22.22264879096649
+ ],
+ [
+ -47.38399733227603,
+ -22.22265647735409
+ ],
+ [
+ -47.384023415734084,
+ -22.22266309723594
+ ],
+ [
+ -47.38405266950166,
+ -22.22267091134382
+ ],
+ [
+ -47.38408008427489,
+ -22.22267881945587
+ ],
+ [
+ -47.3841080495061,
+ -22.222686087663053
+ ],
+ [
+ -47.38413617399734,
+ -22.22269445684932
+ ],
+ [
+ -47.38416382598661,
+ -22.222702962880682
+ ],
+ [
+ -47.384191195544375,
+ -22.222711354043277
+ ],
+ [
+ -47.38421649968376,
+ -22.22271924204883
+ ],
+ [
+ -47.38424329930513,
+ -22.222727142342173
+ ],
+ [
+ -47.38427059472065,
+ -22.22273527715276
+ ],
+ [
+ -47.38429790861161,
+ -22.22274443538584
+ ],
+ [
+ -47.38432381254876,
+ -22.22275255402403
+ ],
+ [
+ -47.38434907258318,
+ -22.222759874367668
+ ],
+ [
+ -47.38437659622719,
+ -22.222768701327272
+ ],
+ [
+ -47.38440153550174,
+ -22.222775756124726
+ ],
+ [
+ -47.38442789198486,
+ -22.222784069489364
+ ],
+ [
+ -47.38445432652555,
+ -22.222791952654013
+ ],
+ [
+ -47.38447915536991,
+ -22.22280069107833
+ ],
+ [
+ -47.38450171349108,
+ -22.222807456204084
+ ],
+ [
+ -47.38452328793605,
+ -22.222815016698114
+ ],
+ [
+ -47.384535646169645,
+ -22.222819296959884
+ ],
+ [
+ -47.384577975217816,
+ -22.222830571880223
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "6",
+ "Name": "Curvas",
+ "Length": 192.0504643350901,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "6",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38276180980281,
+ -22.22257949561792
+ ],
+ [
+ -47.38280234276508,
+ -22.22258014179699
+ ],
+ [
+ -47.38287568978207,
+ -22.222582014771067
+ ],
+ [
+ -47.382923722199656,
+ -22.222582365454098
+ ],
+ [
+ -47.38297320854848,
+ -22.22258122723887
+ ],
+ [
+ -47.38302478892855,
+ -22.22257880573703
+ ],
+ [
+ -47.38307659479687,
+ -22.222576113677782
+ ],
+ [
+ -47.38312909663434,
+ -22.222573486933968
+ ],
+ [
+ -47.38318255464483,
+ -22.222570594415917
+ ],
+ [
+ -47.38323632717591,
+ -22.222567716103725
+ ],
+ [
+ -47.38329095555409,
+ -22.22256468400983
+ ],
+ [
+ -47.38334731975625,
+ -22.222562432307168
+ ],
+ [
+ -47.38340373505828,
+ -22.22256154694084
+ ],
+ [
+ -47.38345961922553,
+ -22.22256152800899
+ ],
+ [
+ -47.38351731220562,
+ -22.22256319951392
+ ],
+ [
+ -47.38357508163446,
+ -22.222567372725372
+ ],
+ [
+ -47.38360340883992,
+ -22.22257005925074
+ ],
+ [
+ -47.38363030530907,
+ -22.22257226334981
+ ],
+ [
+ -47.38366094658128,
+ -22.222575450472945
+ ],
+ [
+ -47.383690776677284,
+ -22.22257936921386
+ ],
+ [
+ -47.38371998319729,
+ -22.222584018177436
+ ],
+ [
+ -47.38374871586863,
+ -22.22258890382203
+ ],
+ [
+ -47.38377726138809,
+ -22.22259439444964
+ ],
+ [
+ -47.38380414654348,
+ -22.22259962458587
+ ],
+ [
+ -47.38383037201366,
+ -22.22260468537178
+ ],
+ [
+ -47.38385856231866,
+ -22.22261014966256
+ ],
+ [
+ -47.383887044152424,
+ -22.22261593892592
+ ],
+ [
+ -47.383916292243086,
+ -22.22262206162112
+ ],
+ [
+ -47.383944791607895,
+ -22.222628894743202
+ ],
+ [
+ -47.38397323571457,
+ -22.22263573796394
+ ],
+ [
+ -47.384001303367434,
+ -22.222643449757488
+ ],
+ [
+ -47.384027333726976,
+ -22.2226500561633
+ ],
+ [
+ -47.38405682739155,
+ -22.22265793435139
+ ],
+ [
+ -47.3840841923357,
+ -22.222665828089863
+ ],
+ [
+ -47.38411221997254,
+ -22.22267311251653
+ ],
+ [
+ -47.38414066921958,
+ -22.222681578342684
+ ],
+ [
+ -47.384168388509885,
+ -22.2226901050767
+ ],
+ [
+ -47.384195778733684,
+ -22.222698502568417
+ ],
+ [
+ -47.38422100375808,
+ -22.222706365911794
+ ],
+ [
+ -47.38424771125004,
+ -22.222714239046354
+ ],
+ [
+ -47.38427527701368,
+ -22.22272245442854
+ ],
+ [
+ -47.38430269297567,
+ -22.222731646885798
+ ],
+ [
+ -47.384328294265195,
+ -22.22273967067035
+ ],
+ [
+ -47.38435360303312,
+ -22.222747005137062
+ ],
+ [
+ -47.38438107997607,
+ -22.22275581711965
+ ],
+ [
+ -47.38440598387631,
+ -22.222762861910592
+ ],
+ [
+ -47.38443244375025,
+ -22.22277120788695
+ ],
+ [
+ -47.38445911911638,
+ -22.22277916286937
+ ],
+ [
+ -47.384483959114256,
+ -22.222787905219327
+ ],
+ [
+ -47.38450650740898,
+ -22.22279466739824
+ ],
+ [
+ -47.384528384934676,
+ -22.222802334103253
+ ],
+ [
+ -47.38454018851407,
+ -22.22280642226118
+ ],
+ [
+ -47.38458804062395,
+ -22.222819168323678
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "7",
+ "Name": "Curvas",
+ "Length": 192.32059643171945,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "7",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382769556529894,
+ -22.222565758087253
+ ],
+ [
+ -47.38287594619572,
+ -22.222568474843328
+ ],
+ [
+ -47.38292359960088,
+ -22.22256882275964
+ ],
+ [
+ -47.38297266267033,
+ -22.222567694280514
+ ],
+ [
+ -47.38302401749366,
+ -22.222565283368098
+ ],
+ [
+ -47.383075799367376,
+ -22.22256259255614
+ ],
+ [
+ -47.38312828453883,
+ -22.22255996664662
+ ],
+ [
+ -47.38318171085864,
+ -22.222557075843724
+ ],
+ [
+ -47.383235477064005,
+ -22.222554197867968
+ ],
+ [
+ -47.38329021103592,
+ -22.222551159913618
+ ],
+ [
+ -47.383346885397174,
+ -22.222548895820818
+ ],
+ [
+ -47.383403609847996,
+ -22.22254800560332
+ ],
+ [
+ -47.38345984280998,
+ -22.222547986553742
+ ],
+ [
+ -47.383518101325045,
+ -22.22254967444406
+ ],
+ [
+ -47.383576381255374,
+ -22.22255388453421
+ ],
+ [
+ -47.383604783389835,
+ -22.222556578166063
+ ],
+ [
+ -47.38363175044392,
+ -22.222558788049593
+ ],
+ [
+ -47.38366277029622,
+ -22.22256201455064
+ ],
+ [
+ -47.38369301856053,
+ -22.22256598822602
+ ],
+ [
+ -47.38372251516031,
+ -22.222570683363465
+ ],
+ [
+ -47.38375149390912,
+ -22.2225756108508
+ ],
+ [
+ -47.383780219893,
+ -22.222581136190364
+ ],
+ [
+ -47.3838071096364,
+ -22.222586367219343
+ ],
+ [
+ -47.38383332364047,
+ -22.222591425792814
+ ],
+ [
+ -47.38386159556701,
+ -22.22259690589975
+ ],
+ [
+ -47.38389019036452,
+ -22.222602718124488
+ ],
+ [
+ -47.38391970169972,
+ -22.222608895926616
+ ],
+ [
+ -47.38394841855642,
+ -22.22261578119569
+ ],
+ [
+ -47.38397711435478,
+ -22.2226226849656
+ ],
+ [
+ -47.3840052744582,
+ -22.222630422160833
+ ],
+ [
+ -47.384031251719236,
+ -22.222637015090612
+ ],
+ [
+ -47.384060985280776,
+ -22.222644957358888
+ ],
+ [
+ -47.384088300395845,
+ -22.22265283672381
+ ],
+ [
+ -47.384116390438294,
+ -22.222660137369946
+ ],
+ [
+ -47.384145164441094,
+ -22.22266869983596
+ ],
+ [
+ -47.38417295103243,
+ -22.222677247272664
+ ],
+ [
+ -47.384200361944366,
+ -22.222685651100377
+ ],
+ [
+ -47.384225507831665,
+ -22.222693489774656
+ ],
+ [
+ -47.38425212319425,
+ -22.222701335750486
+ ],
+ [
+ -47.38427995930597,
+ -22.222709631704234
+ ],
+ [
+ -47.38430747733896,
+ -22.22271885838569
+ ],
+ [
+ -47.38433277598093,
+ -22.22272678731663
+ ],
+ [
+ -47.384358133482344,
+ -22.222734135906425
+ ],
+ [
+ -47.38438556372423,
+ -22.22274293291195
+ ],
+ [
+ -47.38441043225017,
+ -22.222749967696373
+ ],
+ [
+ -47.384436995514896,
+ -22.222758346284493
+ ],
+ [
+ -47.384463911706426,
+ -22.222766373084664
+ ],
+ [
+ -47.38448876285783,
+ -22.222775119360254
+ ],
+ [
+ -47.38451130132611,
+ -22.22278187859232
+ ],
+ [
+ -47.38453348193249,
+ -22.2227896515083
+ ],
+ [
+ -47.38454473085779,
+ -22.22279354756244
+ ],
+ [
+ -47.38459810602849,
+ -22.222807764766625
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "8",
+ "Name": "Curvas",
+ "Length": 192.61202092672949,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "8",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38277708707742,
+ -22.22255240391239
+ ],
+ [
+ -47.38287620260944,
+ -22.222554934915603
+ ],
+ [
+ -47.382923477002265,
+ -22.22255528006517
+ ],
+ [
+ -47.382972116792445,
+ -22.222554161322112
+ ],
+ [
+ -47.383023246059054,
+ -22.222551760999128
+ ],
+ [
+ -47.383075003938174,
+ -22.222549071434457
+ ],
+ [
+ -47.38312747244361,
+ -22.222546446359217
+ ],
+ [
+ -47.38318086707276,
+ -22.2225435572715
+ ],
+ [
+ -47.38323462694672,
+ -22.22254067963246
+ ],
+ [
+ -47.383289466518036,
+ -22.22253763581737
+ ],
+ [
+ -47.38334645103832,
+ -22.222535359334444
+ ],
+ [
+ -47.38340348463788,
+ -22.222534464265735
+ ],
+ [
+ -47.383460066394505,
+ -22.22253444509848
+ ],
+ [
+ -47.38351889044445,
+ -22.222536149374196
+ ],
+ [
+ -47.38357768087619,
+ -22.222540396343046
+ ],
+ [
+ -47.38360615793963,
+ -22.222543097081353
+ ],
+ [
+ -47.38363319557864,
+ -22.222545312749343
+ ],
+ [
+ -47.38366459401093,
+ -22.22254857862831
+ ],
+ [
+ -47.383695260443474,
+ -22.222552607238182
+ ],
+ [
+ -47.383725047122994,
+ -22.2225573485495
+ ],
+ [
+ -47.38375427194922,
+ -22.22256231787957
+ ],
+ [
+ -47.38378317839748,
+ -22.222567877931052
+ ],
+ [
+ -47.38381007272888,
+ -22.222573109852792
+ ],
+ [
+ -47.38383627526683,
+ -22.22257816621381
+ ],
+ [
+ -47.38386462879364,
+ -22.22258366213255
+ ],
+ [
+ -47.38389333657615,
+ -22.222589497323042
+ ],
+ [
+ -47.38392311115584,
+ -22.222595730232086
+ ],
+ [
+ -47.38395204550438,
+ -22.22260266764811
+ ],
+ [
+ -47.3839809929768,
+ -22.222609631962353
+ ],
+ [
+ -47.384009245548356,
+ -22.222617394564136
+ ],
+ [
+ -47.384035169710906,
+ -22.222623974017875
+ ],
+ [
+ -47.38406514316936,
+ -22.22263198036634
+ ],
+ [
+ -47.38409240845536,
+ -22.2226398453577
+ ],
+ [
+ -47.38412056090341,
+ -22.222647162223307
+ ],
+ [
+ -47.38414965966191,
+ -22.22265582132918
+ ],
+ [
+ -47.38417751355426,
+ -22.22266438946854
+ ],
+ [
+ -47.38420494512882,
+ -22.222672799624306
+ ],
+ [
+ -47.38423001190454,
+ -22.22268061363748
+ ],
+ [
+ -47.384256535137766,
+ -22.222688432454525
+ ],
+ [
+ -47.3842846415975,
+ -22.222696808979855
+ ],
+ [
+ -47.38431226170149,
+ -22.222706069885476
+ ],
+ [
+ -47.38433725769595,
+ -22.222713903962806
+ ],
+ [
+ -47.384362663930844,
+ -22.222721266675677
+ ],
+ [
+ -47.38439004747168,
+ -22.222730048704186
+ ],
+ [
+ -47.384414880623346,
+ -22.222737073482097
+ ],
+ [
+ -47.384441547278826,
+ -22.222745484681933
+ ],
+ [
+ -47.38446870429572,
+ -22.222753583299852
+ ],
+ [
+ -47.38449356660064,
+ -22.222762333501095
+ ],
+ [
+ -47.38451609524247,
+ -22.222769089786315
+ ],
+ [
+ -47.384538578929494,
+ -22.222776968913266
+ ],
+ [
+ -47.38454927320079,
+ -22.22278067286361
+ ],
+ [
+ -47.38460817143142,
+ -22.222796361209088
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "9",
+ "Name": "Curvas",
+ "Length": 192.9034454196548,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "9",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382784617623614,
+ -22.222539049737286
+ ],
+ [
+ -47.38287645902322,
+ -22.222541394987857
+ ],
+ [
+ -47.38292335440379,
+ -22.22254173737067
+ ],
+ [
+ -47.382971570914776,
+ -22.22254062836364
+ ],
+ [
+ -47.383022474624724,
+ -22.222538238630104
+ ],
+ [
+ -47.383074208509264,
+ -22.22253555031274
+ ],
+ [
+ -47.383126660348665,
+ -22.222532926071757
+ ],
+ [
+ -47.38318002328716,
+ -22.222530038699226
+ ],
+ [
+ -47.383233776836136,
+ -22.222527161396574
+ ],
+ [
+ -47.38328872200041,
+ -22.222524111721107
+ ],
+ [
+ -47.383346016679646,
+ -22.222521822848066
+ ],
+ [
+ -47.383403359427916,
+ -22.222520922928158
+ ],
+ [
+ -47.383460289979126,
+ -22.222520903643193
+ ],
+ [
+ -47.383519679563825,
+ -22.222522624304315
+ ],
+ [
+ -47.38357898049686,
+ -22.222526908151874
+ ],
+ [
+ -47.38360753248926,
+ -22.222529615996635
+ ],
+ [
+ -47.38363464071321,
+ -22.222531837449107
+ ],
+ [
+ -47.383666417725415,
+ -22.222535142705965
+ ],
+ [
+ -47.38369750232611,
+ -22.22253922625033
+ ],
+ [
+ -47.38372757908532,
+ -22.222544013735494
+ ],
+ [
+ -47.383757049988915,
+ -22.222549024908282
+ ],
+ [
+ -47.383786136901506,
+ -22.22255461967167
+ ],
+ [
+ -47.38381303582091,
+ -22.222559852486185
+ ],
+ [
+ -47.383839226892746,
+ -22.222564906634798
+ ],
+ [
+ -47.38386766204388,
+ -22.222570418370186
+ ],
+ [
+ -47.38389648278733,
+ -22.222576276521576
+ ],
+ [
+ -47.38392652061144,
+ -22.222582564537515
+ ],
+ [
+ -47.38395567245176,
+ -22.222589554100498
+ ],
+ [
+ -47.38398487161797,
+ -22.22259657896449
+ ],
+ [
+ -47.3840132166379,
+ -22.222604366967378
+ ],
+ [
+ -47.384039087701964,
+ -22.222610932945116
+ ],
+ [
+ -47.384069301057295,
+ -22.222619003373723
+ ],
+ [
+ -47.38409651651423,
+ -22.22262685399153
+ ],
+ [
+ -47.38412473136788,
+ -22.222634187076615
+ ],
+ [
+ -47.38415415488198,
+ -22.222642942822336
+ ],
+ [
+ -47.38418207607535,
+ -22.222651531664347
+ ],
+ [
+ -47.38420952834142,
+ -22.222659948157172
+ ],
+ [
+ -47.3842345159767,
+ -22.22266773750024
+ ],
+ [
+ -47.384260947080584,
+ -22.222675529158494
+ ],
+ [
+ -47.38428932388828,
+ -22.222683986255415
+ ],
+ [
+ -47.38431704606323,
+ -22.22269328138518
+ ],
+ [
+ -47.38434173941024,
+ -22.222701020608937
+ ],
+ [
+ -47.384367194378605,
+ -22.222708397444862
+ ],
+ [
+ -47.38439453121842,
+ -22.222717164496377
+ ],
+ [
+ -47.384419328995826,
+ -22.22272417926774
+ ],
+ [
+ -47.384446099042016,
+ -22.222732623079274
+ ],
+ [
+ -47.38447349688425,
+ -22.222740793514973
+ ],
+ [
+ -47.38449837034267,
+ -22.222749547641843
+ ],
+ [
+ -47.38452088915805,
+ -22.222756300980244
+ ],
+ [
+ -47.38454367592567,
+ -22.22276428631816
+ ],
+ [
+ -47.38455381554305,
+ -22.222767798164725
+ ],
+ [
+ -47.38461823683277,
+ -22.22278495765104
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "10",
+ "Name": "Curvas",
+ "Length": 193.19486991005897,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "10",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38279214816847,
+ -22.222525695561938
+ ],
+ [
+ -47.382876715437106,
+ -22.222527855060097
+ ],
+ [
+ -47.38292323180549,
+ -22.222528194676148
+ ],
+ [
+ -47.38297102503736,
+ -22.222527095405177
+ ],
+ [
+ -47.383021703190686,
+ -22.22252471626106
+ ],
+ [
+ -47.38307341308063,
+ -22.222522029190987
+ ],
+ [
+ -47.383125848254025,
+ -22.222519405784276
+ ],
+ [
+ -47.383179179501866,
+ -22.222516520126923
+ ],
+ [
+ -47.38323292671868,
+ -22.222513643161054
+ ],
+ [
+ -47.38328797748307,
+ -22.22251058762477
+ ],
+ [
+ -47.383345582321226,
+ -22.222508286361634
+ ],
+ [
+ -47.38340323421813,
+ -22.222507381590532
+ ],
+ [
+ -47.38346051356383,
+ -22.22250736218789
+ ],
+ [
+ -47.383520468683194,
+ -22.222509099234433
+ ],
+ [
+ -47.383580280117435,
+ -22.222513419960684
+ ],
+ [
+ -47.38360890703878,
+ -22.22251613491191
+ ],
+ [
+ -47.383636085847634,
+ -22.222518362148843
+ ],
+ [
+ -47.38366824143969,
+ -22.22252170678361
+ ],
+ [
+ -47.38369974420846,
+ -22.22252584526246
+ ],
+ [
+ -47.38373011104729,
+ -22.222530678921494
+ ],
+ [
+ -47.383759828028225,
+ -22.22253573193701
+ ],
+ [
+ -47.38378909540512,
+ -22.22254136141231
+ ],
+ [
+ -47.383815998912524,
+ -22.222546595119578
+ ],
+ [
+ -47.38384217851825,
+ -22.222551647055752
+ ],
+ [
+ -47.38387069526687,
+ -22.222557174602382
+ ],
+ [
+ -47.38389962899803,
+ -22.22256305572007
+ ],
+ [
+ -47.38392993006652,
+ -22.222569398842918
+ ],
+ [
+ -47.383959299398605,
+ -22.222576440552842
+ ],
+ [
+ -47.38398875023665,
+ -22.222583525960555
+ ],
+ [
+ -47.38401718772681,
+ -22.22259133937057
+ ],
+ [
+ -47.384043005692405,
+ -22.222597891872276
+ ],
+ [
+ -47.38407345894456,
+ -22.22260602638104
+ ],
+ [
+ -47.384100624572454,
+ -22.222613862625316
+ ],
+ [
+ -47.384128901831694,
+ -22.222621211929848
+ ],
+ [
+ -47.38415865010136,
+ -22.222630064315414
+ ],
+ [
+ -47.384186638595715,
+ -22.222638673860068
+ ],
+ [
+ -47.38421411152105,
+ -22.222647096679893
+ ],
+ [
+ -47.38423902004814,
+ -22.222654861362916
+ ],
+ [
+ -47.3842653590227,
+ -22.22266262586241
+ ],
+ [
+ -47.38429400617834,
+ -22.22267116353088
+ ],
+ [
+ -47.384321830424234,
+ -22.222680492884802
+ ],
+ [
+ -47.38434622112383,
+ -22.222688137254973
+ ],
+ [
+ -47.38437172482567,
+ -22.22269552821398
+ ],
+ [
+ -47.384399014964444,
+ -22.22270428028848
+ ],
+ [
+ -47.384423777367566,
+ -22.22271128505331
+ ],
+ [
+ -47.3844506508045,
+ -22.22271976147657
+ ],
+ [
+ -47.384478289472014,
+ -22.22272800372999
+ ],
+ [
+ -47.384503174083946,
+ -22.222736761782507
+ ],
+ [
+ -47.38452568307289,
+ -22.222743512174073
+ ],
+ [
+ -47.384548772921015,
+ -22.22275160372291
+ ],
+ [
+ -47.38455835788458,
+ -22.222754923465743
+ ],
+ [
+ -47.38462830223251,
+ -22.222773554092512
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "11",
+ "Name": "Curvas",
+ "Length": 193.48629439465958,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "11",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382799678712004,
+ -22.222512341386327
+ ],
+ [
+ -47.38287697185108,
+ -22.222514315132305
+ ],
+ [
+ -47.38292310920735,
+ -22.222514651981605
+ ],
+ [
+ -47.382970479160164,
+ -22.222513562446682
+ ],
+ [
+ -47.383020931756924,
+ -22.222511193891982
+ ],
+ [
+ -47.38307261765227,
+ -22.222508508069197
+ ],
+ [
+ -47.38312503615966,
+ -22.22250588549676
+ ],
+ [
+ -47.383178335716856,
+ -22.222503001554546
+ ],
+ [
+ -47.38323207660948,
+ -22.222500124925016
+ ],
+ [
+ -47.383287232966,
+ -22.222497063528422
+ ],
+ [
+ -47.383345147963006,
+ -22.222494749875175
+ ],
+ [
+ -47.383403109008476,
+ -22.22249384025291
+ ],
+ [
+ -47.383460737148624,
+ -22.222493820732595
+ ],
+ [
+ -47.38352125780255,
+ -22.222495574164512
+ ],
+ [
+ -47.38358157973787,
+ -22.222499931769484
+ ],
+ [
+ -47.38361028158816,
+ -22.222502653827178
+ ],
+ [
+ -47.3836375309819,
+ -22.222504886848608
+ ],
+ [
+ -47.38367006515374,
+ -22.222508270861237
+ ],
+ [
+ -47.383701986090514,
+ -22.222512464274566
+ ],
+ [
+ -47.383732643008905,
+ -22.222517344107434
+ ],
+ [
+ -47.38376260606713,
+ -22.22252243896569
+ ],
+ [
+ -47.38379205390828,
+ -22.222528103152893
+ ],
+ [
+ -47.383818962003694,
+ -22.222533337752935
+ ],
+ [
+ -47.38384513014329,
+ -22.222538387476696
+ ],
+ [
+ -47.383873728518935,
+ -22.22254393084055
+ ],
+ [
+ -47.383902775208256,
+ -22.22254983491851
+ ],
+ [
+ -47.383933339521086,
+ -22.222556233148282
+ ],
+ [
+ -47.383962926344886,
+ -22.22256332700515
+ ],
+ [
+ -47.38399262887871,
+ -22.222570472963156
+ ],
+ [
+ -47.384021158815095,
+ -22.2225783117737
+ ],
+ [
+ -47.38404692368222,
+ -22.222584850799397
+ ],
+ [
+ -47.384077616831135,
+ -22.222593049388326
+ ],
+ [
+ -47.38410473263002,
+ -22.222600871259036
+ ],
+ [
+ -47.384133072294844,
+ -22.222608236783035
+ ],
+ [
+ -47.384163145320024,
+ -22.222617185808435
+ ],
+ [
+ -47.384191201115364,
+ -22.222625816055746
+ ],
+ [
+ -47.38421869473553,
+ -22.22263424521366
+ ],
+ [
+ -47.38424352411886,
+ -22.222641985225533
+ ],
+ [
+ -47.3842697709641,
+ -22.22264972256627
+ ],
+ [
+ -47.38429868846762,
+ -22.22265834080625
+ ],
+ [
+ -47.38432661478446,
+ -22.222667704384346
+ ],
+ [
+ -47.3843507028367,
+ -22.222675253900963
+ ],
+ [
+ -47.38437625527199,
+ -22.222682658983032
+ ],
+ [
+ -47.38440349870974,
+ -22.22269139608047
+ ],
+ [
+ -47.3844282257386,
+ -22.222698390838833
+ ],
+ [
+ -47.384455202566265,
+ -22.222706899873806
+ ],
+ [
+ -47.38448308205899,
+ -22.222715213944973
+ ],
+ [
+ -47.384507977824434,
+ -22.222723975923106
+ ],
+ [
+ -47.38453047698695,
+ -22.222730723367807
+ ],
+ [
+ -47.38455386991555,
+ -22.22273892112757
+ ],
+ [
+ -47.38456290022541,
+ -22.2227420487667
+ ],
+ [
+ -47.38463836763065,
+ -22.22276215053348
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "12",
+ "Name": "Curvas",
+ "Length": 193.77771887947935,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "12",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38280720925419,
+ -22.222498987210493
+ ],
+ [
+ -47.38287722826513,
+ -22.222500775204512
+ ],
+ [
+ -47.38292298660935,
+ -22.22250110928704
+ ],
+ [
+ -47.38296993328323,
+ -22.222500029488153
+ ],
+ [
+ -47.38302016032344,
+ -22.222497671522866
+ ],
+ [
+ -47.38307182222422,
+ -22.22249498694737
+ ],
+ [
+ -47.38312422406559,
+ -22.222492365209202
+ ],
+ [
+ -47.38317749193214,
+ -22.22248948298215
+ ],
+ [
+ -47.383231226491844,
+ -22.222486606689447
+ ],
+ [
+ -47.38328648844921,
+ -22.22248353943202
+ ],
+ [
+ -47.38334471360501,
+ -22.222481213388686
+ ],
+ [
+ -47.38340298379899,
+ -22.222480298915233
+ ],
+ [
+ -47.383460960733515,
+ -22.222480279277256
+ ],
+ [
+ -47.38352204692188,
+ -22.222482049094605
+ ],
+ [
+ -47.383582879358215,
+ -22.22248644357828
+ ],
+ [
+ -47.38361165613742,
+ -22.222489172742428
+ ],
+ [
+ -47.38363897611604,
+ -22.222491411548322
+ ],
+ [
+ -47.383671888867575,
+ -22.222494834938885
+ ],
+ [
+ -47.38370422797226,
+ -22.22249908328667
+ ],
+ [
+ -47.38373517497017,
+ -22.222504009293395
+ ],
+ [
+ -47.38376538410563,
+ -22.222509145994383
+ ],
+ [
+ -47.38379501241103,
+ -22.22251484489348
+ ],
+ [
+ -47.38382192509444,
+ -22.222520080386282
+ ],
+ [
+ -47.38384808176793,
+ -22.222525127897597
+ ],
+ [
+ -47.38387676173831,
+ -22.22253068707213
+ ],
+ [
+ -47.38390592141801,
+ -22.222536614116954
+ ],
+ [
+ -47.38393674897513,
+ -22.222543067453614
+ ],
+ [
+ -47.383966553290605,
+ -22.222550213457406
+ ],
+ [
+ -47.38399650749411,
+ -22.222557419958562
+ ],
+ [
+ -47.384025129902774,
+ -22.22256528417679
+ ],
+ [
+ -47.384050841671446,
+ -22.22257180972647
+ ],
+ [
+ -47.384081774717096,
+ -22.222580072395544
+ ],
+ [
+ -47.38410884068694,
+ -22.2225878798927
+ ],
+ [
+ -47.38413724275733,
+ -22.22259526163615
+ ],
+ [
+ -47.38416764053798,
+ -22.222604307301374
+ ],
+ [
+ -47.38419576363429,
+ -22.22261295825133
+ ],
+ [
+ -47.38422327791033,
+ -22.222621393735206
+ ],
+ [
+ -47.38424802818888,
+ -22.222629109088064
+ ],
+ [
+ -47.38427418290482,
+ -22.222636819270047
+ ],
+ [
+ -47.384303370756164,
+ -22.222645518081556
+ ],
+ [
+ -47.38433139914393,
+ -22.2226549158838
+ ],
+ [
+ -47.38435518454887,
+ -22.222662370546857
+ ],
+ [
+ -47.3843807857176,
+ -22.22266978975201
+ ],
+ [
+ -47.38440798245434,
+ -22.222678511872427
+ ],
+ [
+ -47.38443267410894,
+ -22.222685496624283
+ ],
+ [
+ -47.384459754327295,
+ -22.222694038270948
+ ],
+ [
+ -47.384487874645224,
+ -22.222702424159838
+ ],
+ [
+ -47.38451278156416,
+ -22.222711190063603
+ ],
+ [
+ -47.38453527090025,
+ -22.222717934561473
+ ],
+ [
+ -47.384558966909275,
+ -22.222726238532147
+ ],
+ [
+ -47.384567442565505,
+ -22.222729174067588
+ ],
+ [
+ -47.38464843302719,
+ -22.22275074697397
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "13",
+ "Name": "Curvas",
+ "Length": 194.06914335882485,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "13",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38281473979503,
+ -22.222485633034427
+ ],
+ [
+ -47.38287748467928,
+ -22.2224872352767
+ ],
+ [
+ -47.38292286401152,
+ -22.22248756659245
+ ],
+ [
+ -47.38296938740649,
+ -22.2224864965296
+ ],
+ [
+ -47.38301938889021,
+ -22.222484149153704
+ ],
+ [
+ -47.38307102679643,
+ -22.22248146582551
+ ],
+ [
+ -47.3831234119718,
+ -22.22247884492161
+ ],
+ [
+ -47.38317664814771,
+ -22.222475964409725
+ ],
+ [
+ -47.383230376383985,
+ -22.222473088453324
+ ],
+ [
+ -47.38328574393268,
+ -22.2224700153356
+ ],
+ [
+ -47.38334427924722,
+ -22.222467676902188
+ ],
+ [
+ -47.383402858589655,
+ -22.222466757577582
+ ],
+ [
+ -47.383461184318506,
+ -22.222466737821897
+ ],
+ [
+ -47.383522836041166,
+ -22.2224685240247
+ ],
+ [
+ -47.38358417897843,
+ -22.222472955387087
+ ],
+ [
+ -47.38361303068654,
+ -22.22247569165768
+ ],
+ [
+ -47.38364042125002,
+ -22.222477936248065
+ ],
+ [
+ -47.383673712581185,
+ -22.222481399016527
+ ],
+ [
+ -47.38370646985369,
+ -22.222485702298762
+ ],
+ [
+ -47.38373770693107,
+ -22.22249067447931
+ ],
+ [
+ -47.3837681621437,
+ -22.222495853023027
+ ],
+ [
+ -47.38379797091331,
+ -22.22250158663407
+ ],
+ [
+ -47.383824888184726,
+ -22.222506823019582
+ ],
+ [
+ -47.38385103339212,
+ -22.222511868318477
+ ],
+ [
+ -47.38387979499218,
+ -22.22251744331079
+ ],
+ [
+ -47.38390906762728,
+ -22.222523393315345
+ ],
+ [
+ -47.38394015842866,
+ -22.2225299017589
+ ],
+ [
+ -47.383970180235764,
+ -22.22253709990965
+ ],
+ [
+ -47.38400038613699,
+ -22.222544366961664
+ ],
+ [
+ -47.384029100989814,
+ -22.222552256579846
+ ],
+ [
+ -47.38405475966004,
+ -22.2225587686535
+ ],
+ [
+ -47.3840859326024,
+ -22.2225670954027
+ ],
+ [
+ -47.3841129487432,
+ -22.222574888526292
+ ],
+ [
+ -47.38414141321917,
+ -22.222582286489253
+ ],
+ [
+ -47.38417213575521,
+ -22.22259142879426
+ ],
+ [
+ -47.38420032615248,
+ -22.22260010044685
+ ],
+ [
+ -47.38422786112675,
+ -22.22260854226988
+ ],
+ [
+ -47.38425253225818,
+ -22.222616232950536
+ ],
+ [
+ -47.38427859484482,
+ -22.22262391597379
+ ],
+ [
+ -47.38430805304396,
+ -22.222632695356786
+ ],
+ [
+ -47.38433618350263,
+ -22.222642127383196
+ ],
+ [
+ -47.38435966626032,
+ -22.222649487192726
+ ],
+ [
+ -47.38438531616251,
+ -22.22265692052092
+ ],
+ [
+ -47.384412466198235,
+ -22.22266562766433
+ ],
+ [
+ -47.384437122478545,
+ -22.22267260240964
+ ],
+ [
+ -47.384464306087594,
+ -22.22268117666804
+ ],
+ [
+ -47.384492667230674,
+ -22.222689634374632
+ ],
+ [
+ -47.384517585303115,
+ -22.222698404204003
+ ],
+ [
+ -47.38454006481276,
+ -22.222705145755054
+ ],
+ [
+ -47.384564063902175,
+ -22.222713555936604
+ ],
+ [
+ -47.38457198490486,
+ -22.2227162993684
+ ],
+ [
+ -47.38465849842212,
+ -22.222739343413952
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "14",
+ "Name": "Curvas",
+ "Length": 194.36056783830813,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "14",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38282227033455,
+ -22.22247227885811
+ ],
+ [
+ -47.382877741093495,
+ -22.222473695348874
+ ],
+ [
+ -47.38292274141385,
+ -22.222474023897846
+ ],
+ [
+ -47.38296884153002,
+ -22.222472963571015
+ ],
+ [
+ -47.383018617457296,
+ -22.22247062678452
+ ],
+ [
+ -47.38307023136893,
+ -22.222467944703606
+ ],
+ [
+ -47.383122599878305,
+ -22.222465324633976
+ ],
+ [
+ -47.38317580436359,
+ -22.222462445837266
+ ],
+ [
+ -47.38322952626618,
+ -22.222459570217712
+ ],
+ [
+ -47.38328499941644,
+ -22.222456491239118
+ ],
+ [
+ -47.38334384488966,
+ -22.222454140415635
+ ],
+ [
+ -47.383402733380485,
+ -22.22245321623988
+ ],
+ [
+ -47.383461407903575,
+ -22.222453196366523
+ ],
+ [
+ -47.383523625160464,
+ -22.22245499895477
+ ],
+ [
+ -47.38358547859852,
+ -22.22245946719586
+ ],
+ [
+ -47.383614405235534,
+ -22.222462210572917
+ ],
+ [
+ -47.38364186638387,
+ -22.22246446094777
+ ],
+ [
+ -47.383675536294575,
+ -22.222467963094136
+ ],
+ [
+ -47.38370871173483,
+ -22.22247232131085
+ ],
+ [
+ -47.383740238891626,
+ -22.222477339665243
+ ],
+ [
+ -47.38377094018141,
+ -22.222482560051663
+ ],
+ [
+ -47.38380092941518,
+ -22.22248832837461
+ ],
+ [
+ -47.38382785127459,
+ -22.222493565652883
+ ],
+ [
+ -47.383853985015875,
+ -22.222498608739333
+ ],
+ [
+ -47.38388282820795,
+ -22.222504199541767
+ ],
+ [
+ -47.3839122138361,
+ -22.222510172513733
+ ],
+ [
+ -47.383943567881666,
+ -22.22251673606417
+ ],
+ [
+ -47.38397380718038,
+ -22.22252398636184
+ ],
+ [
+ -47.38400426474919,
+ -22.222531313956427
+ ],
+ [
+ -47.38403307207624,
+ -22.222539228982832
+ ],
+ [
+ -47.384058677648035,
+ -22.222545727580467
+ ],
+ [
+ -47.38409009048704,
+ -22.222554118409803
+ ],
+ [
+ -47.384117056798836,
+ -22.222561897159846
+ ],
+ [
+ -47.38414558368034,
+ -22.222569311342255
+ ],
+ [
+ -47.38417663097173,
+ -22.222578550287057
+ ],
+ [
+ -47.38420488866994,
+ -22.22258724264228
+ ],
+ [
+ -47.384232444296735,
+ -22.222595690790225
+ ],
+ [
+ -47.38425703632676,
+ -22.222603356812925
+ ],
+ [
+ -47.38428300678414,
+ -22.222611012677437
+ ],
+ [
+ -47.38431273533101,
+ -22.22261987263194
+ ],
+ [
+ -47.384340967860574,
+ -22.222629338882488
+ ],
+ [
+ -47.38436414797106,
+ -22.22263660383848
+ ],
+ [
+ -47.38438984660669,
+ -22.222644051289752
+ ],
+ [
+ -47.38441694994141,
+ -22.22265274345615
+ ],
+ [
+ -47.384441570847464,
+ -22.22265970819494
+ ],
+ [
+ -47.38446885784719,
+ -22.222668315065043
+ ],
+ [
+ -47.384497459815364,
+ -22.222676844589326
+ ],
+ [
+ -47.38452238904131,
+ -22.22268561834434
+ ],
+ [
+ -47.38454485872453,
+ -22.222692356948553
+ ],
+ [
+ -47.38456916089428,
+ -22.222700873340983
+ ],
+ [
+ -47.38457652724352,
+ -22.222703424669138
+ ],
+ [
+ -47.38466856381547,
+ -22.222727939853453
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "15",
+ "Name": "Curvas",
+ "Length": 194.65199231181938,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "15",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382829800872734,
+ -22.222458924681536
+ ],
+ [
+ -47.38287799750778,
+ -22.222460155421032
+ ],
+ [
+ -47.3829226188163,
+ -22.22246048120321
+ ],
+ [
+ -47.382968295653775,
+ -22.222459430612396
+ ],
+ [
+ -47.38301784602463,
+ -22.222457104415277
+ ],
+ [
+ -47.38306943594171,
+ -22.222454423581635
+ ],
+ [
+ -47.38312178778509,
+ -22.22245180434629
+ ],
+ [
+ -47.38317496057976,
+ -22.222448927264765
+ ],
+ [
+ -47.38322867615967,
+ -22.22244605198146
+ ],
+ [
+ -47.38328425490047,
+ -22.222442967142644
+ ],
+ [
+ -47.3833434105323,
+ -22.22244060392906
+ ],
+ [
+ -47.38340260817145,
+ -22.222439674902137
+ ],
+ [
+ -47.38346163148873,
+ -22.222439654911156
+ ],
+ [
+ -47.38352441427973,
+ -22.222441473884803
+ ],
+ [
+ -47.383586778218515,
+ -22.22244597900463
+ ],
+ [
+ -47.38361577978437,
+ -22.22244872948818
+ ],
+ [
+ -47.38364331151755,
+ -22.22245098564747
+ ],
+ [
+ -47.38367736000776,
+ -22.22245452717173
+ ],
+ [
+ -47.383710953615676,
+ -22.222458940322905
+ ],
+ [
+ -47.38374277085181,
+ -22.222464004851144
+ ],
+ [
+ -47.38377371821867,
+ -22.222469267080278
+ ],
+ [
+ -47.383803887916606,
+ -22.2224750701151
+ ],
+ [
+ -47.383830814364,
+ -22.22248030828614
+ ],
+ [
+ -47.383856936639205,
+ -22.22248534916018
+ ],
+ [
+ -47.38388586146361,
+ -22.222490955780927
+ ],
+ [
+ -47.383915360044426,
+ -22.22249695171209
+ ],
+ [
+ -47.383946977334126,
+ -22.22250357036939
+ ],
+ [
+ -47.38397743412442,
+ -22.22251087281397
+ ],
+ [
+ -47.3840081433928,
+ -22.22251826095993
+ ],
+ [
+ -47.38403704316203,
+ -22.222526201385755
+ ],
+ [
+ -47.38406259563543,
+ -22.222532686507382
+ ],
+ [
+ -47.38409424837103,
+ -22.222541141416833
+ ],
+ [
+ -47.38412116485382,
+ -22.22254890579333
+ ],
+ [
+ -47.384149754140836,
+ -22.222556336195208
+ ],
+ [
+ -47.384181126187535,
+ -22.222565671779787
+ ],
+ [
+ -47.38420945118666,
+ -22.222574384837653
+ ],
+ [
+ -47.38423702751503,
+ -22.22258283932579
+ ],
+ [
+ -47.38426154039462,
+ -22.22259048067527
+ ],
+ [
+ -47.384287418722735,
+ -22.222598109381025
+ ],
+ [
+ -47.384317417617304,
+ -22.222607049907023
+ ],
+ [
+ -47.38434575221774,
+ -22.222616550381716
+ ],
+ [
+ -47.38436862968108,
+ -22.222623720484208
+ ],
+ [
+ -47.38439437705013,
+ -22.22263118205852
+ ],
+ [
+ -47.38442143368388,
+ -22.2226398592479
+ ],
+ [
+ -47.38444601921567,
+ -22.22264681398018
+ ],
+ [
+ -47.38447340960606,
+ -22.222655453461986
+ ],
+ [
+ -47.3845022523993,
+ -22.222664054803918
+ ],
+ [
+ -47.38452719277875,
+ -22.2226728324846
+ ],
+ [
+ -47.38454965263552,
+ -22.22267956814198
+ ],
+ [
+ -47.384574257885525,
+ -22.222688190745263
+ ],
+ [
+ -47.38458106958142,
+ -22.22269054996979
+ ],
+ [
+ -47.38467862920721,
+ -22.222716536292445
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "16",
+ "Name": "Curvas",
+ "Length": 194.94341678419917,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "16",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38283733140958,
+ -22.222445570504725
+ ],
+ [
+ -47.382878253922165,
+ -22.22244661549317
+ ],
+ [
+ -47.38292249621894,
+ -22.222446938508558
+ ],
+ [
+ -47.38296774977778,
+ -22.222445897653742
+ ],
+ [
+ -47.38301707459227,
+ -22.22244358204601
+ ],
+ [
+ -47.38306864051478,
+ -22.222440902459653
+ ],
+ [
+ -47.38312097569218,
+ -22.222438284058583
+ ],
+ [
+ -47.383174116796226,
+ -22.222435408692213
+ ],
+ [
+ -47.38322782604169,
+ -22.222432533745817
+ ],
+ [
+ -47.383283510384786,
+ -22.222429443046092
+ ],
+ [
+ -47.383342976175165,
+ -22.222427067442453
+ ],
+ [
+ -47.383402482962595,
+ -22.222426133564372
+ ],
+ [
+ -47.383461855073975,
+ -22.222426113455747
+ ],
+ [
+ -47.38352520339898,
+ -22.222427948814854
+ ],
+ [
+ -47.383588077838375,
+ -22.222432490813382
+ ],
+ [
+ -47.383617154333095,
+ -22.22243524840339
+ ],
+ [
+ -47.383644756651094,
+ -22.222437510347152
+ ],
+ [
+ -47.38367918372072,
+ -22.222441091249333
+ ],
+ [
+ -47.383713195496235,
+ -22.222445559334954
+ ],
+ [
+ -47.38374530281166,
+ -22.222450670037038
+ ],
+ [
+ -47.383776496255564,
+ -22.222455974108875
+ ],
+ [
+ -47.3838068464176,
+ -22.222461811855595
+ ],
+ [
+ -47.38383377745299,
+ -22.22246705091939
+ ],
+ [
+ -47.383859888262094,
+ -22.222472089580997
+ ],
+ [
+ -47.38388889467583,
+ -22.22247771201132
+ ],
+ [
+ -47.38391850625231,
+ -22.222483730910408
+ ],
+ [
+ -47.38395038678609,
+ -22.222490404674588
+ ],
+ [
+ -47.3839810610679,
+ -22.22249775926607
+ ],
+ [
+ -47.384012022001855,
+ -22.22250520795406
+ ],
+ [
+ -47.38404101424722,
+ -22.222513173788634
+ ],
+ [
+ -47.3840665136222,
+ -22.22251964543425
+ ],
+ [
+ -47.38409840625437,
+ -22.222528164423817
+ ],
+ [
+ -47.38412527290816,
+ -22.222535914426775
+ ],
+ [
+ -47.3841539246007,
+ -22.222543361048096
+ ],
+ [
+ -47.38418562140264,
+ -22.22255279327245
+ ],
+ [
+ -47.38421401370267,
+ -22.22256152703294
+ ],
+ [
+ -47.38424161068021,
+ -22.222569987844935
+ ],
+ [
+ -47.384266044461775,
+ -22.22257760453752
+ ],
+ [
+ -47.38429183066065,
+ -22.222585206084535
+ ],
+ [
+ -47.38432209990287,
+ -22.222594227182018
+ ],
+ [
+ -47.384350536574146,
+ -22.222603761880844
+ ],
+ [
+ -47.38437311139039,
+ -22.22261083712983
+ ],
+ [
+ -47.38439890749286,
+ -22.222618312827198
+ ],
+ [
+ -47.38442591742563,
+ -22.222626975039557
+ ],
+ [
+ -47.38445046758318,
+ -22.222633919765336
+ ],
+ [
+ -47.38447796136419,
+ -22.222642591858843
+ ],
+ [
+ -47.38450704498246,
+ -22.222651265018463
+ ],
+ [
+ -47.38453199651541,
+ -22.22266004662477
+ ],
+ [
+ -47.38455444654575,
+ -22.22266677933531
+ ],
+ [
+ -47.384579354875974,
+ -22.222675508149447
+ ],
+ [
+ -47.38458561191863,
+ -22.222677675270386
+ ],
+ [
+ -47.384688694597344,
+ -22.222705132730947
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "17",
+ "Name": "Curvas",
+ "Length": 195.26910144987724,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "17",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38284451737175,
+ -22.22243282737238
+ ],
+ [
+ -47.38292237362173,
+ -22.222433395813873
+ ],
+ [
+ -47.382967203902005,
+ -22.222432364695045
+ ],
+ [
+ -47.38301630316017,
+ -22.22243005967672
+ ],
+ [
+ -47.383067845088135,
+ -22.22242738133765
+ ],
+ [
+ -47.38312016359953,
+ -22.222424763770817
+ ],
+ [
+ -47.38317327301296,
+ -22.222421890119612
+ ],
+ [
+ -47.38322697593655,
+ -22.22241901550944
+ ],
+ [
+ -47.38328276586937,
+ -22.2224159189495
+ ],
+ [
+ -47.38334254181824,
+ -22.22241353095585
+ ],
+ [
+ -47.383402357753894,
+ -22.22241259222662
+ ],
+ [
+ -47.38346207865929,
+ -22.22241257200035
+ ],
+ [
+ -47.383525992518216,
+ -22.222414423744894
+ ],
+ [
+ -47.38358937745809,
+ -22.22241900262214
+ ],
+ [
+ -47.38361852888168,
+ -22.222421767318608
+ ],
+ [
+ -47.38364620178448,
+ -22.22242403504685
+ ],
+ [
+ -47.38368100743346,
+ -22.22242765532691
+ ],
+ [
+ -47.38371543737647,
+ -22.222432178346995
+ ],
+ [
+ -47.38374783477113,
+ -22.2224373352229
+ ],
+ [
+ -47.38377927429205,
+ -22.222442681137434
+ ],
+ [
+ -47.383809804918165,
+ -22.22244855359605
+ ],
+ [
+ -47.38383674054154,
+ -22.222453793552578
+ ],
+ [
+ -47.383862839884536,
+ -22.22245883000179
+ ],
+ [
+ -47.38389192793323,
+ -22.222464468250955
+ ],
+ [
+ -47.38392165245971,
+ -22.22247051010868
+ ],
+ [
+ -47.38395379623754,
+ -22.222477238979735
+ ],
+ [
+ -47.383984688010806,
+ -22.222484645718144
+ ],
+ [
+ -47.38401590064619,
+ -22.222492154958026
+ ],
+ [
+ -47.38404498533176,
+ -22.222500146191468
+ ],
+ [
+ -47.38407043160832,
+ -22.22250660436106
+ ],
+ [
+ -47.384102564137045,
+ -22.222515187430744
+ ],
+ [
+ -47.38412938096184,
+ -22.222522923060154
+ ],
+ [
+ -47.38415809505991,
+ -22.222530385900956
+ ],
+ [
+ -47.38419011661701,
+ -22.222539914765036
+ ],
+ [
+ -47.38421857621796,
+ -22.222548669228168
+ ],
+ [
+ -47.384246193900374,
+ -22.222557136381397
+ ],
+ [
+ -47.38427054852818,
+ -22.222564728399686
+ ],
+ [
+ -47.38429624259785,
+ -22.22257230278797
+ ],
+ [
+ -47.38432678218766,
+ -22.222581404456946
+ ],
+ [
+ -47.38435532092978,
+ -22.222590973379898
+ ],
+ [
+ -47.38437759309898,
+ -22.2225979537754
+ ],
+ [
+ -47.38440343793487,
+ -22.222605443595832
+ ],
+ [
+ -47.38443040116665,
+ -22.22261409083118
+ ],
+ [
+ -47.38445491594998,
+ -22.22262102555046
+ ],
+ [
+ -47.38448251312158,
+ -22.222629730255637
+ ],
+ [
+ -47.38451183756485,
+ -22.22263847523293
+ ],
+ [
+ -47.38453680025128,
+ -22.22264726076485
+ ],
+ [
+ -47.38455924045519,
+ -22.222653990528556
+ ],
+ [
+ -47.38458445186561,
+ -22.222662825553545
+ ],
+ [
+ -47.3845901542551,
+ -22.22266480057091
+ ],
+ [
+ -47.384698759985895,
+ -22.222693729168963
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "18",
+ "Name": "Curvas",
+ "Length": 195.5531195386649,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "18",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382852122395924,
+ -22.2224193410993
+ ],
+ [
+ -47.382922251024674,
+ -22.222419853119174
+ ],
+ [
+ -47.38296665802648,
+ -22.22241883173633
+ ],
+ [
+ -47.38301553172837,
+ -22.222416537307378
+ ],
+ [
+ -47.383067049661776,
+ -22.22241386021559
+ ],
+ [
+ -47.38311935150718,
+ -22.22241124348303
+ ],
+ [
+ -47.38317242923001,
+ -22.22240837154699
+ ],
+ [
+ -47.38322612581839,
+ -22.222405497273765
+ ],
+ [
+ -47.38328202135423,
+ -22.222402394852896
+ ],
+ [
+ -47.383342107461544,
+ -22.222399994469193
+ ],
+ [
+ -47.38340223254535,
+ -22.222399050888807
+ ],
+ [
+ -47.38346230224472,
+ -22.22239903054491
+ ],
+ [
+ -47.383526781637435,
+ -22.222400898674927
+ ],
+ [
+ -47.38359067707771,
+ -22.22240551443088
+ ],
+ [
+ -47.38361990343014,
+ -22.222408286233808
+ ],
+ [
+ -47.38364764691774,
+ -22.222410559746518
+ ],
+ [
+ -47.383682831145975,
+ -22.22241421940449
+ ],
+ [
+ -47.38371767925643,
+ -22.222418797359023
+ ],
+ [
+ -47.38375036673026,
+ -22.22242400040876
+ ],
+ [
+ -47.38378205232814,
+ -22.222429388165995
+ ],
+ [
+ -47.383812763418284,
+ -22.222435295336496
+ ],
+ [
+ -47.38383970362966,
+ -22.222440536185783
+ ],
+ [
+ -47.38386579150656,
+ -22.222445570422547
+ ],
+ [
+ -47.38389496114191,
+ -22.222451224480764
+ ],
+ [
+ -47.38392479866665,
+ -22.222457289306945
+ ],
+ [
+ -47.383957205688475,
+ -22.22246407328486
+ ],
+ [
+ -47.38398831495318,
+ -22.222471532170182
+ ],
+ [
+ -47.384019779252164,
+ -22.222479101951553
+ ],
+ [
+ -47.3840489564157,
+ -22.22248711859425
+ ],
+ [
+ -47.38407434959387,
+ -22.22249356328783
+ ],
+ [
+ -47.38410672201908,
+ -22.222502210437618
+ ],
+ [
+ -47.384133489014886,
+ -22.222509931693484
+ ],
+ [
+ -47.38416226551847,
+ -22.222517410753742
+ ],
+ [
+ -47.38419461183067,
+ -22.222527036257553
+ ],
+ [
+ -47.384223138732516,
+ -22.222535811423306
+ ],
+ [
+ -47.384250777060764,
+ -22.22254428489937
+ ],
+ [
+ -47.384275052593885,
+ -22.2225518522618
+ ],
+ [
+ -47.384300654534364,
+ -22.22255939949134
+ ],
+ [
+ -47.38433146447173,
+ -22.222568581731778
+ ],
+ [
+ -47.38436010528466,
+ -22.222578184878863
+ ],
+ [
+ -47.38438207480687,
+ -22.22258507042088
+ ],
+ [
+ -47.38440796837616,
+ -22.222592574364363
+ ],
+ [
+ -47.38443488490697,
+ -22.222601206622695
+ ],
+ [
+ -47.38445936431607,
+ -22.222608131335495
+ ],
+ [
+ -47.384487064878265,
+ -22.22261686865235
+ ],
+ [
+ -47.38451663014648,
+ -22.222625685447298
+ ],
+ [
+ -47.384541603986406,
+ -22.222634474904854
+ ],
+ [
+ -47.38456403436389,
+ -22.22264120172172
+ ],
+ [
+ -47.384589548854414,
+ -22.222650142957537
+ ],
+ [
+ -47.38459469659085,
+ -22.222651925871364
+ ],
+ [
+ -47.38470882537283,
+ -22.22268232560647
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "19",
+ "Name": "Curvas",
+ "Length": 195.83713762225602,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "19",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38285972741873,
+ -22.222405854825983
+ ],
+ [
+ -47.382922128427765,
+ -22.222406310424446
+ ],
+ [
+ -47.3829661121512,
+ -22.222405298777563
+ ],
+ [
+ -47.383014760296824,
+ -22.222403014937992
+ ],
+ [
+ -47.383066254235686,
+ -22.222400339093475
+ ],
+ [
+ -47.38311853941512,
+ -22.222397723195215
+ ],
+ [
+ -47.38317158544735,
+ -22.222394852974325
+ ],
+ [
+ -47.38322527571458,
+ -22.22239197903726
+ ],
+ [
+ -47.38328127683935,
+ -22.22238887075627
+ ],
+ [
+ -47.383341673105036,
+ -22.222386457982488
+ ],
+ [
+ -47.38340210733693,
+ -22.222385509551017
+ ],
+ [
+ -47.38346252583023,
+ -22.222385489089444
+ ],
+ [
+ -47.383527570756605,
+ -22.222387373604935
+ ],
+ [
+ -47.383591976697225,
+ -22.222392026239625
+ ],
+ [
+ -47.38362127797845,
+ -22.222394805149015
+ ],
+ [
+ -47.38364909205085,
+ -22.22239708444619
+ ],
+ [
+ -47.38368465485825,
+ -22.222400783482062
+ ],
+ [
+ -47.383719921136056,
+ -22.222405416371014
+ ],
+ [
+ -47.38375289868903,
+ -22.22241066559458
+ ],
+ [
+ -47.383784830363815,
+ -22.222416095194518
+ ],
+ [
+ -47.383815721917955,
+ -22.2224220370769
+ ],
+ [
+ -47.38384266671732,
+ -22.222427278818945
+ ],
+ [
+ -47.38386874312814,
+ -22.222432310843296
+ ],
+ [
+ -47.38389799440102,
+ -22.22243798072089
+ ],
+ [
+ -47.38392794487309,
+ -22.222444068505187
+ ],
+ [
+ -47.38396061513888,
+ -22.222450907589955
+ ],
+ [
+ -47.38399194189497,
+ -22.22245841862215
+ ],
+ [
+ -47.384023657897096,
+ -22.22246604895591
+ ],
+ [
+ -47.38405292749901,
+ -22.222474090996982
+ ],
+ [
+ -47.38407826757881,
+ -22.222480522214582
+ ],
+ [
+ -47.384110879900426,
+ -22.222489233444414
+ ],
+ [
+ -47.384137597067266,
+ -22.22249694032675
+ ],
+ [
+ -47.38416643597634,
+ -22.222504435606456
+ ],
+ [
+ -47.38419910704359,
+ -22.22251415774997
+ ],
+ [
+ -47.38422770124634,
+ -22.222522953618366
+ ],
+ [
+ -47.384255360282786,
+ -22.222531433436703
+ ],
+ [
+ -47.38427955665888,
+ -22.222538976123857
+ ],
+ [
+ -47.38430506647016,
+ -22.222546496194678
+ ],
+ [
+ -47.38433614675504,
+ -22.22255575900652
+ ],
+ [
+ -47.384364889638746,
+ -22.22256539637774
+ ],
+ [
+ -47.38438655651405,
+ -22.222572187066323
+ ],
+ [
+ -47.38441249881672,
+ -22.222579705132855
+ ],
+ [
+ -47.38443936864658,
+ -22.222588322414158
+ ],
+ [
+ -47.38446381268147,
+ -22.222595237120444
+ ],
+ [
+ -47.38449161663422,
+ -22.222604007049
+ ],
+ [
+ -47.38452142272734,
+ -22.22261289566161
+ ],
+ [
+ -47.384546407720755,
+ -22.22262168904477
+ ],
+ [
+ -47.38456882827182,
+ -22.22262841291482
+ ],
+ [
+ -47.384594645842405,
+ -22.222637460361415
+ ],
+ [
+ -47.38459923892587,
+ -22.222639051171758
+ ],
+ [
+ -47.38471889075817,
+ -22.222670922043488
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "20",
+ "Name": "Curvas",
+ "Length": 196.1211557065339,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "20",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382867332440185,
+ -22.22239236855241
+ ],
+ [
+ -47.38292200583102,
+ -22.222392767729705
+ ],
+ [
+ -47.38296556627614,
+ -22.222391765818777
+ ],
+ [
+ -47.38301398886558,
+ -22.222389492568574
+ ],
+ [
+ -47.383065458809895,
+ -22.222386817971344
+ ],
+ [
+ -47.38311772732335,
+ -22.222384202907357
+ ],
+ [
+ -47.38317074166499,
+ -22.222381334401625
+ ],
+ [
+ -47.383224425596254,
+ -22.222378460801547
+ ],
+ [
+ -47.38328053232476,
+ -22.222375346659575
+ ],
+ [
+ -47.38334123874877,
+ -22.222372921495765
+ ],
+ [
+ -47.3834019821287,
+ -22.222371968213178
+ ],
+ [
+ -47.383462749415834,
+ -22.22237194763397
+ ],
+ [
+ -47.38352835987578,
+ -22.22237384853494
+ ],
+ [
+ -47.38359327631661,
+ -22.22237853804835
+ ],
+ [
+ -47.38362265252664,
+ -22.222381324064198
+ ],
+ [
+ -47.383650537183804,
+ -22.222383609145837
+ ],
+ [
+ -47.38368647857033,
+ -22.222387347559607
+ ],
+ [
+ -47.383722163015406,
+ -22.222392035383013
+ ],
+ [
+ -47.38375543064746,
+ -22.222397330780403
+ ],
+ [
+ -47.383787608399096,
+ -22.222402802223026
+ ],
+ [
+ -47.38381868041721,
+ -22.222408778817297
+ ],
+ [
+ -47.38384562980456,
+ -22.222414021452092
+ ],
+ [
+ -47.3838716947493,
+ -22.22241905126401
+ ],
+ [
+ -47.3839010276062,
+ -22.222424736950117
+ ],
+ [
+ -47.38393109107909,
+ -22.222430847703393
+ ],
+ [
+ -47.38396402458877,
+ -22.22243774189501
+ ],
+ [
+ -47.38399556883621,
+ -22.22244530507408
+ ],
+ [
+ -47.38402753650005,
+ -22.222452995948842
+ ],
+ [
+ -47.384056898581704,
+ -22.222461063399667
+ ],
+ [
+ -47.38408218556313,
+ -22.22246748114125
+ ],
+ [
+ -47.38411503778114,
+ -22.222476256451166
+ ],
+ [
+ -47.38414170511902,
+ -22.222483948959965
+ ],
+ [
+ -47.38417060643357,
+ -22.222491460459104
+ ],
+ [
+ -47.38420360225583,
+ -22.22250127924234
+ ],
+ [
+ -47.38423226375945,
+ -22.222510095813366
+ ],
+ [
+ -47.3842599434384,
+ -22.222518581953498
+ ],
+ [
+ -47.38428406072316,
+ -22.222526099985824
+ ],
+ [
+ -47.38430947840527,
+ -22.222533592897914
+ ],
+ [
+ -47.38434082903761,
+ -22.222542936281204
+ ],
+ [
+ -47.384369673992104,
+ -22.22255260787654
+ ],
+ [
+ -47.384391038220514,
+ -22.222559303711662
+ ],
+ [
+ -47.38441702925656,
+ -22.222566835901237
+ ],
+ [
+ -47.38444385238547,
+ -22.222575438205556
+ ],
+ [
+ -47.38446826104615,
+ -22.22258234290535
+ ],
+ [
+ -47.384496168389454,
+ -22.222591145445563
+ ],
+ [
+ -47.38452621530743,
+ -22.222600105875802
+ ],
+ [
+ -47.384551211454344,
+ -22.222608903184607
+ ],
+ [
+ -47.38457362217898,
+ -22.22261562410782
+ ],
+ [
+ -47.384599742829614,
+ -22.22262477776523
+ ],
+ [
+ -47.38460378126022,
+ -22.22262617647206
+ ],
+ [
+ -47.38472895614192,
+ -22.222659518480018
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "21",
+ "Name": "Curvas",
+ "Length": 196.40517378595288,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "21",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382874937460265,
+ -22.222378882278598
+ ],
+ [
+ -47.382921883234424,
+ -22.222379225034917
+ ],
+ [
+ -47.38296502040133,
+ -22.222378232859977
+ ],
+ [
+ -47.38301321743461,
+ -22.222375970199106
+ ],
+ [
+ -47.38306466338439,
+ -22.222373296849195
+ ],
+ [
+ -47.38311691523185,
+ -22.222370682619456
+ ],
+ [
+ -47.383169897882915,
+ -22.222367815828868
+ ],
+ [
+ -47.38322357549381,
+ -22.222364942564944
+ ],
+ [
+ -47.383279787810444,
+ -22.222361822562856
+ ],
+ [
+ -47.38334080439271,
+ -22.222359385009028
+ ],
+ [
+ -47.38340185692062,
+ -22.222358426875296
+ ],
+ [
+ -47.383462973001535,
+ -22.222358406178493
+ ],
+ [
+ -47.38352914899493,
+ -22.222360323464926
+ ],
+ [
+ -47.38359457593587,
+ -22.22236504985706
+ ],
+ [
+ -47.38362402707468,
+ -22.222367842979384
+ ],
+ [
+ -47.383651982316614,
+ -22.2223701338455
+ ],
+ [
+ -47.383688302282174,
+ -22.222373911637153
+ ],
+ [
+ -47.38372440489445,
+ -22.222378654394998
+ ],
+ [
+ -47.383757962605515,
+ -22.222383995966187
+ ],
+ [
+ -47.38379038643398,
+ -22.222389509251492
+ ],
+ [
+ -47.38382163891601,
+ -22.222395520557654
+ ],
+ [
+ -47.38384859289137,
+ -22.222400764085215
+ ],
+ [
+ -47.38387464637003,
+ -22.222405791684707
+ ],
+ [
+ -47.383904060867,
+ -22.222411493190723
+ ],
+ [
+ -47.38393423728461,
+ -22.22241762690158
+ ],
+ [
+ -47.383967434038134,
+ -22.222424576200016
+ ],
+ [
+ -47.38399919577691,
+ -22.22243219152599
+ ],
+ [
+ -47.38403141514557,
+ -22.22243994295359
+ ],
+ [
+ -47.384060869663784,
+ -22.222448035802277
+ ],
+ [
+ -47.38408610354683,
+ -22.222454440067878
+ ],
+ [
+ -47.3841191956612,
+ -22.222463279457873
+ ],
+ [
+ -47.38414581317013,
+ -22.22247095759312
+ ],
+ [
+ -47.38417477689014,
+ -22.22247848531172
+ ],
+ [
+ -47.38420809746735,
+ -22.222488400734655
+ ],
+ [
+ -47.38423682627183,
+ -22.222497238008305
+ ],
+ [
+ -47.384264526662285,
+ -22.222505730491736
+ ],
+ [
+ -47.384288564786715,
+ -22.222513223847727
+ ],
+ [
+ -47.38431389033969,
+ -22.2225206896011
+ ],
+ [
+ -47.384345511319424,
+ -22.222530113555806
+ ],
+ [
+ -47.38437445834469,
+ -22.22253981937528
+ ],
+ [
+ -47.38439551992627,
+ -22.222546420356945
+ ],
+ [
+ -47.38442155969568,
+ -22.222553966669565
+ ],
+ [
+ -47.38444833612365,
+ -22.22256255399689
+ ],
+ [
+ -47.38447270941011,
+ -22.22256944869017
+ ],
+ [
+ -47.384500720143954,
+ -22.222578283842058
+ ],
+ [
+ -47.384531007886764,
+ -22.222587316089932
+ ],
+ [
+ -47.38455601518714,
+ -22.222596117324358
+ ],
+ [
+ -47.384578416085354,
+ -22.22260283530072
+ ],
+ [
+ -47.384604839815935,
+ -22.222612095168927
+ ],
+ [
+ -47.38460832359376,
+ -22.22261330177228
+ ],
+ [
+ -47.38473902152408,
+ -22.222648114916034
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "22",
+ "Name": "Curvas",
+ "Length": 196.68919186224042,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "22",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382882542479,
+ -22.222365396004527
+ ],
+ [
+ -47.38292176063799,
+ -22.222365682340126
+ ],
+ [
+ -47.38296447452676,
+ -22.22236469990113
+ ],
+ [
+ -47.38301244600393,
+ -22.222362447829617
+ ],
+ [
+ -47.38306386795917,
+ -22.222359775726986
+ ],
+ [
+ -47.38311610314065,
+ -22.222357162331516
+ ],
+ [
+ -47.38316905410114,
+ -22.222354297256093
+ ],
+ [
+ -47.38322272537531,
+ -22.222351424329204
+ ],
+ [
+ -47.3832790432964,
+ -22.222348298466105
+ ],
+ [
+ -47.38334037003687,
+ -22.222345848522245
+ ],
+ [
+ -47.383401731712695,
+ -22.222344885537396
+ ],
+ [
+ -47.38346319658732,
+ -22.22234486472298
+ ],
+ [
+ -47.383529938114066,
+ -22.22234679839491
+ ],
+ [
+ -47.38359587555502,
+ -22.22235156166577
+ ],
+ [
+ -47.38362540162261,
+ -22.22235436189455
+ ],
+ [
+ -47.38365342744928,
+ -22.22235665854513
+ ],
+ [
+ -47.383690125993816,
+ -22.22236047571468
+ ],
+ [
+ -47.383726646773205,
+ -22.222365273406965
+ ],
+ [
+ -47.383760494563234,
+ -22.22237066115198
+ ],
+ [
+ -47.383793164468464,
+ -22.22237621627996
+ ],
+ [
+ -47.383824597414396,
+ -22.222382262297998
+ ],
+ [
+ -47.38385155597774,
+ -22.222387506718313
+ ],
+ [
+ -47.38387759799031,
+ -22.222392532105367
+ ],
+ [
+ -47.38390709406871,
+ -22.222398249419363
+ ],
+ [
+ -47.38393738348966,
+ -22.222404406099734
+ ],
+ [
+ -47.38397084348698,
+ -22.222411410505007
+ ],
+ [
+ -47.38400282271704,
+ -22.22241907797784
+ ],
+ [
+ -47.38403529374556,
+ -22.222426889945943
+ ],
+ [
+ -47.38406484074523,
+ -22.222435008204858
+ ],
+ [
+ -47.38409002152993,
+ -22.222441398994466
+ ],
+ [
+ -47.384123353540595,
+ -22.22245030246452
+ ],
+ [
+ -47.38414992122059,
+ -22.22245796622623
+ ],
+ [
+ -47.38417894734605,
+ -22.22246551016427
+ ],
+ [
+ -47.384212592678146,
+ -22.222475522226887
+ ],
+ [
+ -47.384241388783494,
+ -22.222484380203152
+ ],
+ [
+ -47.384269109813125,
+ -22.222492879007337
+ ],
+ [
+ -47.384293068849566,
+ -22.222500347709552
+ ],
+ [
+ -47.3843183022734,
+ -22.22250778630421
+ ],
+ [
+ -47.384350193600504,
+ -22.222517290830325
+ ],
+ [
+ -47.384379242696504,
+ -22.222527030873916
+ ],
+ [
+ -47.384400001631306,
+ -22.222533537002146
+ ],
+ [
+ -47.384426090134085,
+ -22.22254109743782
+ ],
+ [
+ -47.38445281986113,
+ -22.22254966978813
+ ],
+ [
+ -47.384477157773375,
+ -22.22255655447493
+ ],
+ [
+ -47.38450527189774,
+ -22.222565422238482
+ ],
+ [
+ -47.38453580046533,
+ -22.22257452630396
+ ],
+ [
+ -47.38456081891919,
+ -22.222583331464026
+ ],
+ [
+ -47.38458320999098,
+ -22.22259004649355
+ ],
+ [
+ -47.384609936801496,
+ -22.22259941257252
+ ],
+ [
+ -47.38461286592664,
+ -22.222600427072443
+ ],
+ [
+ -47.38474908690461,
+ -22.222636711351573
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "23",
+ "Name": "Curvas",
+ "Length": 197.0302426075307,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "23",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3828896023422,
+ -22.222352876473476
+ ],
+ [
+ -47.38296392865239,
+ -22.222351166942268
+ ],
+ [
+ -47.38301167457351,
+ -22.22234892546009
+ ],
+ [
+ -47.383063072534235,
+ -22.222346254604723
+ ],
+ [
+ -47.38311529104976,
+ -22.22234364204353
+ ],
+ [
+ -47.38316821031965,
+ -22.222340778683257
+ ],
+ [
+ -47.3832218752742,
+ -22.222337906092452
+ ],
+ [
+ -47.383278298782606,
+ -22.222334774369315
+ ],
+ [
+ -47.38333993568123,
+ -22.222332312035466
+ ],
+ [
+ -47.38340160650494,
+ -22.222331344199503
+ ],
+ [
+ -47.383463420173165,
+ -22.222331323267458
+ ],
+ [
+ -47.38353072723315,
+ -22.222333273324868
+ ],
+ [
+ -47.38359717517404,
+ -22.222338073474486
+ ],
+ [
+ -47.38362677617039,
+ -22.22234088080971
+ ],
+ [
+ -47.3836548725818,
+ -22.222343183244757
+ ],
+ [
+ -47.38369194970524,
+ -22.222347039792222
+ ],
+ [
+ -47.38372888865165,
+ -22.222351892418924
+ ],
+ [
+ -47.3837630265206,
+ -22.222357326337722
+ ],
+ [
+ -47.38379594250254,
+ -22.222362923308395
+ ],
+ [
+ -47.383827555912355,
+ -22.22236900403831
+ ],
+ [
+ -47.383854519063675,
+ -22.222374249351354
+ ],
+ [
+ -47.38388054961012,
+ -22.222379272526005
+ ],
+ [
+ -47.38391012733119,
+ -22.2223850056604
+ ],
+ [
+ -47.38394052969424,
+ -22.222391185297827
+ ],
+ [
+ -47.38397425293531,
+ -22.222398244809952
+ ],
+ [
+ -47.384006449656596,
+ -22.22240596442968
+ ],
+ [
+ -47.38403917239158,
+ -22.222413836951063
+ ],
+ [
+ -47.38406881182606,
+ -22.222421980607383
+ ],
+ [
+ -47.38409393951241,
+ -22.222428357920975
+ ],
+ [
+ -47.38412751141933,
+ -22.222437325471084
+ ],
+ [
+ -47.3841540292704,
+ -22.22244497485928
+ ],
+ [
+ -47.38418311780131,
+ -22.22245253501675
+ ],
+ [
+ -47.38421708788822,
+ -22.222462643719055
+ ],
+ [
+ -47.3842459512944,
+ -22.222471522397935
+ ],
+ [
+ -47.38427369303888,
+ -22.22248002754645
+ ],
+ [
+ -47.38429757291169,
+ -22.2224874715713
+ ],
+ [
+ -47.38432271420639,
+ -22.222494883007275
+ ],
+ [
+ -47.384354875880824,
+ -22.222504468104784
+ ],
+ [
+ -47.38438402704755,
+ -22.222514242372455
+ ],
+ [
+ -47.38440448333562,
+ -22.22252065364731
+ ],
+ [
+ -47.38443062057176,
+ -22.222528228206027
+ ],
+ [
+ -47.38445730359788,
+ -22.22253678557931
+ ],
+ [
+ -47.38448160613592,
+ -22.2225436602596
+ ],
+ [
+ -47.384509823650795,
+ -22.222552560634846
+ ],
+ [
+ -47.384540593043106,
+ -22.2225617365179
+ ],
+ [
+ -47.38456562265046,
+ -22.222570545603638
+ ],
+ [
+ -47.38458800389586,
+ -22.22257725768632
+ ],
+ [
+ -47.38461503378616,
+ -22.222586729976015
+ ],
+ [
+ -47.38461740825871,
+ -22.222587552372527
+ ],
+ [
+ -47.38475915228356,
+ -22.222625307786622
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "24",
+ "Name": "Curvas",
+ "Length": 197.30026516921757,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "24",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38289734113617,
+ -22.22233915296534
+ ],
+ [
+ -47.382963382778286,
+ -22.222337633983354
+ ],
+ [
+ -47.38301090314338,
+ -22.222335403090522
+ ],
+ [
+ -47.38306227710959,
+ -22.22233273348244
+ ],
+ [
+ -47.383114478959136,
+ -22.222330121755512
+ ],
+ [
+ -47.383167366538466,
+ -22.222327260110404
+ ],
+ [
+ -47.383221025155535,
+ -22.222324387856673
+ ],
+ [
+ -47.38327755426912,
+ -22.222321250272476
+ ],
+ [
+ -47.383339501325814,
+ -22.22231877554863
+ ],
+ [
+ -47.38340148129733,
+ -22.222317802861564
+ ],
+ [
+ -47.38346364375913,
+ -22.222317781811917
+ ],
+ [
+ -47.38353151635226,
+ -22.222319748254836
+ ],
+ [
+ -47.38359847479295,
+ -22.22232458528317
+ ],
+ [
+ -47.383628150718046,
+ -22.222327399724858
+ ],
+ [
+ -47.38365631771417,
+ -22.22232970794437
+ ],
+ [
+ -47.38369377341645,
+ -22.222333603869732
+ ],
+ [
+ -47.3837311305298,
+ -22.22233851143087
+ ],
+ [
+ -47.3837655584776,
+ -22.22234399152348
+ ],
+ [
+ -47.38379872053622,
+ -22.22234963033683
+ ],
+ [
+ -47.383830514409865,
+ -22.222355745778604
+ ],
+ [
+ -47.383857482149175,
+ -22.222360991984406
+ ],
+ [
+ -47.38388350122954,
+ -22.22236601294662
+ ],
+ [
+ -47.38391316052945,
+ -22.222371761888493
+ ],
+ [
+ -47.383943675898365,
+ -22.222377964495927
+ ],
+ [
+ -47.383977662383124,
+ -22.22238507911487
+ ],
+ [
+ -47.38401007659561,
+ -22.22239285088145
+ ],
+ [
+ -47.38404305098866,
+ -22.22240078394286
+ ],
+ [
+ -47.38407278290626,
+ -22.222408953009857
+ ],
+ [
+ -47.38409785749428,
+ -22.222415316847442
+ ],
+ [
+ -47.38413166929743,
+ -22.22242434847761
+ ],
+ [
+ -47.38415813731957,
+ -22.22243198349227
+ ],
+ [
+ -47.38418728825591,
+ -22.222439559869166
+ ],
+ [
+ -47.384221583097585,
+ -22.222449765211152
+ ],
+ [
+ -47.3842505138046,
+ -22.22245866459264
+ ],
+ [
+ -47.38427827618494,
+ -22.222467176060878
+ ],
+ [
+ -47.38430207697311,
+ -22.222474595432985
+ ],
+ [
+ -47.38432712613871,
+ -22.22248197971025
+ ],
+ [
+ -47.384359558160405,
+ -22.222491645379154
+ ],
+ [
+ -47.38438881139785,
+ -22.222501453870926
+ ],
+ [
+ -47.384408965039235,
+ -22.22250777029237
+ ],
+ [
+ -47.38443515100871,
+ -22.222515358974128
+ ],
+ [
+ -47.38446178733392,
+ -22.22252390137043
+ ],
+ [
+ -47.38448605449778,
+ -22.222530766044205
+ ],
+ [
+ -47.38451437540312,
+ -22.222539699031113
+ ],
+ [
+ -47.38454538562014,
+ -22.222548946731777
+ ],
+ [
+ -47.384570426380975,
+ -22.222557759743133
+ ],
+ [
+ -47.38459279779994,
+ -22.222564468878982
+ ],
+ [
+ -47.38462013077015,
+ -22.222574047379442
+ ],
+ [
+ -47.38462195059021,
+ -22.222574677672565
+ ],
+ [
+ -47.384769217660896,
+ -22.222613904221177
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "25",
+ "Name": "Curvas",
+ "Length": 197.57028772399505,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "25",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38290507992874,
+ -22.222325429456934
+ ],
+ [
+ -47.382962836904404,
+ -22.222324101024412
+ ],
+ [
+ -47.383010131713526,
+ -22.222321880720923
+ ],
+ [
+ -47.38306148168521,
+ -22.222319212360112
+ ],
+ [
+ -47.38311366686879,
+ -22.22231660146747
+ ],
+ [
+ -47.38316652275755,
+ -22.222313741537516
+ ],
+ [
+ -47.383220175055776,
+ -22.222310869619825
+ ],
+ [
+ -47.383276809755905,
+ -22.22230772617561
+ ],
+ [
+ -47.38333906697063,
+ -22.22230523906176
+ ],
+ [
+ -47.383401356089855,
+ -22.22230426152363
+ ],
+ [
+ -47.383463867345185,
+ -22.22230424035638
+ ],
+ [
+ -47.38353230547132,
+ -22.222306223184773
+ ],
+ [
+ -47.38359977441173,
+ -22.22231109709185
+ ],
+ [
+ -47.38362952526556,
+ -22.222313918640015
+ ],
+ [
+ -47.38365776284638,
+ -22.22231623264401
+ ],
+ [
+ -47.38369559712741,
+ -22.222320167947238
+ ],
+ [
+ -47.383733372407654,
+ -22.222325130442787
+ ],
+ [
+ -47.38376809043424,
+ -22.22233065670923
+ ],
+ [
+ -47.38380149856949,
+ -22.222336337365206
+ ],
+ [
+ -47.38383347290692,
+ -22.22234248751885
+ ],
+ [
+ -47.383860445234234,
+ -22.22234773461742
+ ],
+ [
+ -47.38388645284853,
+ -22.22235275336723
+ ],
+ [
+ -47.38391619379356,
+ -22.222358518130026
+ ],
+ [
+ -47.383946822101976,
+ -22.222364743694005
+ ],
+ [
+ -47.38398107183041,
+ -22.222371913419742
+ ],
+ [
+ -47.384013703534045,
+ -22.22237973733319
+ ],
+ [
+ -47.38404692963516,
+ -22.222387730948334
+ ],
+ [
+ -47.38407675398584,
+ -22.22239592541228
+ ],
+ [
+ -47.38410177547551,
+ -22.22240227577389
+ ],
+ [
+ -47.384135827174866,
+ -22.222411371484075
+ ],
+ [
+ -47.384162245368074,
+ -22.222418992125206
+ ],
+ [
+ -47.38419145870985,
+ -22.222426584721557
+ ],
+ [
+ -47.384226078306256,
+ -22.222436886703193
+ ],
+ [
+ -47.38425507631406,
+ -22.222445806787285
+ ],
+ [
+ -47.38428285941251,
+ -22.222454324600857
+ ],
+ [
+ -47.3843065810338,
+ -22.222461719294596
+ ],
+ [
+ -47.38433153807031,
+ -22.222469076413162
+ ],
+ [
+ -47.38436424043922,
+ -22.222478822653443
+ ],
+ [
+ -47.38439359574736,
+ -22.2224886653693
+ ],
+ [
+ -47.38441344674214,
+ -22.22249488693738
+ ],
+ [
+ -47.38443968144497,
+ -22.222502489742173
+ ],
+ [
+ -47.38446627106925,
+ -22.222511017161494
+ ],
+ [
+ -47.384490502858924,
+ -22.222517871828785
+ ],
+ [
+ -47.384518927154744,
+ -22.222526837427317
+ ],
+ [
+ -47.384550178196385,
+ -22.2225361569456
+ ],
+ [
+ -47.38457523011072,
+ -22.222544973882535
+ ],
+ [
+ -47.38459759170327,
+ -22.222551680071568
+ ],
+ [
+ -47.38462522775318,
+ -22.222561364782724
+ ],
+ [
+ -47.38462649292084,
+ -22.222561802972468
+ ],
+ [
+ -47.38477928303665,
+ -22.222602500655228
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "26",
+ "Name": "Curvas",
+ "Length": 197.84031027986396,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "26",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382912818719895,
+ -22.22231170594829
+ ],
+ [
+ -47.38296229103078,
+ -22.222310568065442
+ ],
+ [
+ -47.38300936028396,
+ -22.222308358351285
+ ],
+ [
+ -47.38306068626114,
+ -22.222305691237754
+ ],
+ [
+ -47.383112854778744,
+ -22.22230308117938
+ ],
+ [
+ -47.38316567897695,
+ -22.22230022296458
+ ],
+ [
+ -47.38321932493693,
+ -22.222297351383993
+ ],
+ [
+ -47.38327606524296,
+ -22.222294202078718
+ ],
+ [
+ -47.38333863261565,
+ -22.222291702574864
+ ],
+ [
+ -47.38340123088256,
+ -22.222290720185637
+ ],
+ [
+ -47.38346409093133,
+ -22.2222906989008
+ ],
+ [
+ -47.38353309459037,
+ -22.222292698114718
+ ],
+ [
+ -47.3836010740304,
+ -22.222297608900522
+ ],
+ [
+ -47.38363089981295,
+ -22.22230043755514
+ ],
+ [
+ -47.38365920797846,
+ -22.222302757343602
+ ],
+ [
+ -47.38369742083817,
+ -22.222306732024723
+ ],
+ [
+ -47.38373561428521,
+ -22.222311749454708
+ ],
+ [
+ -47.38377062239053,
+ -22.222317321894938
+ ],
+ [
+ -47.38380427660236,
+ -22.2223230443936
+ ],
+ [
+ -47.38383643140356,
+ -22.22232922925911
+ ],
+ [
+ -47.38386340831887,
+ -22.222334477250428
+ ],
+ [
+ -47.38388940446709,
+ -22.222339493787793
+ ],
+ [
+ -47.38391922698841,
+ -22.222345274357536
+ ],
+ [
+ -47.383949968305146,
+ -22.222351522892044
+ ],
+ [
+ -47.38398448127718,
+ -22.222358747724595
+ ],
+ [
+ -47.384017330471934,
+ -22.222366623784875
+ ],
+ [
+ -47.38405080822939,
+ -22.22237467793959
+ ],
+ [
+ -47.384080725064806,
+ -22.222382897814654
+ ],
+ [
+ -47.384105693456156,
+ -22.22238923470028
+ ],
+ [
+ -47.38413998505164,
+ -22.222398394490465
+ ],
+ [
+ -47.38416635341596,
+ -22.222406000758095
+ ],
+ [
+ -47.38419562916314,
+ -22.222413609573856
+ ],
+ [
+ -47.3842305735142,
+ -22.222424008195144
+ ],
+ [
+ -47.38425963882281,
+ -22.222432948981847
+ ],
+ [
+ -47.38428744255382,
+ -22.222441473114106
+ ],
+ [
+ -47.38431108509379,
+ -22.222448843156148
+ ],
+ [
+ -47.38433595000123,
+ -22.22245617311602
+ ],
+ [
+ -47.38436892271729,
+ -22.222465999927664
+ ],
+ [
+ -47.38439838009613,
+ -22.22247587686762
+ ],
+ [
+ -47.38441792844433,
+ -22.2224820035823
+ ],
+ [
+ -47.38444421188049,
+ -22.22248962051014
+ ],
+ [
+ -47.38447075480388,
+ -22.22249813295247
+ ],
+ [
+ -47.38449495121937,
+ -22.22250497761326
+ ],
+ [
+ -47.384523478905635,
+ -22.222513975823453
+ ],
+ [
+ -47.38455497077188,
+ -22.222523367159294
+ ],
+ [
+ -47.38458003383969,
+ -22.22253218802187
+ ],
+ [
+ -47.384602385605824,
+ -22.222538891264065
+ ],
+ [
+ -47.384630324735504,
+ -22.222548682185963
+ ],
+ [
+ -47.38463103525086,
+ -22.222548928272357
+ ],
+ [
+ -47.38478934841079,
+ -22.22259109708879
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "27",
+ "Name": "Curvas",
+ "Length": 198.1733557083618,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "27",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3829199862315,
+ -22.222298995510116
+ ],
+ [
+ -47.38300858885466,
+ -22.222294835981604
+ ],
+ [
+ -47.38305989083731,
+ -22.222292170115356
+ ],
+ [
+ -47.38311204268896,
+ -22.22228956089123
+ ],
+ [
+ -47.38316483519665,
+ -22.222286704391582
+ ],
+ [
+ -47.383218474838536,
+ -22.222283833147003
+ ],
+ [
+ -47.38327532073028,
+ -22.22228067798178
+ ],
+ [
+ -47.38333819826089,
+ -22.22227816608795
+ ],
+ [
+ -47.38340110567541,
+ -22.22227717884765
+ ],
+ [
+ -47.38346431451754,
+ -22.222277157445212
+ ],
+ [
+ -47.383533883709404,
+ -22.222279173044623
+ ],
+ [
+ -47.383602373648955,
+ -22.222284120709183
+ ],
+ [
+ -47.383632274360224,
+ -22.22228695647029
+ ],
+ [
+ -47.38366065311038,
+ -22.22228928204322
+ ],
+ [
+ -47.38369924454869,
+ -22.22229329610223
+ ],
+ [
+ -47.38373785616245,
+ -22.222298368466607
+ ],
+ [
+ -47.38377315434645,
+ -22.222303987080622
+ ],
+ [
+ -47.38380705463483,
+ -22.222309751421967
+ ],
+ [
+ -47.383839389899755,
+ -22.22231597099931
+ ],
+ [
+ -47.38386637140304,
+ -22.22232121988339
+ ],
+ [
+ -47.3838923560852,
+ -22.222326234208342
+ ],
+ [
+ -47.38392226025411,
+ -22.222332030599517
+ ],
+ [
+ -47.38395311450785,
+ -22.222338302090044
+ ],
+ [
+ -47.38398789072342,
+ -22.222345582029384
+ ],
+ [
+ -47.384020957409255,
+ -22.222353510236534
+ ],
+ [
+ -47.384054686876304,
+ -22.222361624945414
+ ],
+ [
+ -47.38408469614314,
+ -22.222369870216976
+ ],
+ [
+ -47.38410961143619,
+ -22.222376193626587
+ ],
+ [
+ -47.38414414292776,
+ -22.222385417496813
+ ],
+ [
+ -47.384170461463164,
+ -22.222393009390903
+ ],
+ [
+ -47.384199799615764,
+ -22.22240063442613
+ ],
+ [
+ -47.38423506872141,
+ -22.222411129687014
+ ],
+ [
+ -47.384264201330815,
+ -22.222420091176325
+ ],
+ [
+ -47.38429202578322,
+ -22.222428621654977
+ ],
+ [
+ -47.38431558915304,
+ -22.222435967017635
+ ],
+ [
+ -47.38434036193141,
+ -22.222443269818783
+ ],
+ [
+ -47.38437360499462,
+ -22.222453177201796
+ ],
+ [
+ -47.38440316444411,
+ -22.22246308836586
+ ],
+ [
+ -47.38442241014579,
+ -22.222469120227192
+ ],
+ [
+ -47.38444874231528,
+ -22.22247675127804
+ ],
+ [
+ -47.384475238537775,
+ -22.22248524874338
+ ],
+ [
+ -47.384499399579106,
+ -22.22249208339767
+ ],
+ [
+ -47.38452803065578,
+ -22.222501114219515
+ ],
+ [
+ -47.3845597633466,
+ -22.22251057737291
+ ],
+ [
+ -47.38458483756788,
+ -22.222519402161115
+ ],
+ [
+ -47.38460717950761,
+ -22.222526102456488
+ ],
+ [
+ -47.38463557000072,
+ -22.222536051553284
+ ],
+ [
+ -47.38479941378334,
+ -22.22257969352185
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "28",
+ "Name": "Curvas",
+ "Length": 198.43069290515652,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "28",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38292783992922,
+ -22.222285068227627
+ ],
+ [
+ -47.38300781742566,
+ -22.222281313611887
+ ],
+ [
+ -47.3830590954138,
+ -22.222278648992916
+ ],
+ [
+ -47.38311123059949,
+ -22.222276040603063
+ ],
+ [
+ -47.38316399141664,
+ -22.222273185818572
+ ],
+ [
+ -47.38321762471953,
+ -22.222270314911157
+ ],
+ [
+ -47.38327457621789,
+ -22.222267153884786
+ ],
+ [
+ -47.38333776390634,
+ -22.222264629600996
+ ],
+ [
+ -47.38340098046843,
+ -22.22226363750961
+ ],
+ [
+ -47.38346453810386,
+ -22.222263615989597
+ ],
+ [
+ -47.38353467282841,
+ -22.222265647974538
+ ],
+ [
+ -47.3836036732674,
+ -22.222270632517834
+ ],
+ [
+ -47.38363364890735,
+ -22.222273475385396
+ ],
+ [
+ -47.38366209824217,
+ -22.2222758067428
+ ],
+ [
+ -47.383701068259015,
+ -22.222279860179693
+ ],
+ [
+ -47.383740098039404,
+ -22.222284987478503
+ ],
+ [
+ -47.383775686302045,
+ -22.222290652266313
+ ],
+ [
+ -47.3838098326669,
+ -22.222296458450316
+ ],
+ [
+ -47.38384234839553,
+ -22.22230271273951
+ ],
+ [
+ -47.383869334486796,
+ -22.222307962516346
+ ],
+ [
+ -47.38389530770288,
+ -22.222312974628856
+ ],
+ [
+ -47.38392529344557,
+ -22.22231878682647
+ ],
+ [
+ -47.38395626071008,
+ -22.222325081288027
+ ],
+ [
+ -47.38399130016915,
+ -22.222332416334165
+ ],
+ [
+ -47.38402458434603,
+ -22.22234039668815
+ ],
+ [
+ -47.38405856546772,
+ -22.222348571936124
+ ],
+ [
+ -47.38408866722086,
+ -22.222356842619238
+ ],
+ [
+ -47.38411352941561,
+ -22.22236315255286
+ ],
+ [
+ -47.384148300803226,
+ -22.22237244050311
+ ],
+ [
+ -47.384174569509746,
+ -22.22238001802367
+ ],
+ [
+ -47.38420397006773,
+ -22.22238765927832
+ ],
+ [
+ -47.38423956392792,
+ -22.222398251178827
+ ],
+ [
+ -47.384268763838115,
+ -22.22240723337074
+ ],
+ [
+ -47.38429660891979,
+ -22.22241577016705
+ ],
+ [
+ -47.38432009321159,
+ -22.22242309087904
+ ],
+ [
+ -47.38434477386092,
+ -22.222430366521483
+ ],
+ [
+ -47.38437828727121,
+ -22.222440354475854
+ ],
+ [
+ -47.384407948791335,
+ -22.222450299863997
+ ],
+ [
+ -47.38442689184656,
+ -22.22245623687197
+ ],
+ [
+ -47.384453272749354,
+ -22.222463882045872
+ ],
+ [
+ -47.38447972227097,
+ -22.22247236453422
+ ],
+ [
+ -47.38450384793812,
+ -22.222479189182003
+ ],
+ [
+ -47.384532582405214,
+ -22.2224882526155
+ ],
+ [
+ -47.38456455592056,
+ -22.22249778758644
+ ],
+ [
+ -47.38458964129532,
+ -22.22250661630028
+ ],
+ [
+ -47.38461197340864,
+ -22.22251331364882
+ ],
+ [
+ -47.38464013930097,
+ -22.2225231840373
+ ],
+ [
+ -47.38480947915429,
+ -22.22256828995442
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "29",
+ "Name": "Curvas",
+ "Length": 198.68803009563578,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "29",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38293569362549,
+ -22.222271140944883
+ ],
+ [
+ -47.38300704599692,
+ -22.222267791242135
+ ],
+ [
+ -47.38305829999056,
+ -22.222265127870447
+ ],
+ [
+ -47.38311041851031,
+ -22.222262520314867
+ ],
+ [
+ -47.3831631476369,
+ -22.222259667245538
+ ],
+ [
+ -47.38321677462249,
+ -22.222256796674056
+ ],
+ [
+ -47.383273831705765,
+ -22.222253629787783
+ ],
+ [
+ -47.383337329552,
+ -22.222251093114004
+ ],
+ [
+ -47.38340085526159,
+ -22.222250096171585
+ ],
+ [
+ -47.38346476169027,
+ -22.22225007453398
+ ],
+ [
+ -47.383535461947396,
+ -22.22225212290445
+ ],
+ [
+ -47.383604972885706,
+ -22.222257144326495
+ ],
+ [
+ -47.38363502345432,
+ -22.222259994300508
+ ],
+ [
+ -47.383663543373814,
+ -22.222262331442376
+ ],
+ [
+ -47.383702891969115,
+ -22.22226642425717
+ ],
+ [
+ -47.38374233991603,
+ -22.22227160649038
+ ],
+ [
+ -47.38377821825726,
+ -22.22227731745196
+ ],
+ [
+ -47.38381261069857,
+ -22.22228316547861
+ ],
+ [
+ -47.383845306890855,
+ -22.222289454479675
+ ],
+ [
+ -47.38387229757011,
+ -22.222294705149253
+ ],
+ [
+ -47.38389825932011,
+ -22.22229971504936
+ ],
+ [
+ -47.383928326712834,
+ -22.222305543068927
+ ],
+ [
+ -47.38395940691182,
+ -22.222311860485977
+ ],
+ [
+ -47.38399470961437,
+ -22.222319250638915
+ ],
+ [
+ -47.38402821128224,
+ -22.22232728313973
+ ],
+ [
+ -47.38406244411498,
+ -22.222335518942298
+ ],
+ [
+ -47.38409263829794,
+ -22.222343815021453
+ ],
+ [
+ -47.38411744739442,
+ -22.222350111479074
+ ],
+ [
+ -47.384152458678045,
+ -22.22235946350933
+ ],
+ [
+ -47.38417867755569,
+ -22.222367026656368
+ ],
+ [
+ -47.38420814051903,
+ -22.22237468413046
+ ],
+ [
+ -47.384244059133714,
+ -22.222385372670594
+ ],
+ [
+ -47.384273326344676,
+ -22.222394375565095
+ ],
+ [
+ -47.38430119215102,
+ -22.222402918708806
+ ],
+ [
+ -47.384324597269405,
+ -22.22241021474037
+ ],
+ [
+ -47.38434918578973,
+ -22.222417463224126
+ ],
+ [
+ -47.38438296954703,
+ -22.22242753174984
+ ],
+ [
+ -47.38441273313778,
+ -22.22243751136206
+ ],
+ [
+ -47.3844313735466,
+ -22.2224433535167
+ ],
+ [
+ -47.3844578031827,
+ -22.222451012813625
+ ],
+ [
+ -47.384484206003435,
+ -22.22245948032498
+ ],
+ [
+ -47.38450829629643,
+ -22.222466294966296
+ ],
+ [
+ -47.38453713415392,
+ -22.222475391011415
+ ],
+ [
+ -47.38456934849375,
+ -22.2224849977999
+ ],
+ [
+ -47.384594445021975,
+ -22.22249383043938
+ ],
+ [
+ -47.3846167673089,
+ -22.222500524841088
+ ],
+ [
+ -47.38464470860049,
+ -22.222510316521266
+ ],
+ [
+ -47.384819544523644,
+ -22.222556886386496
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "30",
+ "Name": "Curvas",
+ "Length": 198.94536728593886,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "30",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382943547320316,
+ -22.222257213661862
+ ],
+ [
+ -47.38300627456847,
+ -22.222254268872348
+ ],
+ [
+ -47.38305750456762,
+ -22.222251606747935
+ ],
+ [
+ -47.38310960642143,
+ -22.222249000026622
+ ],
+ [
+ -47.383162303857475,
+ -22.222246148672443
+ ],
+ [
+ -47.3832159245033,
+ -22.22224327843816
+ ],
+ [
+ -47.38327308719392,
+ -22.222240105690737
+ ],
+ [
+ -47.383336895197885,
+ -22.222237556626986
+ ],
+ [
+ -47.38340073005493,
+ -22.222236554833522
+ ],
+ [
+ -47.38346498527677,
+ -22.22223653307833
+ ],
+ [
+ -47.38353625106637,
+ -22.222238597834348
+ ],
+ [
+ -47.383606272503904,
+ -22.22224365613513
+ ],
+ [
+ -47.38363639800118,
+ -22.2222465132156
+ ],
+ [
+ -47.38366498850531,
+ -22.222248856141935
+ ],
+ [
+ -47.383704715679,
+ -22.222252988334613
+ ],
+ [
+ -47.38374458179239,
+ -22.22225822550224
+ ],
+ [
+ -47.38378075021213,
+ -22.22226398263762
+ ],
+ [
+ -47.38381538872983,
+ -22.222269872506917
+ ],
+ [
+ -47.38384826538575,
+ -22.22227619621983
+ ],
+ [
+ -47.383875260653,
+ -22.22228144778215
+ ],
+ [
+ -47.383901210936926,
+ -22.222286455469824
+ ],
+ [
+ -47.383931359900934,
+ -22.222292299295315
+ ],
+ [
+ -47.38396255311311,
+ -22.222298639683903
+ ],
+ [
+ -47.383998119059065,
+ -22.22230608494362
+ ],
+ [
+ -47.38403183821789,
+ -22.222314169591257
+ ],
+ [
+ -47.38406632270364,
+ -22.222322465932482
+ ],
+ [
+ -47.38409660937442,
+ -22.22233078742362
+ ],
+ [
+ -47.384121365372614,
+ -22.22233707040525
+ ],
+ [
+ -47.384156616552204,
+ -22.222346486515516
+ ],
+ [
+ -47.38418278560098,
+ -22.222354035289026
+ ],
+ [
+ -47.38421231096968,
+ -22.222361708982525
+ ],
+ [
+ -47.3842485543388,
+ -22.22237249416227
+ ],
+ [
+ -47.38427788885052,
+ -22.22238151775936
+ ],
+ [
+ -47.38430577528286,
+ -22.22239006721972
+ ],
+ [
+ -47.38432910132652,
+ -22.222397338601635
+ ],
+ [
+ -47.38435359771784,
+ -22.22240455992669
+ ],
+ [
+ -47.38438765182213,
+ -22.222414709023738
+ ],
+ [
+ -47.38441751748348,
+ -22.22242472286003
+ ],
+ [
+ -47.38443585524593,
+ -22.22243047016134
+ ],
+ [
+ -47.38446233361534,
+ -22.222438143581304
+ ],
+ [
+ -47.38448868973521,
+ -22.222446596115677
+ ],
+ [
+ -47.38451274465404,
+ -22.222453400750492
+ ],
+ [
+ -47.38454168590191,
+ -22.222462529407256
+ ],
+ [
+ -47.38457414106619,
+ -22.222472208013286
+ ],
+ [
+ -47.384599248747875,
+ -22.22248104457838
+ ],
+ [
+ -47.38462156120839,
+ -22.22248773603325
+ ],
+ [
+ -47.384649277899285,
+ -22.222497449005136
+ ],
+ [
+ -47.38482960989139,
+ -22.22254548281807
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "31",
+ "Name": "Curvas",
+ "Length": 199.2027044752691,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "31",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38295140101364,
+ -22.22224328637866
+ ],
+ [
+ -47.38300550314031,
+ -22.222240746502518
+ ],
+ [
+ -47.38305670914493,
+ -22.222238085625378
+ ],
+ [
+ -47.38310879433281,
+ -22.222235479738323
+ ],
+ [
+ -47.38316146007833,
+ -22.22223263009928
+ ],
+ [
+ -47.383215074407595,
+ -22.222229760200925
+ ],
+ [
+ -47.38327234268235,
+ -22.22222658159366
+ ],
+ [
+ -47.383336460843964,
+ -22.222224020139976
+ ],
+ [
+ -47.3834006048484,
+ -22.222223013495423
+ ],
+ [
+ -47.38346520886335,
+ -22.22222299162269
+ ],
+ [
+ -47.383537040185324,
+ -22.22222507276421
+ ],
+ [
+ -47.38360757212198,
+ -22.222230167943756
+ ],
+ [
+ -47.383637772547885,
+ -22.222233032130692
+ ],
+ [
+ -47.38366643363663,
+ -22.22223538084152
+ ],
+ [
+ -47.38370653938866,
+ -22.222239552412063
+ ],
+ [
+ -47.38374682366843,
+ -22.222244844514076
+ ],
+ [
+ -47.38378328216664,
+ -22.222250647823223
+ ],
+ [
+ -47.38381816676069,
+ -22.22225657953518
+ ],
+ [
+ -47.38385122388021,
+ -22.222262937959933
+ ],
+ [
+ -47.38387822373544,
+ -22.22226819041502
+ ],
+ [
+ -47.38390416255331,
+ -22.222273195890274
+ ],
+ [
+ -47.383934393169774,
+ -22.222279055538188
+ ],
+ [
+ -47.38396569931391,
+ -22.22228541888179
+ ],
+ [
+ -47.38400152850323,
+ -22.22229291924828
+ ],
+ [
+ -47.38403546515298,
+ -22.222301056042767
+ ],
+ [
+ -47.38407020135123,
+ -22.222309412938984
+ ],
+ [
+ -47.384100580450266,
+ -22.22231775982574
+ ],
+ [
+ -47.38412528335019,
+ -22.222324029331396
+ ],
+ [
+ -47.38416077442569,
+ -22.222333509521622
+ ],
+ [
+ -47.3841868936456,
+ -22.222341043921638
+ ],
+ [
+ -47.38421648141967,
+ -22.22234873383458
+ ],
+ [
+ -47.38425304954316,
+ -22.222359615653843
+ ],
+ [
+ -47.38428245135561,
+ -22.222368659953545
+ ],
+ [
+ -47.38431035851588,
+ -22.22237721576232
+ ],
+ [
+ -47.38433360538292,
+ -22.22238446246284
+ ],
+ [
+ -47.38435800964525,
+ -22.2223916566292
+ ],
+ [
+ -47.38439233409648,
+ -22.222401886297554
+ ],
+ [
+ -47.3844223018284,
+ -22.222411934357922
+ ],
+ [
+ -47.38444033694457,
+ -22.222417586805935
+ ],
+ [
+ -47.384466864047255,
+ -22.222425274348907
+ ],
+ [
+ -47.38449317346626,
+ -22.222433711906298
+ ],
+ [
+ -47.38451719301094,
+ -22.222440506534642
+ ],
+ [
+ -47.384546237649175,
+ -22.222449667803044
+ ],
+ [
+ -47.384578933637854,
+ -22.22245941822659
+ ],
+ [
+ -47.384604052472994,
+ -22.222468258717278
+ ],
+ [
+ -47.38462635510711,
+ -22.222474947225354
+ ],
+ [
+ -47.38465384719734,
+ -22.22248458148892
+ ],
+ [
+ -47.384839675257545,
+ -22.22253407924916
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "32",
+ "Name": "Curvas",
+ "Length": 199.46004165920763,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "32",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38295925470557,
+ -22.222229359095092
+ ],
+ [
+ -47.38300473171242,
+ -22.22222722413266
+ ],
+ [
+ -47.383055913722565,
+ -22.22222456450279
+ ],
+ [
+ -47.383107982244496,
+ -22.222221959450003
+ ],
+ [
+ -47.383160616299485,
+ -22.222219111526112
+ ],
+ [
+ -47.38321422428823,
+ -22.222216241965
+ ],
+ [
+ -47.383271598171056,
+ -22.22221305749652
+ ],
+ [
+ -47.38333602649029,
+ -22.222210483652905
+ ],
+ [
+ -47.38340047964204,
+ -22.2222094721573
+ ],
+ [
+ -47.38346543245003,
+ -22.222209450167007
+ ],
+ [
+ -47.38353782930426,
+ -22.222211547694087
+ ],
+ [
+ -47.38360887173994,
+ -22.22221667975237
+ ],
+ [
+ -47.383639147094485,
+ -22.222219551045775
+ ],
+ [
+ -47.383667878767824,
+ -22.22222190554106
+ ],
+ [
+ -47.3837083630981,
+ -22.22222611648949
+ ],
+ [
+ -47.38374906554419,
+ -22.22223146352592
+ ],
+ [
+ -47.3837858141208,
+ -22.22223731300885
+ ],
+ [
+ -47.383820944791154,
+ -22.222243286563437
+ ],
+ [
+ -47.383854182374236,
+ -22.222249679700035
+ ],
+ [
+ -47.38388118681744,
+ -22.22225493304787
+ ],
+ [
+ -47.38390711416925,
+ -22.22225993631069
+ ],
+ [
+ -47.38393742635454,
+ -22.222265811764046
+ ],
+ [
+ -47.38396884551426,
+ -22.222272198079658
+ ],
+ [
+ -47.384004937946884,
+ -22.222279753552918
+ ],
+ [
+ -47.38403909208752,
+ -22.222287942494233
+ ],
+ [
+ -47.384074079937164,
+ -22.222296359928652
+ ],
+ [
+ -47.384104551525496,
+ -22.2223047322278
+ ],
+ [
+ -47.384129201327156,
+ -22.222310988257473
+ ],
+ [
+ -47.384164932298546,
+ -22.222320532527686
+ ],
+ [
+ -47.3841910016896,
+ -22.222328052554186
+ ],
+ [
+ -47.384220651869,
+ -22.222335758686526
+ ],
+ [
+ -47.38425754474681,
+ -22.222346737145372
+ ],
+ [
+ -47.38428701386,
+ -22.222355802147664
+ ],
+ [
+ -47.384314941643005,
+ -22.222364364272075
+ ],
+ [
+ -47.38433810943861,
+ -22.22237158632396
+ ],
+ [
+ -47.38436242157195,
+ -22.22237875333164
+ ],
+ [
+ -47.38439701637008,
+ -22.2223890635713
+ ],
+ [
+ -47.38442708617257,
+ -22.222399145855732
+ ],
+ [
+ -47.38444481864248,
+ -22.222404703450437
+ ],
+ [
+ -47.384471394478446,
+ -22.222412405116447
+ ],
+ [
+ -47.38449765719661,
+ -22.222420827696833
+ ],
+ [
+ -47.38452164136715,
+ -22.22242761231872
+ ],
+ [
+ -47.38455078939572,
+ -22.222436806198736
+ ],
+ [
+ -47.38458372620875,
+ -22.22244662843979
+ ],
+ [
+ -47.38460885619736,
+ -22.22245547285611
+ ],
+ [
+ -47.38463114900507,
+ -22.222462158417354
+ ],
+ [
+ -47.38465841649468,
+ -22.222471713972645
+ ],
+ [
+ -47.38484974062209,
+ -22.222522675679752
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "33",
+ "Name": "Curvas",
+ "Length": 199.72955099262862,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "33",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382967000971476,
+ -22.22221562231184
+ ],
+ [
+ -47.38305511830046,
+ -22.222211043380174
+ ],
+ [
+ -47.38310717015644,
+ -22.22220843916164
+ ],
+ [
+ -47.38315977252095,
+ -22.222205592952893
+ ],
+ [
+ -47.383213374193886,
+ -22.22220272372767
+ ],
+ [
+ -47.38327085366004,
+ -22.222199533399383
+ ],
+ [
+ -47.38333559213682,
+ -22.222196947165813
+ ],
+ [
+ -47.38340035443583,
+ -22.22219593081917
+ ],
+ [
+ -47.38346565603677,
+ -22.222195908711324
+ ],
+ [
+ -47.38353861842316,
+ -22.222198022623953
+ ],
+ [
+ -47.38361017135777,
+ -22.22220319156099
+ ],
+ [
+ -47.38364052164094,
+ -22.22220606996087
+ ],
+ [
+ -47.38366932389887,
+ -22.22220843024061
+ ],
+ [
+ -47.38371018680731,
+ -22.222212680566912
+ ],
+ [
+ -47.38375130741963,
+ -22.222218082537733
+ ],
+ [
+ -47.38378834607462,
+ -22.22222397819441
+ ],
+ [
+ -47.38382372282121,
+ -22.222229993591665
+ ],
+ [
+ -47.38385714086782,
+ -22.222236421440115
+ ],
+ [
+ -47.38388414989899,
+ -22.22224167568069
+ ],
+ [
+ -47.38391006578474,
+ -22.222246676731096
+ ],
+ [
+ -47.38394045962488,
+ -22.22225256800738
+ ],
+ [
+ -47.38397199171414,
+ -22.22225897727748
+ ],
+ [
+ -47.38400834739004,
+ -22.222266587857508
+ ],
+ [
+ -47.384042719021465,
+ -22.222274828945636
+ ],
+ [
+ -47.384077958585024,
+ -22.22228330693546
+ ],
+ [
+ -47.3841085226001,
+ -22.222291704629797
+ ],
+ [
+ -47.384133119303506,
+ -22.22229794718351
+ ],
+ [
+ -47.38416909017073,
+ -22.222307555533693
+ ],
+ [
+ -47.384195109732936,
+ -22.22231506118666
+ ],
+ [
+ -47.384224822317684,
+ -22.22232278353844
+ ],
+ [
+ -47.384262039949746,
+ -22.222333858636844
+ ],
+ [
+ -47.38429157636365,
+ -22.22234294434171
+ ],
+ [
+ -47.38431952487782,
+ -22.222351512815557
+ ],
+ [
+ -47.38434261349357,
+ -22.222358710185013
+ ],
+ [
+ -47.38436683349794,
+ -22.22236585003403
+ ],
+ [
+ -47.38440169864292,
+ -22.222376240844966
+ ],
+ [
+ -47.38443187051597,
+ -22.222386357353475
+ ],
+ [
+ -47.384449300339654,
+ -22.222391820094884
+ ],
+ [
+ -47.3844759249089,
+ -22.222399535883934
+ ],
+ [
+ -47.38450214092622,
+ -22.222407943487344
+ ],
+ [
+ -47.38452608972264,
+ -22.222414718102716
+ ],
+ [
+ -47.3845553411415,
+ -22.22242394459437
+ ],
+ [
+ -47.38458851877886,
+ -22.222433838652933
+ ],
+ [
+ -47.38461365992095,
+ -22.22244268699486
+ ],
+ [
+ -47.384635942902264,
+ -22.222449369609276
+ ],
+ [
+ -47.384662985791294,
+ -22.222458846456316
+ ],
+ [
+ -47.38485980598505,
+ -22.22251127210985
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "34",
+ "Name": "Curvas",
+ "Length": 199.98403930246627,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "34",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38297487980302,
+ -22.22220165044147
+ ],
+ [
+ -47.38305432287866,
+ -22.22219752225751
+ ],
+ [
+ -47.38310635806871,
+ -22.22219491887324
+ ],
+ [
+ -47.38315892874269,
+ -22.222192074379645
+ ],
+ [
+ -47.383212524074345,
+ -22.222189205491688
+ ],
+ [
+ -47.3832701091493,
+ -22.22218600930218
+ ],
+ [
+ -47.38333515778356,
+ -22.22218341067868
+ ],
+ [
+ -47.38340022922979,
+ -22.222182389481
+ ],
+ [
+ -47.383465879623635,
+ -22.222182367255606
+ ],
+ [
+ -47.38353940754206,
+ -22.222184497553805
+ ],
+ [
+ -47.3836114709755,
+ -22.222189703369587
+ ],
+ [
+ -47.383641896187264,
+ -22.222192588875927
+ ],
+ [
+ -47.38367076902978,
+ -22.222194954940136
+ ],
+ [
+ -47.38371201051632,
+ -22.222199244644322
+ ],
+ [
+ -47.38375354929478,
+ -22.222204701549543
+ ],
+ [
+ -47.38379087802807,
+ -22.22221064338
+ ],
+ [
+ -47.38382650085088,
+ -22.222216700619885
+ ],
+ [
+ -47.38386009936097,
+ -22.222223163180168
+ ],
+ [
+ -47.38388711298012,
+ -22.222228418313495
+ ],
+ [
+ -47.38391301739982,
+ -22.222233417151465
+ ],
+ [
+ -47.38394349280634,
+ -22.222239324232696
+ ],
+ [
+ -47.38397513791354,
+ -22.222245756475292
+ ],
+ [
+ -47.38401175683267,
+ -22.222253422162076
+ ],
+ [
+ -47.3840463459549,
+ -22.222261715397018
+ ],
+ [
+ -47.38408183716828,
+ -22.222270253924634
+ ],
+ [
+ -47.384112493674095,
+ -22.22227867703176
+ ],
+ [
+ -47.38413703727926,
+ -22.222284906109486
+ ],
+ [
+ -47.384173248042266,
+ -22.222294578539625
+ ],
+ [
+ -47.384199217775645,
+ -22.222302069819094
+ ],
+ [
+ -47.384228992765706,
+ -22.222309808390285
+ ],
+ [
+ -47.384266535151966,
+ -22.222320980128238
+ ],
+ [
+ -47.38429613886659,
+ -22.222330086535685
+ ],
+ [
+ -47.38432410800022,
+ -22.222338661324134
+ ],
+ [
+ -47.384347117547826,
+ -22.22234583404599
+ ],
+ [
+ -47.38437124542325,
+ -22.22235294673633
+ ],
+ [
+ -47.38440638091502,
+ -22.222363418118558
+ ],
+ [
+ -47.38443665485861,
+ -22.22237356885111
+ ],
+ [
+ -47.38445378203615,
+ -22.222378936739258
+ ],
+ [
+ -47.38448045533865,
+ -22.22238666665133
+ ],
+ [
+ -47.38450662465514,
+ -22.22239505927775
+ ],
+ [
+ -47.38453053807742,
+ -22.222401823886642
+ ],
+ [
+ -47.38455989288659,
+ -22.222411082989918
+ ],
+ [
+ -47.384593311348226,
+ -22.222421048865964
+ ],
+ [
+ -47.384618463643775,
+ -22.222429901133523
+ ],
+ [
+ -47.38464073679869,
+ -22.222436580801112
+ ],
+ [
+ -47.38466755508718,
+ -22.222445978939888
+ ],
+ [
+ -47.384869871346396,
+ -22.222499868539447
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "35",
+ "Name": "Curvas",
+ "Length": 200.23852760380078,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "35",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38298275863312,
+ -22.222187678570812
+ ],
+ [
+ -47.383053527457136,
+ -22.222184001134806
+ ],
+ [
+ -47.38310554598124,
+ -22.222181398584784
+ ],
+ [
+ -47.383158084964705,
+ -22.222178555806344
+ ],
+ [
+ -47.38321167398136,
+ -22.222175687254218
+ ],
+ [
+ -47.38326936463879,
+ -22.22217248520497
+ ],
+ [
+ -47.38333472343051,
+ -22.222169874191543
+ ],
+ [
+ -47.3834001040239,
+ -22.222168848142847
+ ],
+ [
+ -47.38346610321057,
+ -22.22216882579991
+ ],
+ [
+ -47.38354019666092,
+ -22.222170972483635
+ ],
+ [
+ -47.38361277059311,
+ -22.222176215178187
+ ],
+ [
+ -47.383643270733465,
+ -22.222179107790968
+ ],
+ [
+ -47.383672214160526,
+ -22.222181479639683
+ ],
+ [
+ -47.3837138342251,
+ -22.222185808721715
+ ],
+ [
+ -47.38375579116963,
+ -22.22219132056133
+ ],
+ [
+ -47.38379340998116,
+ -22.22219730856557
+ ],
+ [
+ -47.38382927888013,
+ -22.222203407648045
+ ],
+ [
+ -47.38386305785369,
+ -22.22220990492017
+ ],
+ [
+ -47.383890076060815,
+ -22.222215160946252
+ ],
+ [
+ -47.38391596901446,
+ -22.222220157571815
+ ],
+ [
+ -47.38394652607819,
+ -22.22222608047646
+ ],
+ [
+ -47.38397828411248,
+ -22.222232535673072
+ ],
+ [
+ -47.38401516627474,
+ -22.222240256466616
+ ],
+ [
+ -47.38404997288775,
+ -22.222248601848328
+ ],
+ [
+ -47.384085715816404,
+ -22.222257200931743
+ ],
+ [
+ -47.38411646474745,
+ -22.222265649433663
+ ],
+ [
+ -47.38414095525438,
+ -22.222271865035406
+ ],
+ [
+ -47.38417740591314,
+ -22.222281601545504
+ ],
+ [
+ -47.384203325817694,
+ -22.222289078451468
+ ],
+ [
+ -47.38423316321306,
+ -22.222296833242076
+ ],
+ [
+ -47.38427103035349,
+ -22.222308101619564
+ ],
+ [
+ -47.38430070136881,
+ -22.22231722872959
+ ],
+ [
+ -47.384328691236824,
+ -22.222325809868487
+ ],
+ [
+ -47.38435162160134,
+ -22.222332957906893
+ ],
+ [
+ -47.384375657347846,
+ -22.22234004343857
+ ],
+ [
+ -47.38441106318636,
+ -22.222350595392065
+ ],
+ [
+ -47.38444143920047,
+ -22.22236078034867
+ ],
+ [
+ -47.384458263731915,
+ -22.222366053383553
+ ],
+ [
+ -47.38448498576767,
+ -22.22237379741866
+ ],
+ [
+ -47.38451110838333,
+ -22.2223821750681
+ ],
+ [
+ -47.3845349864315,
+ -22.22238892967052
+ ],
+ [
+ -47.38456444463095,
+ -22.22239822138539
+ ],
+ [
+ -47.384598103916815,
+ -22.222408259078943
+ ],
+ [
+ -47.38462326736582,
+ -22.222417115272133
+ ],
+ [
+ -47.38464553069434,
+ -22.222423791992867
+ ],
+ [
+ -47.38467212438232,
+ -22.222433111423403
+ ],
+ [
+ -47.38487993670614,
+ -22.222488464968563
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "36",
+ "Name": "Curvas",
+ "Length": 200.4930159087601,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "36",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382990637461745,
+ -22.222173706699902
+ ],
+ [
+ -47.3830527320359,
+ -22.22217048001207
+ ],
+ [
+ -47.38310473389407,
+ -22.222167878296315
+ ],
+ [
+ -47.38315724118704,
+ -22.222165037233022
+ ],
+ [
+ -47.383210823861646,
+ -22.222162169018222
+ ],
+ [
+ -47.3832686201286,
+ -22.222158961107688
+ ],
+ [
+ -47.38333428907768,
+ -22.222156337704355
+ ],
+ [
+ -47.38339997881817,
+ -22.222155306804627
+ ],
+ [
+ -47.38346632679761,
+ -22.222155284344154
+ ],
+ [
+ -47.383540985779774,
+ -22.22215744741346
+ ],
+ [
+ -47.38361407021059,
+ -22.22216272698677
+ ],
+ [
+ -47.38364464527953,
+ -22.222165626706012
+ ],
+ [
+ -47.38367365929114,
+ -22.222168004339192
+ ],
+ [
+ -47.38371565793366,
+ -22.222172372799132
+ ],
+ [
+ -47.38375803304419,
+ -22.222177939573115
+ ],
+ [
+ -47.3837959419339,
+ -22.222183973751125
+ ],
+ [
+ -47.383832056908986,
+ -22.22219011467623
+ ],
+ [
+ -47.38386601634597,
+ -22.222196646660176
+ ],
+ [
+ -47.38389303914107,
+ -22.222201903579013
+ ],
+ [
+ -47.383918920628666,
+ -22.222206897992134
+ ],
+ [
+ -47.38394955925637,
+ -22.22221283670124
+ ],
+ [
+ -47.383981430310946,
+ -22.22221931487083
+ ],
+ [
+ -47.384018575716325,
+ -22.222227090771117
+ ],
+ [
+ -47.38405359982004,
+ -22.22223548829961
+ ],
+ [
+ -47.38408959439703,
+ -22.22224414792042
+ ],
+ [
+ -47.38412043582019,
+ -22.222252621835523
+ ],
+ [
+ -47.384144873228905,
+ -22.222258823961276
+ ],
+ [
+ -47.38418156378338,
+ -22.22226862455134
+ ],
+ [
+ -47.3842074338591,
+ -22.22227608708379
+ ],
+ [
+ -47.384237333659776,
+ -22.22228385809379
+ ],
+ [
+ -47.38427552555428,
+ -22.222295223110816
+ ],
+ [
+ -47.38430526387028,
+ -22.222304370923418
+ ],
+ [
+ -47.384333274354525,
+ -22.222312958375912
+ ],
+ [
+ -47.38435612565415,
+ -22.222320081767737
+ ],
+ [
+ -47.38438006927175,
+ -22.222327140140738
+ ],
+ [
+ -47.38441574545698,
+ -22.22233777266549
+ ],
+ [
+ -47.38444622354158,
+ -22.22234799184615
+ ],
+ [
+ -47.38446274542699,
+ -22.222353170027787
+ ],
+ [
+ -47.384489516195984,
+ -22.222360928185907
+ ],
+ [
+ -47.384515592110816,
+ -22.222369290858357
+ ],
+ [
+ -47.38453943478487,
+ -22.222376035454303
+ ],
+ [
+ -47.38456899637459,
+ -22.222385359780787
+ ],
+ [
+ -47.38460289648465,
+ -22.22239546929181
+ ],
+ [
+ -47.38462807108711,
+ -22.222404329410633
+ ],
+ [
+ -47.384650324589224,
+ -22.222411003184536
+ ],
+ [
+ -47.384676693676745,
+ -22.22242024390683
+ ],
+ [
+ -47.38489000206429,
+ -22.222477061397186
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "37",
+ "Name": "Curvas",
+ "Length": 200.7406948584605,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "37",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382998576216394,
+ -22.222159628556668
+ ],
+ [
+ -47.38310392180717,
+ -22.222154358007803
+ ],
+ [
+ -47.38315639740967,
+ -22.22215151865966
+ ],
+ [
+ -47.38320997377003,
+ -22.222148650780642
+ ],
+ [
+ -47.38326787561869,
+ -22.222145437010376
+ ],
+ [
+ -47.383333854725095,
+ -22.222142801217153
+ ],
+ [
+ -47.38339985361259,
+ -22.222141765466404
+ ],
+ [
+ -47.38346655038473,
+ -22.222141742888393
+ ],
+ [
+ -47.38354177489861,
+ -22.22214392234329
+ ],
+ [
+ -47.383615369827965,
+ -22.222149238795343
+ ],
+ [
+ -47.38364601982544,
+ -22.222152145621067
+ ],
+ [
+ -47.383675104421606,
+ -22.22215452903871
+ ],
+ [
+ -47.383717481641995,
+ -22.222158936876525
+ ],
+ [
+ -47.383760274918444,
+ -22.22216455858489
+ ],
+ [
+ -47.38379847388626,
+ -22.222170638936632
+ ],
+ [
+ -47.38383483493743,
+ -22.22217682170438
+ ],
+ [
+ -47.38386897483781,
+ -22.222183388400136
+ ],
+ [
+ -47.3838960022209,
+ -22.22218864621173
+ ],
+ [
+ -47.38392187224243,
+ -22.222193638412442
+ ],
+ [
+ -47.38395259252969,
+ -22.22219959294541
+ ],
+ [
+ -47.383984576508915,
+ -22.222206094068536
+ ],
+ [
+ -47.384021985157354,
+ -22.222213925075557
+ ],
+ [
+ -47.384057226751764,
+ -22.22222237475087
+ ],
+ [
+ -47.384093473045304,
+ -22.222231094927817
+ ],
+ [
+ -47.38412440689231,
+ -22.222239594237326
+ ],
+ [
+ -47.38414879120281,
+ -22.222245782887132
+ ],
+ [
+ -47.38418572165295,
+ -22.222255647557116
+ ],
+ [
+ -47.38421154189986,
+ -22.222263095716038
+ ],
+ [
+ -47.384241504105816,
+ -22.222270882945484
+ ],
+ [
+ -47.38428002075434,
+ -22.222282344601975
+ ],
+ [
+ -47.38430982637101,
+ -22.222291513117177
+ ],
+ [
+ -47.38433785759294,
+ -22.22230010692113
+ ],
+ [
+ -47.38436062970626,
+ -22.22230720562851
+ ],
+ [
+ -47.38438448119494,
+ -22.22231423684285
+ ],
+ [
+ -47.38442042772683,
+ -22.22232494993884
+ ],
+ [
+ -47.38445100788192,
+ -22.22233520334352
+ ],
+ [
+ -47.384467227121334,
+ -22.22234028667196
+ ],
+ [
+ -47.38449404662359,
+ -22.222348058953088
+ ],
+ [
+ -47.38452007583759,
+ -22.222356406648583
+ ],
+ [
+ -47.38454388313754,
+ -22.22236314123804
+ ],
+ [
+ -47.38457354811751,
+ -22.222372498176135
+ ],
+ [
+ -47.384607689051705,
+ -22.222382679504594
+ ],
+ [
+ -47.384632874807615,
+ -22.222391543549033
+ ],
+ [
+ -47.384655118483344,
+ -22.222398214376135
+ ],
+ [
+ -47.38468126297046,
+ -22.222407376390212
+ ],
+ [
+ -47.38490006742085,
+ -22.222465657825296
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "38",
+ "Name": "Curvas",
+ "Length": 200.99628884021888,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "38",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38300644531124,
+ -22.222145673941377
+ ],
+ [
+ -47.38310310972058,
+ -22.222140837719248
+ ],
+ [
+ -47.38315555363259,
+ -22.22213800008626
+ ],
+ [
+ -47.38320912365014,
+ -22.222135132544594
+ ],
+ [
+ -47.38326713110905,
+ -22.22213191291303
+ ],
+ [
+ -47.38333342037271,
+ -22.2221292647299
+ ],
+ [
+ -47.38339972840717,
+ -22.22212822412814
+ ],
+ [
+ -47.38346677397195,
+ -22.22212820143261
+ ],
+ [
+ -47.383542564017425,
+ -22.2221303972731
+ ],
+ [
+ -47.38361666944521,
+ -22.222135750603908
+ ],
+ [
+ -47.38364739437124,
+ -22.22213866453609
+ ],
+ [
+ -47.38367654955193,
+ -22.222141053738195
+ ],
+ [
+ -47.38371930535012,
+ -22.22214550095389
+ ],
+ [
+ -47.383762516792395,
+ -22.222151177596647
+ ],
+ [
+ -47.38380100583829,
+ -22.222157304122153
+ ],
+ [
+ -47.38383761296549,
+ -22.222163528732516
+ ],
+ [
+ -47.383871933329225,
+ -22.22217013014009
+ ],
+ [
+ -47.38389896530029,
+ -22.222175388844438
+ ],
+ [
+ -47.38392482385577,
+ -22.222180378832714
+ ],
+ [
+ -47.3839556257046,
+ -22.22218634916965
+ ],
+ [
+ -47.383987722706436,
+ -22.222192873266234
+ ],
+ [
+ -47.38402539459789,
+ -22.222200759379987
+ ],
+ [
+ -47.384060853682946,
+ -22.22220926120207
+ ],
+ [
+ -47.38409735162334,
+ -22.222218041916033
+ ],
+ [
+ -47.38412837796381,
+ -22.222226566639083
+ ],
+ [
+ -47.384152709176114,
+ -22.222232741812906
+ ],
+ [
+ -47.38418987952186,
+ -22.222242670562842
+ ],
+ [
+ -47.38421564993998,
+ -22.22225010434825
+ ],
+ [
+ -47.38424567455121,
+ -22.222257907797104
+ ],
+ [
+ -47.3842845159537,
+ -22.22226946609309
+ ],
+ [
+ -47.38431438887104,
+ -22.22227865531086
+ ],
+ [
+ -47.38434244070595,
+ -22.222287255427403
+ ],
+ [
+ -47.38436513375763,
+ -22.222294329489202
+ ],
+ [
+ -47.38438889311745,
+ -22.222301333544877
+ ],
+ [
+ -47.38442510999594,
+ -22.222312127212117
+ ],
+ [
+ -47.3844557922215,
+ -22.222322414840853
+ ],
+ [
+ -47.38447170881498,
+ -22.222327403316054
+ ],
+ [
+ -47.38449857705045,
+ -22.2223351897202
+ ],
+ [
+ -47.38452455956365,
+ -22.222343522438702
+ ],
+ [
+ -47.3845483314895,
+ -22.222350247021687
+ ],
+ [
+ -47.3845780998597,
+ -22.222359636571387
+ ],
+ [
+ -47.384612481618,
+ -22.222369889717314
+ ],
+ [
+ -47.384637678527376,
+ -22.222378757687366
+ ],
+ [
+ -47.384659912376705,
+ -22.222385425567644
+ ],
+ [
+ -47.38468583226343,
+ -22.222394508873492
+ ],
+ [
+ -47.3849101327758,
+ -22.22245425425293
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "39",
+ "Name": "Curvas",
+ "Length": 201.2518828172826,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "39",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383014314404605,
+ -22.22213171932584
+ ],
+ [
+ -47.383102297634274,
+ -22.22212731743066
+ ],
+ [
+ -47.38315470985579,
+ -22.22212448151279
+ ],
+ [
+ -47.383208273559866,
+ -22.222121614306868
+ ],
+ [
+ -47.38326638659967,
+ -22.22211838881565
+ ],
+ [
+ -47.38333298602051,
+ -22.222115728242642
+ ],
+ [
+ -47.38339960320189,
+ -22.222114682789883
+ ],
+ [
+ -47.38346699755924,
+ -22.22211465997682
+ ],
+ [
+ -47.383543353136204,
+ -22.22211687220287
+ ],
+ [
+ -47.383617969062335,
+ -22.222122262412473
+ ],
+ [
+ -47.383648768916885,
+ -22.222125183451123
+ ],
+ [
+ -47.38367799468209,
+ -22.222127578437696
+ ],
+ [
+ -47.38372112905802,
+ -22.22213206503125
+ ],
+ [
+ -47.383764758666025,
+ -22.222137796608383
+ ],
+ [
+ -47.383803537789966,
+ -22.222143969307613
+ ],
+ [
+ -47.383840390993136,
+ -22.22215023576059
+ ],
+ [
+ -47.383874891820184,
+ -22.222156871880003
+ ],
+ [
+ -47.38390192837924,
+ -22.22216213147713
+ ],
+ [
+ -47.38392777546866,
+ -22.222167119252983
+ ],
+ [
+ -47.38395865897939,
+ -22.222173105414285
+ ],
+ [
+ -47.38399086890349,
+ -22.222179652463907
+ ],
+ [
+ -47.38402880403792,
+ -22.222187593684392
+ ],
+ [
+ -47.38406448061357,
+ -22.22219614765325
+ ],
+ [
+ -47.38410123027177,
+ -22.222204988923693
+ ],
+ [
+ -47.38413234903468,
+ -22.22221353904079
+ ],
+ [
+ -47.384156627148776,
+ -22.222219700738655
+ ],
+ [
+ -47.3841940373901,
+ -22.2222296935685
+ ],
+ [
+ -47.38421975797942,
+ -22.222237112980398
+ ],
+ [
+ -47.38424984499594,
+ -22.222244932648664
+ ],
+ [
+ -47.38428901115235,
+ -22.22225658758414
+ ],
+ [
+ -47.38431895137033,
+ -22.222265797504477
+ ],
+ [
+ -47.38434702394609,
+ -22.222274403973465
+ ],
+ [
+ -47.38436963780828,
+ -22.222281453349837
+ ],
+ [
+ -47.384393305039275,
+ -22.22228843024687
+ ],
+ [
+ -47.38442979226428,
+ -22.22229930448534
+ ],
+ [
+ -47.3844605765603,
+ -22.222309626338106
+ ],
+ [
+ -47.38447619050789,
+ -22.222314519960097
+ ],
+ [
+ -47.38450310747658,
+ -22.22232232048722
+ ],
+ [
+ -47.384529043289,
+ -22.22233063822878
+ ],
+ [
+ -47.38455277984074,
+ -22.22233735280527
+ ],
+ [
+ -47.38458265160114,
+ -22.22234677496657
+ ],
+ [
+ -47.38461727418352,
+ -22.222357099929948
+ ],
+ [
+ -47.38464248224635,
+ -22.222365971825614
+ ],
+ [
+ -47.38466470626929,
+ -22.22237263675905
+ ],
+ [
+ -47.38469040155566,
+ -22.222381641356716
+ ],
+ [
+ -47.38492019812916,
+ -22.22244285068006
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "40",
+ "Name": "Curvas",
+ "Length": 201.50747679416517,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "40",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383022183496536,
+ -22.222117764710017
+ ],
+ [
+ -47.38310148554825,
+ -22.222113797142036
+ ],
+ [
+ -47.38315386607929,
+ -22.222110962939308
+ ],
+ [
+ -47.3832074234398,
+ -22.222108096070787
+ ],
+ [
+ -47.38326564209058,
+ -22.22210486471823
+ ],
+ [
+ -47.38333255166856,
+ -22.222102191755337
+ ],
+ [
+ -47.38339947799678,
+ -22.222101141451574
+ ],
+ [
+ -47.38346722114664,
+ -22.222101118521003
+ ],
+ [
+ -47.38354414225499,
+ -22.22210334713266
+ ],
+ [
+ -47.38361926867935,
+ -22.22210877422102
+ ],
+ [
+ -47.38365014346241,
+ -22.222111702366128
+ ],
+ [
+ -47.38367943981211,
+ -22.222114103137166
+ ],
+ [
+ -47.383722952765694,
+ -22.2221186291086
+ ],
+ [
+ -47.38376700053938,
+ -22.222124415620108
+ ],
+ [
+ -47.383806069741276,
+ -22.222130634493094
+ ],
+ [
+ -47.38384316902039,
+ -22.222136942788687
+ ],
+ [
+ -47.38387785031073,
+ -22.222143613619917
+ ],
+ [
+ -47.38390489145776,
+ -22.222148874109784
+ ],
+ [
+ -47.38393072708112,
+ -22.222153859673206
+ ],
+ [
+ -47.38396169215107,
+ -22.222159861638005
+ ],
+ [
+ -47.383994015100065,
+ -22.222166431661556
+ ],
+ [
+ -47.38403221347742,
+ -22.222174427988758
+ ],
+ [
+ -47.38406810754362,
+ -22.222183034104365
+ ],
+ [
+ -47.384105108847244,
+ -22.22219193591144
+ ],
+ [
+ -47.38413632010494,
+ -22.222200511442445
+ ],
+ [
+ -47.38416054512086,
+ -22.222206659664348
+ ],
+ [
+ -47.38419819525771,
+ -22.222216716574103
+ ],
+ [
+ -47.384223866018246,
+ -22.22222412161249
+ ],
+ [
+ -47.38425401544002,
+ -22.222231957500153
+ ],
+ [
+ -47.38429350635028,
+ -22.22224370907511
+ ],
+ [
+ -47.38432351386891,
+ -22.222252939698013
+ ],
+ [
+ -47.38435160705441,
+ -22.222261552478574
+ ],
+ [
+ -47.384374141858224,
+ -22.22226857721039
+ ],
+ [
+ -47.38439771696038,
+ -22.222275526948767
+ ],
+ [
+ -47.3844344745319,
+ -22.22228648175846
+ ],
+ [
+ -47.38446536089834,
+ -22.222296837835252
+ ],
+ [
+ -47.3844806722001,
+ -22.22230163660404
+ ],
+ [
+ -47.38450763790201,
+ -22.22230945125419
+ ],
+ [
+ -47.38453352701364,
+ -22.222317754018768
+ ],
+ [
+ -47.384557228191284,
+ -22.222324458588787
+ ],
+ [
+ -47.38458720334189,
+ -22.22233391336168
+ ],
+ [
+ -47.384622066748285,
+ -22.222344310142482
+ ],
+ [
+ -47.38464728596456,
+ -22.222353185963776
+ ],
+ [
+ -47.384669500161124,
+ -22.222359847950393
+ ],
+ [
+ -47.38469497084718,
+ -22.222368773839847
+ ],
+ [
+ -47.38493026348092,
+ -22.222431447106697
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "41",
+ "Name": "Curvas",
+ "Length": 201.76307076281847,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "41",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38303005258701,
+ -22.222103810093916
+ ],
+ [
+ -47.3831006734625,
+ -22.22210027685336
+ ],
+ [
+ -47.3831530223031,
+ -22.222097444365787
+ ],
+ [
+ -47.38320657335087,
+ -22.22209457783298
+ ],
+ [
+ -47.38326489758174,
+ -22.222091340620807
+ ],
+ [
+ -47.38333211731681,
+ -22.22208865526802
+ ],
+ [
+ -47.38339935279184,
+ -22.222087600113273
+ ],
+ [
+ -47.38346744473411,
+ -22.222087577065196
+ ],
+ [
+ -47.38354493137372,
+ -22.222089822062433
+ ],
+ [
+ -47.38362056829624,
+ -22.22209528602955
+ ],
+ [
+ -47.3836515180078,
+ -22.222098221281122
+ ],
+ [
+ -47.383680884941995,
+ -22.222100627836642
+ ],
+ [
+ -47.38372477647316,
+ -22.22210519318596
+ ],
+ [
+ -47.38376924241242,
+ -22.222111034631812
+ ],
+ [
+ -47.38380860169226,
+ -22.222117299678544
+ ],
+ [
+ -47.383845947047234,
+ -22.222123649816755
+ ],
+ [
+ -47.38388080880083,
+ -22.22213035535978
+ ],
+ [
+ -47.38390785453582,
+ -22.222135616742392
+ ],
+ [
+ -47.383933678693154,
+ -22.222140600093404
+ ],
+ [
+ -47.383964725427255,
+ -22.222146617883038
+ ],
+ [
+ -47.38399716129617,
+ -22.222153210859176
+ ],
+ [
+ -47.38403562291639,
+ -22.222161262293053
+ ],
+ [
+ -47.38407173447311,
+ -22.222169920555448
+ ],
+ [
+ -47.384108987495814,
+ -22.22217888291939
+ ],
+ [
+ -47.38414029117456,
+ -22.222187483844042
+ ],
+ [
+ -47.38416446309232,
+ -22.22219361858995
+ ],
+ [
+ -47.38420235312467,
+ -22.222203739579616
+ ],
+ [
+ -47.38422797405642,
+ -22.222211130244524
+ ],
+ [
+ -47.38425818588343,
+ -22.222218982351595
+ ],
+ [
+ -47.38429800154748,
+ -22.222230830565987
+ ],
+ [
+ -47.38432807636676,
+ -22.222240081891474
+ ],
+ [
+ -47.38435619029632,
+ -22.22224870102547
+ ],
+ [
+ -47.38437864590746,
+ -22.222255701070868
+ ],
+ [
+ -47.384402128880765,
+ -22.222262623650614
+ ],
+ [
+ -47.38443915679877,
+ -22.22227365903149
+ ],
+ [
+ -47.38447014523563,
+ -22.22228404933232
+ ],
+ [
+ -47.384485153891596,
+ -22.22228875324793
+ ],
+ [
+ -47.38451216832671,
+ -22.222296582021094
+ ],
+ [
+ -47.384538010737536,
+ -22.222304869808703
+ ],
+ [
+ -47.38456167654111,
+ -22.222311564372262
+ ],
+ [
+ -47.384591755081914,
+ -22.22232105175676
+ ],
+ [
+ -47.38462685931228,
+ -22.22233152035497
+ ],
+ [
+ -47.384652089682,
+ -22.222340400101857
+ ],
+ [
+ -47.38467429405217,
+ -22.22234705914165
+ ],
+ [
+ -47.384699540137944,
+ -22.222355906322907
+ ],
+ [
+ -47.384940328831085,
+ -22.222420043532818
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "42",
+ "Name": "Curvas",
+ "Length": 202.01866473531098,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "42",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38303792167602,
+ -22.222089855477563
+ ],
+ [
+ -47.38309986137707,
+ -22.222086756564657
+ ],
+ [
+ -47.38315217852719,
+ -22.22208392579223
+ ],
+ [
+ -47.383205723230624,
+ -22.222081059596864
+ ],
+ [
+ -47.38326415307319,
+ -22.222077816523303
+ ],
+ [
+ -47.383331682965284,
+ -22.22207511878066
+ ],
+ [
+ -47.38339922758705,
+ -22.22207405877492
+ ],
+ [
+ -47.383467668321686,
+ -22.222074035609342
+ ],
+ [
+ -47.38354572049245,
+ -22.222076296992192
+ ],
+ [
+ -47.38362186791301,
+ -22.222081797838072
+ ],
+ [
+ -47.383652892553066,
+ -22.222084740196113
+ ],
+ [
+ -47.383682330071736,
+ -22.222087152536098
+ ],
+ [
+ -47.3837266001804,
+ -22.22209175726329
+ ],
+ [
+ -47.38377148428518,
+ -22.222097653643516
+ ],
+ [
+ -47.38381113364287,
+ -22.222103964863994
+ ],
+ [
+ -47.38384872507369,
+ -22.22211035684481
+ ],
+ [
+ -47.38388376729051,
+ -22.222117097099638
+ ],
+ [
+ -47.38391081761347,
+ -22.222122359375003
+ ],
+ [
+ -47.38393663030474,
+ -22.222127340513577
+ ],
+ [
+ -47.38396775859574,
+ -22.222133374106246
+ ],
+ [
+ -47.3840003074918,
+ -22.222139990056764
+ ],
+ [
+ -47.38403903235484,
+ -22.222148096597348
+ ],
+ [
+ -47.38407536140205,
+ -22.22215680700649
+ ],
+ [
+ -47.38411286606877,
+ -22.22216582990668
+ ],
+ [
+ -47.38414426224356,
+ -22.22217445624559
+ ],
+ [
+ -47.38416838106316,
+ -22.222180577515527
+ ],
+ [
+ -47.384206510990964,
+ -22.222190762585107
+ ],
+ [
+ -47.38423208209395,
+ -22.22219813887651
+ ],
+ [
+ -47.3842623563262,
+ -22.222206007202978
+ ],
+ [
+ -47.384302496743985,
+ -22.222217952056816
+ ],
+ [
+ -47.38433263886388,
+ -22.222227224084858
+ ],
+ [
+ -47.38436077339997,
+ -22.222235849529444
+ ],
+ [
+ -47.38438314995599,
+ -22.222242824931275
+ ],
+ [
+ -47.38440654080047,
+ -22.222249720352377
+ ],
+ [
+ -47.384443839064886,
+ -22.222260836304446
+ ],
+ [
+ -47.38447492957215,
+ -22.2222712608293
+ ],
+ [
+ -47.384489635582376,
+ -22.222275869891735
+ ],
+ [
+ -47.38451669875069,
+ -22.222283712787892
+ ],
+ [
+ -47.384542494460746,
+ -22.22229198559854
+ ],
+ [
+ -47.38456612489024,
+ -22.222298670155656
+ ],
+ [
+ -47.38459630682121,
+ -22.222308190151722
+ ],
+ [
+ -47.3846316518755,
+ -22.222318730567345
+ ],
+ [
+ -47.384656893398684,
+ -22.222327614239855
+ ],
+ [
+ -47.38467908794246,
+ -22.22233427033283
+ ],
+ [
+ -47.384704109428,
+ -22.22234303880589
+ ],
+ [
+ -47.38495039417965,
+ -22.222408639958473
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "43",
+ "Name": "Curvas",
+ "Length": 202.28863535279453,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "43",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38304566448349,
+ -22.22207612479928
+ ],
+ [
+ -47.38315133475157,
+ -22.2220704072186
+ ],
+ [
+ -47.38320487314306,
+ -22.222067541358918
+ ],
+ [
+ -47.38326340856493,
+ -22.222064292425788
+ ],
+ [
+ -47.38333124861397,
+ -22.222061582293264
+ ],
+ [
+ -47.3833991023824,
+ -22.222060517436567
+ ],
+ [
+ -47.38346789190935,
+ -22.22206049415348
+ ],
+ [
+ -47.383546509611186,
+ -22.222062771921934
+ ],
+ [
+ -47.38362316752967,
+ -22.222068309646627
+ ],
+ [
+ -47.38365426709818,
+ -22.222071259111114
+ ],
+ [
+ -47.3836837752013,
+ -22.22207367723557
+ ],
+ [
+ -47.38372842388742,
+ -22.22207832134062
+ ],
+ [
+ -47.38377372615763,
+ -22.22208427265519
+ ],
+ [
+ -47.38381366559311,
+ -22.22209063004941
+ ],
+ [
+ -47.38385150309972,
+ -22.222097063872816
+ ],
+ [
+ -47.38388672577973,
+ -22.22210383883946
+ ],
+ [
+ -47.38391378069067,
+ -22.222109102007554
+ ],
+ [
+ -47.38393958191591,
+ -22.22211408093376
+ ],
+ [
+ -47.383970791873324,
+ -22.222120130351666
+ ],
+ [
+ -47.384003453686965,
+ -22.222126769254295
+ ],
+ [
+ -47.38404244179279,
+ -22.2221349309016
+ ],
+ [
+ -47.384078988330415,
+ -22.222143693457525
+ ],
+ [
+ -47.38411674471741,
+ -22.222152776914864
+ ],
+ [
+ -47.38414823331195,
+ -22.222161428647098
+ ],
+ [
+ -47.3841722990334,
+ -22.22216753644109
+ ],
+ [
+ -47.38421066885659,
+ -22.222177785590524
+ ],
+ [
+ -47.38423619013082,
+ -22.222185147508437
+ ],
+ [
+ -47.384266526768286,
+ -22.222193032054307
+ ],
+ [
+ -47.38430699193977,
+ -22.222205073547585
+ ],
+ [
+ -47.38433720136027,
+ -22.222214366278166
+ ],
+ [
+ -47.38436535664363,
+ -22.222222998077225
+ ],
+ [
+ -47.38438765400379,
+ -22.222229948791618
+ ],
+ [
+ -47.38441095271946,
+ -22.222236817054068
+ ],
+ [
+ -47.38444852133026,
+ -22.222248013577325
+ ],
+ [
+ -47.3844797139079,
+ -22.222258472326185
+ ],
+ [
+ -47.38449411727245,
+ -22.222262986535483
+ ],
+ [
+ -47.384521229173934,
+ -22.222270843554636
+ ],
+ [
+ -47.384546978183266,
+ -22.222279101388335
+ ],
+ [
+ -47.384570573238655,
+ -22.222285775938953
+ ],
+ [
+ -47.38460085855975,
+ -22.222295328546608
+ ],
+ [
+ -47.38463644443795,
+ -22.22230594077966
+ ],
+ [
+ -47.38466169711458,
+ -22.22231482837778
+ ],
+ [
+ -47.38468388183199,
+ -22.22232148152391
+ ],
+ [
+ -47.38470867871732,
+ -22.22233017128884
+ ],
+ [
+ -47.38496045952659,
+ -22.222397236383635
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "44",
+ "Name": "Curvas",
+ "Length": 202.5418859176984,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "44",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38305355415332,
+ -22.222062133680346
+ ],
+ [
+ -47.38315049097625,
+ -22.22205688864496
+ ],
+ [
+ -47.38320402302263,
+ -22.22205402312277
+ ],
+ [
+ -47.38326266405693,
+ -22.222050768328213
+ ],
+ [
+ -47.38333081426287,
+ -22.222048045805842
+ ],
+ [
+ -47.383398977177926,
+ -22.222046976098166
+ ],
+ [
+ -47.3834681154971,
+ -22.222046952697593
+ ],
+ [
+ -47.38354729872988,
+ -22.222049246851675
+ ],
+ [
+ -47.383624467146205,
+ -22.222054821455142
+ ],
+ [
+ -47.38365564164317,
+ -22.222057778026084
+ ],
+ [
+ -47.38368522033075,
+ -22.222060201935
+ ],
+ [
+ -47.38373024759423,
+ -22.22206488541793
+ ],
+ [
+ -47.38377596802979,
+ -22.222070891666867
+ ],
+ [
+ -47.38381619754301,
+ -22.222077295234826
+ ],
+ [
+ -47.38385428112537,
+ -22.222083770900824
+ ],
+ [
+ -47.38388968426853,
+ -22.222090580579266
+ ],
+ [
+ -47.38391674376744,
+ -22.22209584464012
+ ],
+ [
+ -47.38394253352665,
+ -22.222100821353884
+ ],
+ [
+ -47.383973825038616,
+ -22.222106886574355
+ ],
+ [
+ -47.384006599881666,
+ -22.222113548451826
+ ],
+ [
+ -47.38404585123021,
+ -22.222121765205824
+ ],
+ [
+ -47.384082615258244,
+ -22.222130579908498
+ ],
+ [
+ -47.38412062328788,
+ -22.22213972390171
+ ],
+ [
+ -47.38415220437972,
+ -22.22214840104855
+ ],
+ [
+ -47.38417621700303,
+ -22.22215449536657
+ ],
+ [
+ -47.384214826721575,
+ -22.22216480859589
+ ],
+ [
+ -47.384240298167065,
+ -22.222172156140317
+ ],
+ [
+ -47.38427069720974,
+ -22.222180056905575
+ ],
+ [
+ -47.384311487134845,
+ -22.22219219503828
+ ],
+ [
+ -47.38434176385592,
+ -22.22220150847141
+ ],
+ [
+ -47.38436993974261,
+ -22.22221014658004
+ ],
+ [
+ -47.38439215805088,
+ -22.222217072651887
+ ],
+ [
+ -47.38441536463777,
+ -22.2222239137557
+ ],
+ [
+ -47.384453203594894,
+ -22.222235190850128
+ ],
+ [
+ -47.38448449824289,
+ -22.22224568382302
+ ],
+ [
+ -47.38449859896182,
+ -22.222250103179167
+ ],
+ [
+ -47.38452575959647,
+ -22.222257974321316
+ ],
+ [
+ -47.384551461905055,
+ -22.222266217178056
+ ],
+ [
+ -47.38457502158638,
+ -22.222272881722212
+ ],
+ [
+ -47.38460541029759,
+ -22.222282466941422
+ ],
+ [
+ -47.384641236999656,
+ -22.222293150991863
+ ],
+ [
+ -47.38466650082972,
+ -22.22230204251561
+ ],
+ [
+ -47.384688675720746,
+ -22.222308692714936
+ ],
+ [
+ -47.38471324800592,
+ -22.222317303771682
+ ],
+ [
+ -47.384970524871946,
+ -22.2223858328083
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "45",
+ "Name": "Curvas",
+ "Length": 202.79513647279506,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "45",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38306144382169,
+ -22.222048142561125
+ ],
+ [
+ -47.38314964720123,
+ -22.222043370071283
+ ],
+ [
+ -47.38320317293642,
+ -22.22204050488471
+ ],
+ [
+ -47.38326191954919,
+ -22.22203724423061
+ ],
+ [
+ -47.383330379912,
+ -22.222034509318412
+ ],
+ [
+ -47.38339885197359,
+ -22.22203343475976
+ ],
+ [
+ -47.38346833908491,
+ -22.222033411241707
+ ],
+ [
+ -47.383548087848546,
+ -22.222035721781385
+ ],
+ [
+ -47.38362576676261,
+ -22.222041333263636
+ ],
+ [
+ -47.38365701618803,
+ -22.22204429694107
+ ],
+ [
+ -47.38368666546002,
+ -22.222046726634456
+ ],
+ [
+ -47.38373207130081,
+ -22.222051449495222
+ ],
+ [
+ -47.383778209901614,
+ -22.222057510678518
+ ],
+ [
+ -47.38381872949255,
+ -22.222063960420208
+ ],
+ [
+ -47.38385705915061,
+ -22.222070477928806
+ ],
+ [
+ -47.383892642756884,
+ -22.222077322319013
+ ],
+ [
+ -47.38391970684378,
+ -22.22208258727267
+ ],
+ [
+ -47.383945485136934,
+ -22.222087561773982
+ ],
+ [
+ -47.38397685831758,
+ -22.222093642820198
+ ],
+ [
+ -47.384009746075876,
+ -22.22210032764931
+ ],
+ [
+ -47.384049260667105,
+ -22.22210859951001
+ ],
+ [
+ -47.38408624218548,
+ -22.22211746635941
+ ],
+ [
+ -47.38412450193658,
+ -22.22212667091015
+ ],
+ [
+ -47.38415617544686,
+ -22.22213537344993
+ ],
+ [
+ -47.38418013497201,
+ -22.222141454291997
+ ],
+ [
+ -47.3842189845859,
+ -22.22215183160121
+ ],
+ [
+ -47.38424440620265,
+ -22.22215916477214
+ ],
+ [
+ -47.38427486765053,
+ -22.22216708175679
+ ],
+ [
+ -47.384315982329205,
+ -22.222179316528873
+ ],
+ [
+ -47.384346329803506,
+ -22.22218865172666
+ ],
+ [
+ -47.38437452298802,
+ -22.222197295128687
+ ],
+ [
+ -47.384396662097224,
+ -22.222204196512084
+ ],
+ [
+ -47.38441977655535,
+ -22.222211010457276
+ ],
+ [
+ -47.38445788585875,
+ -22.22222236812285
+ ],
+ [
+ -47.38448928257711,
+ -22.222232895319735
+ ],
+ [
+ -47.384503080650454,
+ -22.222237219822755
+ ],
+ [
+ -47.3845302900183,
+ -22.222245105087936
+ ],
+ [
+ -47.38455594562612,
+ -22.222253332967686
+ ],
+ [
+ -47.384579469933385,
+ -22.22225998750539
+ ],
+ [
+ -47.384609962034716,
+ -22.222269605336198
+ ],
+ [
+ -47.38464602956059,
+ -22.22228036120399
+ ],
+ [
+ -47.384671304544106,
+ -22.222289256653365
+ ],
+ [
+ -47.38469346960871,
+ -22.222295903905877
+ ],
+ [
+ -47.38471781729379,
+ -22.222304436254436
+ ],
+ [
+ -47.3849805902157,
+ -22.22237442923246
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "46",
+ "Name": "Curvas",
+ "Length": 203.04838703197836,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "46",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38306933348859,
+ -22.22203415144167
+ ],
+ [
+ -47.3831488034265,
+ -22.222029851497563
+ ],
+ [
+ -47.38320232281582,
+ -22.222026986648515
+ ],
+ [
+ -47.38326117504174,
+ -22.22202372013298
+ ],
+ [
+ -47.38332994556134,
+ -22.222020972830933
+ ],
+ [
+ -47.38339872676943,
+ -22.222019893421315
+ ],
+ [
+ -47.38346856267284,
+ -22.22201986978579
+ ],
+ [
+ -47.3835488769672,
+ -22.222022196711105
+ ],
+ [
+ -47.38362706637892,
+ -22.222027845072127
+ ],
+ [
+ -47.38365839073276,
+ -22.222030815856023
+ ],
+ [
+ -47.38368811058916,
+ -22.222033251333873
+ ],
+ [
+ -47.383733895007175,
+ -22.22203801357251
+ ],
+ [
+ -47.38378045177318,
+ -22.222044129690165
+ ],
+ [
+ -47.38382126144175,
+ -22.22205062560559
+ ],
+ [
+ -47.38385983717545,
+ -22.22205718495677
+ ],
+ [
+ -47.383895601244824,
+ -22.222064064058777
+ ],
+ [
+ -47.38392266991968,
+ -22.222069329905164
+ ],
+ [
+ -47.383948436746785,
+ -22.222074302194063
+ ],
+ [
+ -47.383979891479704,
+ -22.222080399042383
+ ],
+ [
+ -47.38401289226964,
+ -22.222087106846782
+ ],
+ [
+ -47.38405267010349,
+ -22.22209543381416
+ ],
+ [
+ -47.38408986911219,
+ -22.222104352810284
+ ],
+ [
+ -47.384128380504606,
+ -22.22211361789656
+ ],
+ [
+ -47.3841601465134,
+ -22.222122345851275
+ ],
+ [
+ -47.38418405294042,
+ -22.22212841321739
+ ],
+ [
+ -47.38422314244957,
+ -22.22213885460647
+ ],
+ [
+ -47.38424851423758,
+ -22.222146173403907
+ ],
+ [
+ -47.38427903809066,
+ -22.222154106607924
+ ],
+ [
+ -47.38432047752285,
+ -22.22216643801942
+ ],
+ [
+ -47.384350885392394,
+ -22.222175791795607
+ ],
+ [
+ -47.384379106082335,
+ -22.222184443630354
+ ],
+ [
+ -47.38440116614287,
+ -22.222191320372218
+ ],
+ [
+ -47.38442418847225,
+ -22.222198107158768
+ ],
+ [
+ -47.38446256812188,
+ -22.222209545395504
+ ],
+ [
+ -47.38449406691056,
+ -22.2222201068164
+ ],
+ [
+ -47.384507562338406,
+ -22.222224336466297
+ ],
+ [
+ -47.38453482043939,
+ -22.222232235854474
+ ],
+ [
+ -47.38456042934648,
+ -22.222240448757262
+ ],
+ [
+ -47.384583918279695,
+ -22.222247093288512
+ ],
+ [
+ -47.384614513771105,
+ -22.222256743730874
+ ],
+ [
+ -47.384650822120754,
+ -22.222267571416026
+ ],
+ [
+ -47.384676108257715,
+ -22.222276470791027
+ ],
+ [
+ -47.38469826349594,
+ -22.222283115096715
+ ],
+ [
+ -47.384722386580926,
+ -22.22229156873713
+ ],
+ [
+ -47.38499065555786,
+ -22.222363025656136
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "47",
+ "Name": "Curvas",
+ "Length": 203.30163758457326,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "47",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38307722315401,
+ -22.222020160321954
+ ],
+ [
+ -47.38314795965203,
+ -22.222016332923815
+ ],
+ [
+ -47.383201472730974,
+ -22.222013468410317
+ ],
+ [
+ -47.38326043053455,
+ -22.222010196035324
+ ],
+ [
+ -47.383329511210874,
+ -22.22200743634345
+ ],
+ [
+ -47.3833986015654,
+ -22.222006352082886
+ ],
+ [
+ -47.38346878626087,
+ -22.222006328329858
+ ],
+ [
+ -47.38354966608583,
+ -22.222008671640825
+ ],
+ [
+ -47.383628365995094,
+ -22.22201435688062
+ ],
+ [
+ -47.383659765277365,
+ -22.22201733477098
+ ],
+ [
+ -47.38368955571815,
+ -22.222019776033303
+ ],
+ [
+ -47.38373571871332,
+ -22.222024577649815
+ ],
+ [
+ -47.383782693644434,
+ -22.222030748701815
+ ],
+ [
+ -47.38382379339059,
+ -22.222037290790926
+ ],
+ [
+ -47.383862615199895,
+ -22.22204389198468
+ ],
+ [
+ -47.3838985597323,
+ -22.222050805798514
+ ],
+ [
+ -47.38392563299514,
+ -22.222056072537615
+ ],
+ [
+ -47.38395138835622,
+ -22.222061042614133
+ ],
+ [
+ -47.383982924760026,
+ -22.22206715528864
+ ],
+ [
+ -47.38401603846292,
+ -22.222073886044218
+ ],
+ [
+ -47.384056079539356,
+ -22.222082268118253
+ ],
+ [
+ -47.384093496038325,
+ -22.222091239261122
+ ],
+ [
+ -47.384132259153304,
+ -22.222100564905254
+ ],
+ [
+ -47.38416411757928,
+ -22.222109318252564
+ ],
+ [
+ -47.38418797090819,
+ -22.222115372142724
+ ],
+ [
+ -47.38422730031258,
+ -22.22212587761166
+ ],
+ [
+ -47.38425262227188,
+ -22.222133182035606
+ ],
+ [
+ -47.38428320853013,
+ -22.222141131459036
+ ],
+ [
+ -47.384324972715774,
+ -22.222153559509895
+ ],
+ [
+ -47.384355454792804,
+ -22.22216293611327
+ ],
+ [
+ -47.384383689329475,
+ -22.222171592179812
+ ],
+ [
+ -47.384405670187796,
+ -22.22217844423228
+ ],
+ [
+ -47.38442860038844,
+ -22.22218520386021
+ ],
+ [
+ -47.384467250384276,
+ -22.22219672266807
+ ],
+ [
+ -47.384498851243244,
+ -22.222207318312982
+ ],
+ [
+ -47.38451204402561,
+ -22.222211453109747
+ ],
+ [
+ -47.384539350859754,
+ -22.222219366620923
+ ],
+ [
+ -47.38456491306611,
+ -22.222227564546767
+ ],
+ [
+ -47.38458836662527,
+ -22.222234199071526
+ ],
+ [
+ -47.384619065506755,
+ -22.22224388212548
+ ],
+ [
+ -47.38465561468013,
+ -22.222254781628017
+ ],
+ [
+ -47.38468091197052,
+ -22.22226368492861
+ ],
+ [
+ -47.38470305738239,
+ -22.222270326287465
+ ],
+ [
+ -47.38472695586734,
+ -22.22227870121979
+ ],
+ [
+ -47.38500072089841,
+ -22.222351622079312
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "48",
+ "Name": "Curvas",
+ "Length": 203.5548881384066,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "48",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38308511281798,
+ -22.22200616920195
+ ],
+ [
+ -47.38314711587788,
+ -22.222002814350017
+ ],
+ [
+ -47.38320062261019,
+ -22.221999950174105
+ ],
+ [
+ -47.38325968602766,
+ -22.22199667193761
+ ],
+ [
+ -47.38332907686064,
+ -22.221993899855914
+ ],
+ [
+ -47.383398476361556,
+ -22.221992810744393
+ ],
+ [
+ -47.38346900984897,
+ -22.2219927868739
+ ],
+ [
+ -47.38355045520444,
+ -22.22199514657052
+ ],
+ [
+ -47.38362966561116,
+ -22.222000868689094
+ ],
+ [
+ -47.38366113982183,
+ -22.222003853685916
+ ],
+ [
+ -47.38369100084701,
+ -22.222006300732705
+ ],
+ [
+ -47.38373754241924,
+ -22.22201114172708
+ ],
+ [
+ -47.38378493551538,
+ -22.222017367713445
+ ],
+ [
+ -47.383826325339065,
+ -22.222023955976272
+ ],
+ [
+ -47.383865393223935,
+ -22.22203059901261
+ ],
+ [
+ -47.38390151821937,
+ -22.222037547538225
+ ],
+ [
+ -47.383928596070156,
+ -22.22204281517008
+ ],
+ [
+ -47.38395433996522,
+ -22.222047783034164
+ ],
+ [
+ -47.38398595791902,
+ -22.222053911510294
+ ],
+ [
+ -47.384019184655735,
+ -22.222060665241635
+ ],
+ [
+ -47.3840594889747,
+ -22.222069102422342
+ ],
+ [
+ -47.384097122963915,
+ -22.222078125711935
+ ],
+ [
+ -47.384136137718905,
+ -22.22208751189121
+ ],
+ [
+ -47.38416808864457,
+ -22.22209629065381
+ ],
+ [
+ -47.384191888875364,
+ -22.222102331068022
+ ],
+ [
+ -47.384231458174945,
+ -22.2221129006168
+ ],
+ [
+ -47.38425673030553,
+ -22.222120190667255
+ ],
+ [
+ -47.38428737896894,
+ -22.222128156310056
+ ],
+ [
+ -47.38432946790798,
+ -22.222140681000297
+ ],
+ [
+ -47.384360010377044,
+ -22.222150076181094
+ ],
+ [
+ -47.384388272419145,
+ -22.222158740680356
+ ],
+ [
+ -47.384410174232016,
+ -22.222165568092272
+ ],
+ [
+ -47.38443301230394,
+ -22.222172300561574
+ ],
+ [
+ -47.38447193264591,
+ -22.222183899940568
+ ],
+ [
+ -47.38450363557517,
+ -22.22219452980947
+ ],
+ [
+ -47.38451652571213,
+ -22.22219856975315
+ ],
+ [
+ -47.38454388127941,
+ -22.222206497387315
+ ],
+ [
+ -47.38456939678505,
+ -22.222214680336208
+ ],
+ [
+ -47.38459281497017,
+ -22.222221304854514
+ ],
+ [
+ -47.3846236172417,
+ -22.222231020520006
+ ],
+ [
+ -47.38466040723875,
+ -22.22224199183989
+ ],
+ [
+ -47.38468571568258,
+ -22.222250899066108
+ ],
+ [
+ -47.384707851268075,
+ -22.222257537478132
+ ],
+ [
+ -47.38473152515303,
+ -22.222265833702327
+ ],
+ [
+ -47.385010786237366,
+ -22.222340218502005
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "49",
+ "Name": "Curvas",
+ "Length": 203.80609107238686,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "49",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383093020409454,
+ -22.221992146287363
+ ],
+ [
+ -47.38319977252669,
+ -22.221986431935793
+ ],
+ [
+ -47.38325894152102,
+ -22.221983147839875
+ ],
+ [
+ -47.38332864251061,
+ -22.22198036336835
+ ],
+ [
+ -47.38339835115786,
+ -22.221979269405907
+ ],
+ [
+ -47.383469233437154,
+ -22.221979245417934
+ ],
+ [
+ -47.38355124432302,
+ -22.221981621500195
+ ],
+ [
+ -47.383630965227105,
+ -22.221987380497556
+ ],
+ [
+ -47.383662514366144,
+ -22.221990372600857
+ ],
+ [
+ -47.383692445975704,
+ -22.22199282543211
+ ],
+ [
+ -47.38373936612494,
+ -22.221997705804355
+ ],
+ [
+ -47.38378717738605,
+ -22.22200398672505
+ ],
+ [
+ -47.38382885728718,
+ -22.222010621161576
+ ],
+ [
+ -47.38386817124755,
+ -22.222017306040502
+ ],
+ [
+ -47.383904476705986,
+ -22.222024289277897
+ ],
+ [
+ -47.38393155914473,
+ -22.2220295578025
+ ],
+ [
+ -47.383957291573786,
+ -22.222034523454173
+ ],
+ [
+ -47.38398899120066,
+ -22.222040667756975
+ ],
+ [
+ -47.38402233084809,
+ -22.22204744443901
+ ],
+ [
+ -47.3840628984095,
+ -22.222055936726385
+ ],
+ [
+ -47.38410074988893,
+ -22.222065012162698
+ ],
+ [
+ -47.38414001636758,
+ -22.222074458900153
+ ],
+ [
+ -47.384172059709215,
+ -22.22208326305501
+ ],
+ [
+ -47.38419580684192,
+ -22.222089289993246
+ ],
+ [
+ -47.38423561603665,
+ -22.22209992362186
+ ],
+ [
+ -47.384260838338534,
+ -22.222107199298858
+ ],
+ [
+ -47.384291549407095,
+ -22.222115181161044
+ ],
+ [
+ -47.38433396309947,
+ -22.222127802490633
+ ],
+ [
+ -47.384364579779174,
+ -22.222137220499608
+ ],
+ [
+ -47.38439285566802,
+ -22.222145889230664
+ ],
+ [
+ -47.38441467827552,
+ -22.2221526919522
+ ],
+ [
+ -47.38443742421875,
+ -22.22215939726288
+ ],
+ [
+ -47.38447661490679,
+ -22.222171077212995
+ ],
+ [
+ -47.38450841990632,
+ -22.22218174130589
+ ],
+ [
+ -47.38452100739792,
+ -22.222185686396465
+ ],
+ [
+ -47.38454841169834,
+ -22.222193628153644
+ ],
+ [
+ -47.384573880503254,
+ -22.222201796125585
+ ],
+ [
+ -47.38459726331435,
+ -22.222208410637418
+ ],
+ [
+ -47.38462816897591,
+ -22.222218158914476
+ ],
+ [
+ -47.384665199796615,
+ -22.222229202051697
+ ],
+ [
+ -47.38469051939387,
+ -22.22223811320352
+ ],
+ [
+ -47.38471264515299,
+ -22.222244748668746
+ ],
+ [
+ -47.384736094437976,
+ -22.22225296618482
+ ],
+ [
+ -47.38502085157473,
+ -22.222328814924186
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "50",
+ "Name": "Curvas",
+ "Length": 204.05967716358145,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "50",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383100907132466,
+ -22.221978160376963
+ ],
+ [
+ -47.38319892240574,
+ -22.221972913699542
+ ],
+ [
+ -47.383258197014676,
+ -22.221969623742083
+ ],
+ [
+ -47.38332820816082,
+ -22.22196682688075
+ ],
+ [
+ -47.383398225954316,
+ -22.22196572806737
+ ],
+ [
+ -47.38346945702544,
+ -22.221965703961946
+ ],
+ [
+ -47.3835520334416,
+ -22.221968096429872
+ ],
+ [
+ -47.38363226484294,
+ -22.22197389230601
+ ],
+ [
+ -47.38366388891034,
+ -22.221976891515773
+ ],
+ [
+ -47.383693891104265,
+ -22.221979350131495
+ ],
+ [
+ -47.38374118983043,
+ -22.221984269881606
+ ],
+ [
+ -47.383789419256395,
+ -22.221990605736647
+ ],
+ [
+ -47.38383138923495,
+ -22.221997286346888
+ ],
+ [
+ -47.383870949270786,
+ -22.222004013068386
+ ],
+ [
+ -47.38390743519217,
+ -22.222011031017566
+ ],
+ [
+ -47.38393452221888,
+ -22.222016300434912
+ ],
+ [
+ -47.3839602431819,
+ -22.222021263874154
+ ],
+ [
+ -47.383992024356544,
+ -22.222027423978137
+ ],
+ [
+ -47.38402547703997,
+ -22.22203422363637
+ ],
+ [
+ -47.38406630784381,
+ -22.2220427710304
+ ],
+ [
+ -47.3841043768134,
+ -22.22205189861341
+ ],
+ [
+ -47.384143894930794,
+ -22.222061405885697
+ ],
+ [
+ -47.384176030773254,
+ -22.22207023545615
+ ],
+ [
+ -47.38419972480787,
+ -22.222076248918423
+ ],
+ [
+ -47.384239773897704,
+ -22.22208694662689
+ ],
+ [
+ -47.38426494637089,
+ -22.222094207930375
+ ],
+ [
+ -47.384295719844594,
+ -22.222102206011947
+ ],
+ [
+ -47.38433845829025,
+ -22.222114923980897
+ ],
+ [
+ -47.384369135358774,
+ -22.222124360566294
+ ],
+ [
+ -47.384397438753055,
+ -22.22213303773005
+ ],
+ [
+ -47.38441918231831,
+ -22.222139815812042
+ ],
+ [
+ -47.38444183613285,
+ -22.222146493964107
+ ],
+ [
+ -47.38448129716693,
+ -22.222158254485326
+ ],
+ [
+ -47.38451320423671,
+ -22.22216895280221
+ ],
+ [
+ -47.384525489083,
+ -22.22217280303973
+ ],
+ [
+ -47.38455294211655,
+ -22.22218075891989
+ ],
+ [
+ -47.38457836422076,
+ -22.222188911914866
+ ],
+ [
+ -47.38460171165783,
+ -22.222195516420243
+ ],
+ [
+ -47.384632720709405,
+ -22.222205297308864
+ ],
+ [
+ -47.38466999235371,
+ -22.222216412263403
+ ],
+ [
+ -47.3846953231044,
+ -22.222225327340848
+ ],
+ [
+ -47.38471743903715,
+ -22.22223195985925
+ ],
+ [
+ -47.384740663722205,
+ -22.222240098667214
+ ],
+ [
+ -47.38503091691049,
+ -22.22231741134588
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "51",
+ "Name": "Curvas",
+ "Length": 204.31326382767443,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "51",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383108793848926,
+ -22.221964174475325
+ ],
+ [
+ -47.38319807232361,
+ -22.2219593954611
+ ],
+ [
+ -47.38325745250859,
+ -22.221956099644284
+ ],
+ [
+ -47.383327773811224,
+ -22.221953290393134
+ ],
+ [
+ -47.38339810075091,
+ -22.221952186728828
+ ],
+ [
+ -47.383469680613814,
+ -22.221952162505982
+ ],
+ [
+ -47.383552822560155,
+ -22.221954571359515
+ ],
+ [
+ -47.38363356445863,
+ -22.22196040411447
+ ],
+ [
+ -47.3836652634544,
+ -22.221963410430703
+ ],
+ [
+ -47.38369533623266,
+ -22.221965874830897
+ ],
+ [
+ -47.3837430135357,
+ -22.22197083395885
+ ],
+ [
+ -47.38379166112643,
+ -22.221977224748212
+ ],
+ [
+ -47.38383392118237,
+ -22.221983951532152
+ ],
+ [
+ -47.38387372729363,
+ -22.22199072009623
+ ],
+ [
+ -47.3839103936779,
+ -22.22199777275718
+ ],
+ [
+ -47.383937485292584,
+ -22.222003043067296
+ ],
+ [
+ -47.383963194789594,
+ -22.222008004294146
+ ],
+ [
+ -47.383995057639495,
+ -22.22201418022519
+ ],
+ [
+ -47.38402862323135,
+ -22.22202100283367
+ ],
+ [
+ -47.38406971727758,
+ -22.22202960533437
+ ],
+ [
+ -47.38410800373729,
+ -22.222038785064086
+ ],
+ [
+ -47.384147773579436,
+ -22.222048352894884
+ ],
+ [
+ -47.384180001836675,
+ -22.222057207857215
+ ],
+ [
+ -47.3842036427732,
+ -22.222063207843565
+ ],
+ [
+ -47.384243931758085,
+ -22.222073969631857
+ ],
+ [
+ -47.384269054402594,
+ -22.22208121656184
+ ],
+ [
+ -47.384299890281426,
+ -22.222089230862807
+ ],
+ [
+ -47.38434295348031,
+ -22.222102045471086
+ ],
+ [
+ -47.38437370476265,
+ -22.22211150488562
+ ],
+ [
+ -47.38440202200363,
+ -22.222120186281206
+ ],
+ [
+ -47.384423686360364,
+ -22.222126939671792
+ ],
+ [
+ -47.384446248046245,
+ -22.222133590665273
+ ],
+ [
+ -47.38448597942632,
+ -22.222145431757575
+ ],
+ [
+ -47.384517988566344,
+ -22.222156164298447
+ ],
+ [
+ -47.384529970767375,
+ -22.22215991968293
+ ],
+ [
+ -47.38455747253404,
+ -22.222167889686045
+ ],
+ [
+ -47.38458284793754,
+ -22.222176027704105
+ ],
+ [
+ -47.384606160000594,
+ -22.22218262220302
+ ],
+ [
+ -47.384637272442156,
+ -22.222192435703178
+ ],
+ [
+ -47.38467478491004,
+ -22.22220362247501
+ ],
+ [
+ -47.384700126814145,
+ -22.222212541478097
+ ],
+ [
+ -47.384722232920545,
+ -22.222219171049677
+ ],
+ [
+ -47.38474523300571,
+ -22.22222723114955
+ ],
+ [
+ -47.385040982244654,
+ -22.22230600776707
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "52",
+ "Name": "Curvas",
+ "Length": 204.56684985593603,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "52",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38311668056952,
+ -22.221950188563486
+ ],
+ [
+ -47.383197222202476,
+ -22.2219458772248
+ ],
+ [
+ -47.38325670800279,
+ -22.221942575546418
+ ],
+ [
+ -47.38332733946186,
+ -22.22193975390548
+ ],
+ [
+ -47.38339797554769,
+ -22.221938645390246
+ ],
+ [
+ -47.38346990420228,
+ -22.22193862104996
+ ],
+ [
+ -47.3835536116787,
+ -22.221941046289174
+ ],
+ [
+ -47.383634864074224,
+ -22.22194691592291
+ ],
+ [
+ -47.383666637998324,
+ -22.2219499293456
+ ],
+ [
+ -47.38369678136093,
+ -22.22195239953026
+ ],
+ [
+ -47.38374483724075,
+ -22.221957398036075
+ ],
+ [
+ -47.38379390299619,
+ -22.22196384375978
+ ],
+ [
+ -47.38383645312944,
+ -22.221970616717435
+ ],
+ [
+ -47.38387650531607,
+ -22.22197742712407
+ ],
+ [
+ -47.38391335216322,
+ -22.221984514496796
+ ],
+ [
+ -47.38394044836587,
+ -22.221989785699662
+ ],
+ [
+ -47.38396614639686,
+ -22.221994744714074
+ ],
+ [
+ -47.383998090792275,
+ -22.22200093644587
+ ],
+ [
+ -47.384031769422286,
+ -22.222007782030975
+ ],
+ [
+ -47.38407312671086,
+ -22.22201643963832
+ ],
+ [
+ -47.38411163066063,
+ -22.222025671514718
+ ],
+ [
+ -47.38415165214028,
+ -22.222035299880005
+ ],
+ [
+ -47.38418397289947,
+ -22.222044180258262
+ ],
+ [
+ -47.384207560737934,
+ -22.222050166768664
+ ],
+ [
+ -47.38424808961783,
+ -22.22206099263677
+ ],
+ [
+ -47.38427316243366,
+ -22.22206822519327
+ ],
+ [
+ -47.38430406071762,
+ -22.22207625571362
+ ],
+ [
+ -47.384347448669665,
+ -22.222089166961208
+ ],
+ [
+ -47.38437826033763,
+ -22.22209864495119
+ ],
+ [
+ -47.384406605084024,
+ -22.222107334779455
+ ],
+ [
+ -47.38442819040173,
+ -22.222114063531492
+ ],
+ [
+ -47.38445065995895,
+ -22.222120687366377
+ ],
+ [
+ -47.38449066168496,
+ -22.222132609029753
+ ],
+ [
+ -47.384522772895224,
+ -22.2221433757946
+ ],
+ [
+ -47.384534452451035,
+ -22.22214703632605
+ ],
+ [
+ -47.38456200295082,
+ -22.222155020452146
+ ],
+ [
+ -47.38458733165363,
+ -22.222163143493262
+ ],
+ [
+ -47.38461060834266,
+ -22.222169727985715
+ ],
+ [
+ -47.384641824174196,
+ -22.22217957409741
+ ],
+ [
+ -47.384679577465604,
+ -22.222190832686568
+ ],
+ [
+ -47.38470493052314,
+ -22.22219975561526
+ ],
+ [
+ -47.38472702680316,
+ -22.222206382240017
+ ],
+ [
+ -47.38474980228848,
+ -22.2222143636318
+ ],
+ [
+ -47.38505104757722,
+ -22.22229460418778
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "53",
+ "Name": "Curvas",
+ "Length": 203.74002647142214,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "53",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38312456728459,
+ -22.221936202658593
+ ],
+ [
+ -47.3831963721217,
+ -22.22193235898625
+ ],
+ [
+ -47.38325596349726,
+ -22.221929051448537
+ ],
+ [
+ -47.38332690511268,
+ -22.221926217417828
+ ],
+ [
+ -47.383397850344615,
+ -22.221925104051675
+ ],
+ [
+ -47.38347012779084,
+ -22.221925079593927
+ ],
+ [
+ -47.3835544007972,
+ -22.221927521218802
+ ],
+ [
+ -47.38363616368969,
+ -22.22193342773136
+ ],
+ [
+ -47.383668012542124,
+ -22.221936448260532
+ ],
+ [
+ -47.38369822648904,
+ -22.221938924229637
+ ],
+ [
+ -47.383746660945555,
+ -22.2219439621133
+ ],
+ [
+ -47.383796144865634,
+ -22.221950462771318
+ ],
+ [
+ -47.38383898507612,
+ -22.22195728190268
+ ],
+ [
+ -47.383879283338096,
+ -22.22196413415187
+ ],
+ [
+ -47.383916310648104,
+ -22.22197125623637
+ ],
+ [
+ -47.383943411438715,
+ -22.221976528331975
+ ],
+ [
+ -47.383969098003675,
+ -22.221981485133966
+ ],
+ [
+ -47.384001124076505,
+ -22.221987692693297
+ ],
+ [
+ -47.38403491561274,
+ -22.221994561228264
+ ],
+ [
+ -47.38407653614361,
+ -22.222003273942214
+ ],
+ [
+ -47.38411525758341,
+ -22.22201255796534
+ ],
+ [
+ -47.38415553078885,
+ -22.222022246889342
+ ],
+ [
+ -47.38418794396162,
+ -22.22203115265924
+ ],
+ [
+ -47.384211478702056,
+ -22.222037125693706
+ ],
+ [
+ -47.384252247476915,
+ -22.222048015641608
+ ],
+ [
+ -47.38427727046407,
+ -22.22205523382465
+ ],
+ [
+ -47.384308231153135,
+ -22.22206328056437
+ ],
+ [
+ -47.38435194385831,
+ -22.222076288451262
+ ],
+ [
+ -47.38438282974319,
+ -22.22208578927135
+ ],
+ [
+ -47.38441118833631,
+ -22.222094483331453
+ ],
+ [
+ -47.38443269444236,
+ -22.22210118739114
+ ],
+ [
+ -47.38445507187094,
+ -22.222107784067397
+ ],
+ [
+ -47.38449534394286,
+ -22.222119786301867
+ ],
+ [
+ -47.3845275572233,
+ -22.22213058729071
+ ],
+ [
+ -47.384538934133985,
+ -22.222134152969083
+ ],
+ [
+ -47.38456653336686,
+ -22.222142151218193
+ ],
+ [
+ -47.384591815369,
+ -22.22215025928234
+ ],
+ [
+ -47.384615056684,
+ -22.22215683376834
+ ],
+ [
+ -47.384646375905504,
+ -22.222166712491592
+ ],
+ [
+ -47.38468437002039,
+ -22.222178042898058
+ ],
+ [
+ -47.38470973423137,
+ -22.222186969752336
+ ],
+ [
+ -47.38473182068501,
+ -22.22219359343028
+ ],
+ [
+ -47.38475437157053,
+ -22.222201496113993
+ ],
+ [
+ -47.38505102356309,
+ -22.222280513181392
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "54",
+ "Name": "Curvas",
+ "Length": 199.91385790432741,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "54",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38313245400275,
+ -22.221922216745355
+ ],
+ [
+ -47.38319552200039,
+ -22.221918840749936
+ ],
+ [
+ -47.38325521899201,
+ -22.221915527350603
+ ],
+ [
+ -47.38332647076375,
+ -22.221912680930117
+ ],
+ [
+ -47.383397725141705,
+ -22.221911562713043
+ ],
+ [
+ -47.38347035137948,
+ -22.221911538137867
+ ],
+ [
+ -47.383555189915704,
+ -22.221913996148437
+ ],
+ [
+ -47.38363746330505,
+ -22.22191993953978
+ ],
+ [
+ -47.38366938708578,
+ -22.221922967175413
+ ],
+ [
+ -47.38369967161701,
+ -22.221925448928985
+ ],
+ [
+ -47.38374848465016,
+ -22.221930526190505
+ ],
+ [
+ -47.38379838673479,
+ -22.221937081782855
+ ],
+ [
+ -47.383841517022475,
+ -22.221943947087926
+ ],
+ [
+ -47.38388206135973,
+ -22.221950841179673
+ ],
+ [
+ -47.38391926913254,
+ -22.221957997975935
+ ],
+ [
+ -47.38394637451112,
+ -22.22196327096429
+ ],
+ [
+ -47.383972049610065,
+ -22.221968225553855
+ ],
+ [
+ -47.38400415722624,
+ -22.221974448913464
+ ],
+ [
+ -47.384038061802734,
+ -22.22198134042551
+ ],
+ [
+ -47.38407994557584,
+ -22.22199010824609
+ ],
+ [
+ -47.38411888450565,
+ -22.22199944441589
+ ],
+ [
+ -47.384159409347376,
+ -22.222009193874094
+ ],
+ [
+ -47.38419191502317,
+ -22.22201812506018
+ ],
+ [
+ -47.38421539666556,
+ -22.222024084618706
+ ],
+ [
+ -47.38425640533535,
+ -22.222035038646403
+ ],
+ [
+ -47.384281378493846,
+ -22.222042242455966
+ ],
+ [
+ -47.384312401588,
+ -22.222050305415046
+ ],
+ [
+ -47.38435643904623,
+ -22.22206340994124
+ ],
+ [
+ -47.38438738531355,
+ -22.222072929335802
+ ],
+ [
+ -47.38441577141208,
+ -22.22208163182858
+ ],
+ [
+ -47.38443719848228,
+ -22.222088311250705
+ ],
+ [
+ -47.38445948378224,
+ -22.22209488076835
+ ],
+ [
+ -47.38450002620002,
+ -22.222106963573896
+ ],
+ [
+ -47.384532341550624,
+ -22.2221177987867
+ ],
+ [
+ -47.3845434158162,
+ -22.22212126961206
+ ],
+ [
+ -47.38457106378218,
+ -22.222129281984152
+ ],
+ [
+ -47.38459629908365,
+ -22.22213737507135
+ ],
+ [
+ -47.38461950502465,
+ -22.222143939550893
+ ],
+ [
+ -47.3846509276361,
+ -22.22215385088569
+ ],
+ [
+ -47.38468916257442,
+ -22.222165253109438
+ ],
+ [
+ -47.38471453793883,
+ -22.222174183889337
+ ],
+ [
+ -47.384736614566094,
+ -22.22218080462045
+ ],
+ [
+ -47.384758940851846,
+ -22.222188628596097
+ ],
+ [
+ -47.385023000316,
+ -22.222258964220522
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "55",
+ "Name": "Curvas",
+ "Length": 196.09482792146397,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "55",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38314027829343,
+ -22.22190834153506
+ ],
+ [
+ -47.38325447448702,
+ -22.22190200325265
+ ],
+ [
+ -47.38332603641502,
+ -22.221899144442396
+ ],
+ [
+ -47.38339759993894,
+ -22.22189802137441
+ ],
+ [
+ -47.3834705749682,
+ -22.221897996681804
+ ],
+ [
+ -47.38355597903418,
+ -22.221900471078055
+ ],
+ [
+ -47.383638762920285,
+ -22.22190645134819
+ ],
+ [
+ -47.383670761629304,
+ -22.22190948609027
+ ],
+ [
+ -47.38370111674484,
+ -22.221911973628355
+ ],
+ [
+ -47.38375030835455,
+ -22.221917090267702
+ ],
+ [
+ -47.38380062860365,
+ -22.22192370079439
+ ],
+ [
+ -47.38384404896847,
+ -22.22193061227312
+ ],
+ [
+ -47.38388483938093,
+ -22.22193754820744
+ ],
+ [
+ -47.38392222761656,
+ -22.221944739715457
+ ],
+ [
+ -47.383949337583104,
+ -22.221950013596565
+ ],
+ [
+ -47.383975001216,
+ -22.221954965973726
+ ],
+ [
+ -47.38400719051171,
+ -22.221961205161318
+ ],
+ [
+ -47.38404120799224,
+ -22.22196811962269
+ ],
+ [
+ -47.38408335500752,
+ -22.221976942549922
+ ],
+ [
+ -47.38412251142729,
+ -22.221986330866418
+ ],
+ [
+ -47.38416328799585,
+ -22.221996140883668
+ ],
+ [
+ -47.3841958860841,
+ -22.222005097461068
+ ],
+ [
+ -47.38421931462842,
+ -22.222011043543628
+ ],
+ [
+ -47.38426056319311,
+ -22.22202206165114
+ ],
+ [
+ -47.38428548652296,
+ -22.22202925108723
+ ],
+ [
+ -47.384316572022215,
+ -22.222037330265696
+ ],
+ [
+ -47.38436093423344,
+ -22.22205053143115
+ ],
+ [
+ -47.38439195472085,
+ -22.222060073656785
+ ],
+ [
+ -47.384420354666055,
+ -22.222068780381413
+ ],
+ [
+ -47.38444170252147,
+ -22.222075435110195
+ ],
+ [
+ -47.38446389569283,
+ -22.22208197746924
+ ],
+ [
+ -47.3845047084564,
+ -22.222094140845844
+ ],
+ [
+ -47.38453712587721,
+ -22.222105010282597
+ ],
+ [
+ -47.384547897497725,
+ -22.222108386254977
+ ],
+ [
+ -47.384575594196804,
+ -22.22211641275004
+ ],
+ [
+ -47.38460078279758,
+ -22.222124490860317
+ ],
+ [
+ -47.3846239533646,
+ -22.22213104533341
+ ],
+ [
+ -47.384655479365975,
+ -22.222140989279712
+ ],
+ [
+ -47.38469395512767,
+ -22.222152463320757
+ ],
+ [
+ -47.38471934164551,
+ -22.222161398026287
+ ],
+ [
+ -47.38474140844643,
+ -22.22216801581056
+ ],
+ [
+ -47.38476351013243,
+ -22.22217576107815
+ ],
+ [
+ -47.384994977075884,
+ -22.22223741526502
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "56",
+ "Name": "Curvas",
+ "Length": 192.26751726829218,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "56",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38314817504722,
+ -22.22189433781942
+ ],
+ [
+ -47.38325372998232,
+ -22.221888479154643
+ ],
+ [
+ -47.38332560206652,
+ -22.221885607954622
+ ],
+ [
+ -47.383397474736334,
+ -22.22188448003574
+ ],
+ [
+ -47.38347079855703,
+ -22.221884455225712
+ ],
+ [
+ -47.38355676815264,
+ -22.22188694600767
+ ],
+ [
+ -47.38364006253539,
+ -22.221892963156595
+ ],
+ [
+ -47.3836721361727,
+ -22.22189600500513
+ ],
+ [
+ -47.38370256187251,
+ -22.221898498327683
+ ],
+ [
+ -47.383752132058724,
+ -22.2219036543449
+ ],
+ [
+ -47.38380287047221,
+ -22.2219103198059
+ ],
+ [
+ -47.38384658091412,
+ -22.22191727745833
+ ],
+ [
+ -47.38388761740177,
+ -22.221924255235198
+ ],
+ [
+ -47.38392518610013,
+ -22.221931481454977
+ ],
+ [
+ -47.38395230065464,
+ -22.221936756228832
+ ],
+ [
+ -47.383977952821525,
+ -22.221941706393565
+ ],
+ [
+ -47.38401022365838,
+ -22.221947961381012
+ ],
+ [
+ -47.384044354181285,
+ -22.221954898819877
+ ],
+ [
+ -47.384086764438706,
+ -22.221963776853723
+ ],
+ [
+ -47.3841261383484,
+ -22.221973217316883
+ ],
+ [
+ -47.38416716655206,
+ -22.221983087867997
+ ],
+ [
+ -47.3841998571444,
+ -22.2219920698619
+ ],
+ [
+ -47.38422323259069,
+ -22.221998002468514
+ ],
+ [
+ -47.38426472105023,
+ -22.222009084655824
+ ],
+ [
+ -47.38428959455144,
+ -22.222016259718433
+ ],
+ [
+ -47.38432074245577,
+ -22.22202435511625
+ ],
+ [
+ -47.38436542941994,
+ -22.222037652920992
+ ],
+ [
+ -47.3843965102866,
+ -22.22204721372012
+ ],
+ [
+ -47.38442493773723,
+ -22.222055928877403
+ ],
+ [
+ -47.38444620655996,
+ -22.222062558969622
+ ],
+ [
+ -47.38446830760273,
+ -22.22206907417006
+ ],
+ [
+ -47.384509390712054,
+ -22.22208131811771
+ ],
+ [
+ -47.38454191020302,
+ -22.222092221778414
+ ],
+ [
+ -47.384552379178544,
+ -22.222095502897798
+ ],
+ [
+ -47.384580124610686,
+ -22.222103543515857
+ ],
+ [
+ -47.38460526651081,
+ -22.222111606649197
+ ],
+ [
+ -47.384628401703836,
+ -22.22211815111583
+ ],
+ [
+ -47.38466003109512,
+ -22.22212812767366
+ ],
+ [
+ -47.384698747680176,
+ -22.222139673531974
+ ],
+ [
+ -47.38472414535143,
+ -22.222148612163117
+ ],
+ [
+ -47.38474620232597,
+ -22.222155227000563
+ ],
+ [
+ -47.38476807941229,
+ -22.222162893560114
+ ],
+ [
+ -47.38496695388799,
+ -22.22221586634968
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "57",
+ "Name": "Curvas",
+ "Length": 188.44020399268015,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "57",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38315607179953,
+ -22.22188033410352
+ ],
+ [
+ -47.383252985477895,
+ -22.221874955056613
+ ],
+ [
+ -47.38332516771821,
+ -22.221872071466827
+ ],
+ [
+ -47.38339734953387,
+ -22.221870938697084
+ ],
+ [
+ -47.383471022145926,
+ -22.22187091376962
+ ],
+ [
+ -47.38355755727107,
+ -22.221873420937268
+ ],
+ [
+ -47.383641362150364,
+ -22.221879474965
+ ],
+ [
+ -47.383673510715965,
+ -22.22188252392002
+ ],
+ [
+ -47.38370400700005,
+ -22.22188502302702
+ ],
+ [
+ -47.38375395576267,
+ -22.221890218422082
+ ],
+ [
+ -47.38380511234045,
+ -22.221896938817405
+ ],
+ [
+ -47.38384911285938,
+ -22.22190394264351
+ ],
+ [
+ -47.383890395422185,
+ -22.221910962262893
+ ],
+ [
+ -47.383928144583265,
+ -22.221918223194432
+ ],
+ [
+ -47.38395526372572,
+ -22.221923498861027
+ ],
+ [
+ -47.38398090442661,
+ -22.221928446813376
+ ],
+ [
+ -47.38401325694512,
+ -22.221934717629225
+ ],
+ [
+ -47.38404750036986,
+ -22.22194167801703
+ ],
+ [
+ -47.38409017386937,
+ -22.221950611157478
+ ],
+ [
+ -47.38412976526895,
+ -22.22196010376733
+ ],
+ [
+ -47.38417104520038,
+ -22.22197003487775
+ ],
+ [
+ -47.38420382820408,
+ -22.221979042262685
+ ],
+ [
+ -47.384227150552356,
+ -22.22198496139335
+ ],
+ [
+ -47.38426887890668,
+ -22.22199610766043
+ ],
+ [
+ -47.38429370257926,
+ -22.222003268349546
+ ],
+ [
+ -47.384324912888644,
+ -22.22201137996676
+ ],
+ [
+ -47.38436992460569,
+ -22.222024774410748
+ ],
+ [
+ -47.384401079695564,
+ -22.222034358041917
+ ],
+ [
+ -47.3844295209929,
+ -22.22204307743108
+ ],
+ [
+ -47.384450710597726,
+ -22.222049682828967
+ ],
+ [
+ -47.38447271951191,
+ -22.222056170870843
+ ],
+ [
+ -47.38451407296696,
+ -22.2220684953895
+ ],
+ [
+ -47.384546694528055,
+ -22.222079433274182
+ ],
+ [
+ -47.38455686085864,
+ -22.22208261954056
+ ],
+ [
+ -47.38458465502383,
+ -22.2220906742816
+ ],
+ [
+ -47.38460975022332,
+ -22.222098722437995
+ ],
+ [
+ -47.384632850042344,
+ -22.222105256898175
+ ],
+ [
+ -47.384664582823525,
+ -22.222115266067533
+ ],
+ [
+ -47.384703540231904,
+ -22.222126883743115
+ ],
+ [
+ -47.38472894905655,
+ -22.222135826299844
+ ],
+ [
+ -47.38475099620475,
+ -22.222142438190495
+ ],
+ [
+ -47.38477264869141,
+ -22.222150026042016
+ ],
+ [
+ -47.38493893068458,
+ -22.222194317422403
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "58",
+ "Name": "Curvas",
+ "Length": 184.61288810189717,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "58",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38316396855039,
+ -22.221866330387336
+ ],
+ [
+ -47.383252240973746,
+ -22.221861430958526
+ ],
+ [
+ -47.38332473337014,
+ -22.221858534979
+ ],
+ [
+ -47.38339722433158,
+ -22.221857397358363
+ ],
+ [
+ -47.383471245734924,
+ -22.221857372313504
+ ],
+ [
+ -47.383558346389485,
+ -22.221859895866857
+ ],
+ [
+ -47.38364266176525,
+ -22.22186598677339
+ ],
+ [
+ -47.38367488525909,
+ -22.22186904283487
+ ],
+ [
+ -47.38370545212743,
+ -22.221871547726334
+ ],
+ [
+ -47.38375577946641,
+ -22.221876782499262
+ ],
+ [
+ -47.38380735420841,
+ -22.221883557828896
+ ],
+ [
+ -47.38385164480431,
+ -22.221890607828687
+ ],
+ [
+ -47.3838931734422,
+ -22.221897669290612
+ ],
+ [
+ -47.38393110306596,
+ -22.2219049649339
+ ],
+ [
+ -47.38395822679639,
+ -22.221910241493248
+ ],
+ [
+ -47.38398385603128,
+ -22.221915187233183
+ ],
+ [
+ -47.38401629008876,
+ -22.221921473848425
+ ],
+ [
+ -47.38405064655797,
+ -22.22192845721416
+ ],
+ [
+ -47.384093583299524,
+ -22.22193744546122
+ ],
+ [
+ -47.38413339218894,
+ -22.221946990217713
+ ],
+ [
+ -47.38417492375433,
+ -22.22195698186171
+ ],
+ [
+ -47.38420779926315,
+ -22.221966014663412
+ ],
+ [
+ -47.38423106851341,
+ -22.221971920318133
+ ],
+ [
+ -47.384273036762494,
+ -22.221983130665
+ ],
+ [
+ -47.38429781060644,
+ -22.221990276980637
+ ],
+ [
+ -47.384329083320885,
+ -22.221998404817214
+ ],
+ [
+ -47.38437441979075,
+ -22.222011895900447
+ ],
+ [
+ -47.384405635256726,
+ -22.222021498104127
+ ],
+ [
+ -47.38443410405947,
+ -22.222030225925945
+ ],
+ [
+ -47.38445521463478,
+ -22.222036806688244
+ ],
+ [
+ -47.38447713142042,
+ -22.222043267571532
+ ],
+ [
+ -47.384518755221116,
+ -22.22205567266121
+ ],
+ [
+ -47.384551478852316,
+ -22.222066644769843
+ ],
+ [
+ -47.38456134253801,
+ -22.22206973618326
+ ],
+ [
+ -47.384589185436276,
+ -22.222077805047252
+ ],
+ [
+ -47.38461423393512,
+ -22.222085838226718
+ ],
+ [
+ -47.38463729838017,
+ -22.22209236268046
+ ],
+ [
+ -47.384669134551224,
+ -22.22210240446133
+ ],
+ [
+ -47.38470833278287,
+ -22.222114093954158
+ ],
+ [
+ -47.38473375276093,
+ -22.22212304043651
+ ],
+ [
+ -47.38475579008277,
+ -22.22212964938034
+ ],
+ [
+ -47.38477721796981,
+ -22.222137158523825
+ ],
+ [
+ -47.38491090746562,
+ -22.222172768483173
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "59",
+ "Name": "Curvas",
+ "Length": 180.78556958656097,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "59",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38317186529975,
+ -22.221852326670934
+ ],
+ [
+ -47.38325149646985,
+ -22.221847906860443
+ ],
+ [
+ -47.38332429902227,
+ -22.221844998491154
+ ],
+ [
+ -47.383397099129446,
+ -22.221843856019653
+ ],
+ [
+ -47.38347146932401,
+ -22.221843830857374
+ ],
+ [
+ -47.38355913550786,
+ -22.221846370796417
+ ],
+ [
+ -47.383643961379995,
+ -22.22185249858178
+ ],
+ [
+ -47.383676259802094,
+ -22.221855561749724
+ ],
+ [
+ -47.38370689725465,
+ -22.221858072425654
+ ],
+ [
+ -47.3837576031699,
+ -22.22186334657643
+ ],
+ [
+ -47.383809596076055,
+ -22.221870176840355
+ ],
+ [
+ -47.38385417674888,
+ -22.221877273013817
+ ],
+ [
+ -47.38389595146183,
+ -22.2218843763183
+ ],
+ [
+ -47.38393406154822,
+ -22.221891706673325
+ ],
+ [
+ -47.383961189866596,
+ -22.221896984125458
+ ],
+ [
+ -47.383986807635495,
+ -22.221901927652937
+ ],
+ [
+ -47.3840193233767,
+ -22.221908230097014
+ ],
+ [
+ -47.38405379274561,
+ -22.221915236411263
+ ],
+ [
+ -47.384096992729155,
+ -22.22192427976491
+ ],
+ [
+ -47.38413701910838,
+ -22.221933876668075
+ ],
+ [
+ -47.38417880240251,
+ -22.22194392887166
+ ],
+ [
+ -47.38421177032158,
+ -22.221952987064103
+ ],
+ [
+ -47.384234986473835,
+ -22.22195887924291
+ ],
+ [
+ -47.38427719461764,
+ -22.221970153669485
+ ],
+ [
+ -47.38430191863297,
+ -22.221977285611672
+ ],
+ [
+ -47.38433325375247,
+ -22.221985429667612
+ ],
+ [
+ -47.38437891497511,
+ -22.22199901739008
+ ],
+ [
+ -47.38441020466739,
+ -22.222008642426783
+ ],
+ [
+ -47.38443868731681,
+ -22.22201737448043
+ ],
+ [
+ -47.38445971867109,
+ -22.222023930547472
+ ],
+ [
+ -47.38448154332821,
+ -22.222030364272175
+ ],
+ [
+ -47.38452343747454,
+ -22.22204284993283
+ ],
+ [
+ -47.38455626317583,
+ -22.222053856265415
+ ],
+ [
+ -47.38456582421668,
+ -22.222056852825897
+ ],
+ [
+ -47.384593715848006,
+ -22.22206493581287
+ ],
+ [
+ -47.3846187176462,
+ -22.222072954015374
+ ],
+ [
+ -47.384641746717286,
+ -22.222079468462685
+ ],
+ [
+ -47.38467368627818,
+ -22.222089542855073
+ ],
+ [
+ -47.38471312533306,
+ -22.222101304165136
+ ],
+ [
+ -47.38473855646454,
+ -22.22211025457308
+ ],
+ [
+ -47.38476058396003,
+ -22.222116860570125
+ ],
+ [
+ -47.38478178724746,
+ -22.222124291005574
+ ],
+ [
+ -47.3848828842311,
+ -22.222151219531973
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "60",
+ "Name": "Curvas",
+ "Length": 176.95824846359872,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "60",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383179762047675,
+ -22.221838322954223
+ ],
+ [
+ -47.383250751966244,
+ -22.221834382762285
+ ],
+ [
+ -47.38332386467463,
+ -22.221831462003273
+ ],
+ [
+ -47.38339697392748,
+ -22.221830314680886
+ ],
+ [
+ -47.38347169291318,
+ -22.22183028940121
+ ],
+ [
+ -47.38355992462624,
+ -22.221832845725988
+ ],
+ [
+ -47.38364526099464,
+ -22.22183901039015
+ ],
+ [
+ -47.383677634344956,
+ -22.22184208066456
+ ],
+ [
+ -47.38370834238174,
+ -22.22184459712495
+ ],
+ [
+ -47.38375942687319,
+ -22.22184991065358
+ ],
+ [
+ -47.38381183794341,
+ -22.221856795851817
+ ],
+ [
+ -47.38385670869311,
+ -22.221863938198958
+ ],
+ [
+ -47.383898729481054,
+ -22.22187108334597
+ ],
+ [
+ -47.383937020030054,
+ -22.221878448412742
+ ],
+ [
+ -47.38396415293639,
+ -22.22188372675762
+ ],
+ [
+ -47.38398975923928,
+ -22.221888668072676
+ ],
+ [
+ -47.38402235651735,
+ -22.22189498631572
+ ],
+ [
+ -47.38405693893278,
+ -22.221902015608343
+ ],
+ [
+ -47.384100402158275,
+ -22.22191111406858
+ ],
+ [
+ -47.38414064602725,
+ -22.221920763118383
+ ],
+ [
+ -47.384182680954204,
+ -22.221930875855232
+ ],
+ [
+ -47.38421574137941,
+ -22.221939959464727
+ ],
+ [
+ -47.38423890443366,
+ -22.221945838167596
+ ],
+ [
+ -47.384281352472144,
+ -22.221957176673918
+ ],
+ [
+ -47.38430602665886,
+ -22.221964294242653
+ ],
+ [
+ -47.38433742418339,
+ -22.221972454517935
+ ],
+ [
+ -47.38438341015874,
+ -22.221986138879632
+ ],
+ [
+ -47.38441476022396,
+ -22.221995782487884
+ ],
+ [
+ -47.38444327037878,
+ -22.222004522974185
+ ],
+ [
+ -47.38446422270672,
+ -22.222011054406615
+ ],
+ [
+ -47.38448595523531,
+ -22.222017460972733
+ ],
+ [
+ -47.38452811972721,
+ -22.222030027204383
+ ],
+ [
+ -47.38456104749857,
+ -22.22204106776091
+ ],
+ [
+ -47.38457030589464,
+ -22.222043969468434
+ ],
+ [
+ -47.384598246259,
+ -22.222052066578378
+ ],
+ [
+ -47.38462320135658,
+ -22.222060069803973
+ ],
+ [
+ -47.3846461950537,
+ -22.22206657424484
+ ],
+ [
+ -47.38467823800442,
+ -22.22207668124873
+ ],
+ [
+ -47.38471791788249,
+ -22.22208851437601
+ ],
+ [
+ -47.38474336016739,
+ -22.22209746870958
+ ],
+ [
+ -47.38476537783652,
+ -22.22210407175981
+ ],
+ [
+ -47.38478635652441,
+ -22.22211142348724
+ ],
+ [
+ -47.38485486098111,
+ -22.22212967056888
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "61",
+ "Name": "Curvas",
+ "Length": 173.06772543471328,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "61",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38318821830004,
+ -22.221823327035775
+ ],
+ [
+ -47.383323430327195,
+ -22.22181792551538
+ ],
+ [
+ -47.38339684872567,
+ -22.22181677334211
+ ],
+ [
+ -47.383471916502444,
+ -22.22181674794505
+ ],
+ [
+ -47.38356071374459,
+ -22.221819320655538
+ ],
+ [
+ -47.38364656060917,
+ -22.221825522198518
+ ],
+ [
+ -47.3836790088877,
+ -22.221828599579393
+ ],
+ [
+ -47.383709787508685,
+ -22.221831121824252
+ ],
+ [
+ -47.38376125057627,
+ -22.221836474730743
+ ],
+ [
+ -47.38381407981047,
+ -22.221843414863244
+ ],
+ [
+ -47.38385924063696,
+ -22.22185060338407
+ ],
+ [
+ -47.383901507499864,
+ -22.221857790373612
+ ],
+ [
+ -47.38393997851144,
+ -22.22186519015214
+ ],
+ [
+ -47.38396711600573,
+ -22.22187046938973
+ ],
+ [
+ -47.383992710842605,
+ -22.2218754084924
+ ],
+ [
+ -47.38402538980648,
+ -22.221881742564694
+ ],
+ [
+ -47.38406008511948,
+ -22.221888794805366
+ ],
+ [
+ -47.38410381158684,
+ -22.221897948372195
+ ],
+ [
+ -47.38414427294553,
+ -22.221907649568664
+ ],
+ [
+ -47.38418655960219,
+ -22.221917822865393
+ ],
+ [
+ -47.384219712436575,
+ -22.221926931865287
+ ],
+ [
+ -47.38424282239287,
+ -22.221932797092222
+ ],
+ [
+ -47.384285510325974,
+ -22.22194419967832
+ ],
+ [
+ -47.38431013468411,
+ -22.22195130287356
+ ],
+ [
+ -47.38434159461363,
+ -22.22195947936823
+ ],
+ [
+ -47.38438790534164,
+ -22.221973260369126
+ ],
+ [
+ -47.384419329636295,
+ -22.221982926811314
+ ],
+ [
+ -47.38444785363778,
+ -22.221991671529494
+ ],
+ [
+ -47.38446872674161,
+ -22.22199817826568
+ ],
+ [
+ -47.3844903671417,
+ -22.222004557673237
+ ],
+ [
+ -47.384532801979105,
+ -22.22201720447588
+ ],
+ [
+ -47.38456583182055,
+ -22.222028279256318
+ ],
+ [
+ -47.38457478757189,
+ -22.22203108611093
+ ],
+ [
+ -47.38460277666926,
+ -22.22203919734383
+ ],
+ [
+ -47.384627685066214,
+ -22.22204718559251
+ ],
+ [
+ -47.384650643389385,
+ -22.222053680026917
+ ],
+ [
+ -47.384682789729936,
+ -22.222063819642326
+ ],
+ [
+ -47.38472271043114,
+ -22.222075724586837
+ ],
+ [
+ -47.38474816386944,
+ -22.222084682845992
+ ],
+ [
+ -47.384770171712226,
+ -22.222091282949407
+ ],
+ [
+ -47.38479092580063,
+ -22.222098555968856
+ ],
+ [
+ -47.384826837715586,
+ -22.22210812159384
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "62",
+ "Name": "Curvas",
+ "Length": 169.24915820750667,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "62",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38319603749995,
+ -22.221809460833143
+ ],
+ [
+ -47.38332299597998,
+ -22.221804389027433
+ ],
+ [
+ -47.383396723524,
+ -22.2218032320033
+ ],
+ [
+ -47.38347214009181,
+ -22.221803206488858
+ ],
+ [
+ -47.38356150286293,
+ -22.221805795585084
+ ],
+ [
+ -47.38364786022358,
+ -22.22181203400687
+ ],
+ [
+ -47.38368038343029,
+ -22.221815118494202
+ ],
+ [
+ -47.383711232635484,
+ -22.221817646523533
+ ],
+ [
+ -47.38376307427913,
+ -22.221823038807866
+ ],
+ [
+ -47.38381632167723,
+ -22.221830033874678
+ ],
+ [
+ -47.383861772580474,
+ -22.221837268569175
+ ],
+ [
+ -47.38390428551828,
+ -22.22184449740124
+ ],
+ [
+ -47.383942936992405,
+ -22.221851931891507
+ ],
+ [
+ -47.38397007907465,
+ -22.221857212021856
+ ],
+ [
+ -47.38399566244552,
+ -22.221862148912088
+ ],
+ [
+ -47.38402842294415,
+ -22.22186849878295
+ ],
+ [
+ -47.38406323130571,
+ -22.22187557400239
+ ],
+ [
+ -47.38410722101491,
+ -22.22188478267579
+ ],
+ [
+ -47.38414789986329,
+ -22.22189453601889
+ ],
+ [
+ -47.38419043815165,
+ -22.22190476984858
+ ],
+ [
+ -47.384223683493154,
+ -22.22191390426581
+ ],
+ [
+ -47.38424674035148,
+ -22.22191975601681
+ ],
+ [
+ -47.384289668179164,
+ -22.22193122268266
+ ],
+ [
+ -47.384314242708705,
+ -22.221938311504427
+ ],
+ [
+ -47.38434576504324,
+ -22.22194650421845
+ ],
+ [
+ -47.38439240052384,
+ -22.221960381858544
+ ],
+ [
+ -47.38442388518829,
+ -22.22197006687131
+ ],
+ [
+ -47.38445243669518,
+ -22.22197882002211
+ ],
+ [
+ -47.384473230775804,
+ -22.22198530212467
+ ],
+ [
+ -47.38449477904741,
+ -22.221991654373657
+ ],
+ [
+ -47.38453748423028,
+ -22.222004381747283
+ ],
+ [
+ -47.384570616141765,
+ -22.22201549075165
+ ],
+ [
+ -47.38457926924843,
+ -22.22201820275334
+ ],
+ [
+ -47.384607307078824,
+ -22.222026328109216
+ ],
+ [
+ -47.38463216877517,
+ -22.222034301380965
+ ],
+ [
+ -47.38465509172438,
+ -22.222040785808925
+ ],
+ [
+ -47.384687341454736,
+ -22.222050958035837
+ ],
+ [
+ -47.38472750297904,
+ -22.222062934797552
+ ],
+ [
+ -47.384752967570755,
+ -22.22207189698232
+ ],
+ [
+ -47.38477496558719,
+ -22.22207849413892
+ ],
+ [
+ -47.38479549507612,
+ -22.222085688450374
+ ],
+ [
+ -47.38479881443451,
+ -22.222086572606848
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "63",
+ "Name": "Curvas",
+ "Length": 164.89769721013755,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "63",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383203856698415,
+ -22.221795594630258
+ ],
+ [
+ -47.38332256163297,
+ -22.221790852539467
+ ],
+ [
+ -47.38339659832248,
+ -22.221789690664515
+ ],
+ [
+ -47.38347236368126,
+ -22.221789665032667
+ ],
+ [
+ -47.383562291981264,
+ -22.221792270514584
+ ],
+ [
+ -47.38364915983785,
+ -22.221798545815204
+ ],
+ [
+ -47.38368175797275,
+ -22.221801637409005
+ ],
+ [
+ -47.38371267776212,
+ -22.221804171222825
+ ],
+ [
+ -47.383764897981735,
+ -22.221809602884978
+ ],
+ [
+ -47.38381856354368,
+ -22.221816652886087
+ ],
+ [
+ -47.38386430452363,
+ -22.22182393375427
+ ],
+ [
+ -47.383907063536284,
+ -22.2218312044288
+ ],
+ [
+ -47.383945895472934,
+ -22.221838673630838
+ ],
+ [
+ -47.38397304214311,
+ -22.22184395465393
+ ],
+ [
+ -47.383998614048004,
+ -22.221848889331785
+ ],
+ [
+ -47.384031456234474,
+ -22.221855255032274
+ ],
+ [
+ -47.38406637749144,
+ -22.22186235319936
+ ],
+ [
+ -47.384110630442464,
+ -22.221871616979335
+ ],
+ [
+ -47.38415152678048,
+ -22.22188142246907
+ ],
+ [
+ -47.38419431679943,
+ -22.221891716858924
+ ],
+ [
+ -47.38422765454911,
+ -22.22190087666628
+ ],
+ [
+ -47.384250658309455,
+ -22.221906714941348
+ ],
+ [
+ -47.38429382603168,
+ -22.221918245686904
+ ],
+ [
+ -47.38431835073265,
+ -22.221925320135263
+ ],
+ [
+ -47.384349935472194,
+ -22.221933529068618
+ ],
+ [
+ -47.384396895705336,
+ -22.221947503347902
+ ],
+ [
+ -47.38442845460231,
+ -22.22195721119557
+ ],
+ [
+ -47.384457019955846,
+ -22.22196596857825
+ ],
+ [
+ -47.38447773480926,
+ -22.221972425983587
+ ],
+ [
+ -47.3844991909524,
+ -22.221978751074
+ ],
+ [
+ -47.3845421664807,
+ -22.221991559018583
+ ],
+ [
+ -47.384575400462204,
+ -22.222002702246893
+ ],
+ [
+ -47.38458375092423,
+ -22.222005319395713
+ ],
+ [
+ -47.384611837487654,
+ -22.222013458874557
+ ],
+ [
+ -47.38463665248342,
+ -22.22202141716936
+ ],
+ [
+ -47.384659540058664,
+ -22.222027891590876
+ ],
+ [
+ -47.38469189317879,
+ -22.222038096429284
+ ],
+ [
+ -47.384732295526156,
+ -22.222050145008183
+ ],
+ [
+ -47.38475777127128,
+ -22.22205911111857
+ ],
+ [
+ -47.384766510615265,
+ -22.222061732025935
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "64",
+ "Name": "Curvas",
+ "Length": 160.44118477297874,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "64",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383211675895446,
+ -22.221781728427093
+ ],
+ [
+ -47.38332212728619,
+ -22.22177731605147
+ ],
+ [
+ -47.38339647312113,
+ -22.221776149325656
+ ],
+ [
+ -47.38347258727079,
+ -22.22177612357644
+ ],
+ [
+ -47.38356308109956,
+ -22.22177874544411
+ ],
+ [
+ -47.38365045945202,
+ -22.22178505762354
+ ],
+ [
+ -47.38368313251509,
+ -22.221788156323797
+ ],
+ [
+ -47.38371412288863,
+ -22.22179069592208
+ ],
+ [
+ -47.383766721684154,
+ -22.221796166962093
+ ],
+ [
+ -47.38382080540984,
+ -22.221803271897496
+ ],
+ [
+ -47.38386683646643,
+ -22.221810598939328
+ ],
+ [
+ -47.383909841553894,
+ -22.221817911456395
+ ],
+ [
+ -47.38394885395302,
+ -22.221825415370155
+ ],
+ [
+ -47.38397600521116,
+ -22.221830697286
+ ],
+ [
+ -47.38400156565007,
+ -22.22183562975142
+ ],
+ [
+ -47.384034489369164,
+ -22.22184201125005
+ ],
+ [
+ -47.38406952367673,
+ -22.221849132396322
+ ],
+ [
+ -47.384114039869495,
+ -22.221858451282866
+ ],
+ [
+ -47.38415515369711,
+ -22.22186830891922
+ ],
+ [
+ -47.384198195346684,
+ -22.22187866384175
+ ],
+ [
+ -47.384231625604436,
+ -22.2218878490667
+ ],
+ [
+ -47.38425457626683,
+ -22.221893673865832
+ ],
+ [
+ -47.38429798388356,
+ -22.221905268691124
+ ],
+ [
+ -47.38432245875596,
+ -22.221912328766013
+ ],
+ [
+ -47.38435410590048,
+ -22.221920553918707
+ ],
+ [
+ -47.384401390886104,
+ -22.22193462483718
+ ],
+ [
+ -47.38443301014972,
+ -22.22194435125447
+ ],
+ [
+ -47.38446160300866,
+ -22.221953117069745
+ ],
+ [
+ -47.38448223884202,
+ -22.221959549842445
+ ],
+ [
+ -47.38450360285669,
+ -22.221965847774282
+ ],
+ [
+ -47.38454684873037,
+ -22.221978736289827
+ ],
+ [
+ -47.38458018478191,
+ -22.22198991374207
+ ],
+ [
+ -47.38458823259936,
+ -22.22199243603799
+ ],
+ [
+ -47.38461636789577,
+ -22.222000589639777
+ ],
+ [
+ -47.38464113619095,
+ -22.222008532957663
+ ],
+ [
+ -47.384663988392255,
+ -22.22201499737275
+ ],
+ [
+ -47.38469644490213,
+ -22.22202523482264
+ ],
+ [
+ -47.38473336672464,
+ -22.222036245457602
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "65",
+ "Name": "Curvas",
+ "Length": 156.35343504447525,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "65",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38321949509104,
+ -22.221767862223672
+ ],
+ [
+ -47.38332169293963,
+ -22.221763779563464
+ ],
+ [
+ -47.38339634791993,
+ -22.221762607986786
+ ],
+ [
+ -47.383472810860425,
+ -22.221762582120196
+ ],
+ [
+ -47.38356387021782,
+ -22.22176522037363
+ ],
+ [
+ -47.38365175906607,
+ -22.22177156943186
+ ],
+ [
+ -47.38368450705729,
+ -22.221774675238603
+ ],
+ [
+ -47.38371556801498,
+ -22.221777220621366
+ ],
+ [
+ -47.38376854538635,
+ -22.221782731039216
+ ],
+ [
+ -47.38382304727569,
+ -22.2217898909089
+ ],
+ [
+ -47.38386936840887,
+ -22.221797264124334
+ ],
+ [
+ -47.3839126195711,
+ -22.22180461848396
+ ],
+ [
+ -47.38395181243265,
+ -22.221812157109436
+ ],
+ [
+ -47.38397896827876,
+ -22.221817439918045
+ ],
+ [
+ -47.38400451725166,
+ -22.221822370171026
+ ],
+ [
+ -47.38403752266061,
+ -22.22182876749976
+ ],
+ [
+ -47.38407266986153,
+ -22.221835911593242
+ ],
+ [
+ -47.38411744929601,
+ -22.221845285586344
+ ],
+ [
+ -47.38415878061317,
+ -22.221855195369344
+ ],
+ [
+ -47.384202073994246,
+ -22.221865610852216
+ ],
+ [
+ -47.38423559665913,
+ -22.22187482146708
+ ],
+ [
+ -47.38425849422359,
+ -22.221880632790302
+ ],
+ [
+ -47.38430214173477,
+ -22.22189229169527
+ ],
+ [
+ -47.38432656677861,
+ -22.221899337396696
+ ],
+ [
+ -47.384358276328115,
+ -22.221907578768768
+ ],
+ [
+ -47.384405886066176,
+ -22.22192174632637
+ ],
+ [
+ -47.38443757956538,
+ -22.221931495579547
+ ],
+ [
+ -47.38446618627098,
+ -22.22194026562672
+ ],
+ [
+ -47.38448674287406,
+ -22.221946673701233
+ ],
+ [
+ -47.38450801476027,
+ -22.221952944474527
+ ],
+ [
+ -47.3845515309793,
+ -22.22196591356099
+ ],
+ [
+ -47.3845849691008,
+ -22.221977125237167
+ ],
+ [
+ -47.384592714273744,
+ -22.2219795526802
+ ],
+ [
+ -47.38462089830316,
+ -22.221987720404936
+ ],
+ [
+ -47.38464561989774,
+ -22.221995648745924
+ ],
+ [
+ -47.384668436725136,
+ -22.222002103154573
+ ],
+ [
+ -47.384700996624765,
+ -22.222012373215957
+ ],
+ [
+ -47.38470316189528,
+ -22.222013018931296
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "66",
+ "Name": "Curvas",
+ "Length": 152.1213010308591,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "66",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3832273142852,
+ -22.221753996019984
+ ],
+ [
+ -47.383321258593284,
+ -22.221750243075398
+ ],
+ [
+ -47.38339622271889,
+ -22.22174906664788
+ ],
+ [
+ -47.38347303445015,
+ -22.221749040663937
+ ],
+ [
+ -47.38356465933609,
+ -22.22175169530313
+ ],
+ [
+ -47.38365305868,
+ -22.221758081240175
+ ],
+ [
+ -47.38368588159936,
+ -22.221761194153377
+ ],
+ [
+ -47.383717013141194,
+ -22.221763745320608
+ ],
+ [
+ -47.383770369088325,
+ -22.221769295116303
+ ],
+ [
+ -47.38382528914124,
+ -22.221776509920282
+ ],
+ [
+ -47.38387190035096,
+ -22.221783929309375
+ ],
+ [
+ -47.38391539758791,
+ -22.22179132551151
+ ],
+ [
+ -47.38395477091186,
+ -22.221798898848707
+ ],
+ [
+ -47.383981931345936,
+ -22.221804182550066
+ ],
+ [
+ -47.384007468852836,
+ -22.221809110590623
+ ],
+ [
+ -47.384040555792375,
+ -22.221815523717076
+ ],
+ [
+ -47.38407581604587,
+ -22.22182269079015
+ ],
+ [
+ -47.38412085872201,
+ -22.221832119889804
+ ],
+ [
+ -47.384162407528684,
+ -22.221842081819425
+ ],
+ [
+ -47.38420595253933,
+ -22.22185255783469
+ ],
+ [
+ -47.38423956771322,
+ -22.221861793867404
+ ],
+ [
+ -47.38426241217974,
+ -22.221867591714695
+ ],
+ [
+ -47.38430629958534,
+ -22.22187931469937
+ ],
+ [
+ -47.38433067480062,
+ -22.221886346027336
+ ],
+ [
+ -47.38436244675509,
+ -22.221894603618754
+ ],
+ [
+ -47.38441038124552,
+ -22.221908867815507
+ ],
+ [
+ -47.38444213510824,
+ -22.22191863563734
+ ],
+ [
+ -47.38447076931923,
+ -22.22192741411711
+ ],
+ [
+ -47.384491246905384,
+ -22.221933797559945
+ ],
+ [
+ -47.38451242666317,
+ -22.22194004117468
+ ],
+ [
+ -47.384556213227484,
+ -22.22195309083207
+ ],
+ [
+ -47.384589753418965,
+ -22.221964336732167
+ ],
+ [
+ -47.38459719594743,
+ -22.221966669322327
+ ],
+ [
+ -47.38462542870984,
+ -22.221974851170035
+ ],
+ [
+ -47.384650103603846,
+ -22.2219827645341
+ ],
+ [
+ -47.38467179863586,
+ -22.22198890161014
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "67",
+ "Name": "Curvas",
+ "Length": 148.0435176664476,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "67",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3832351334779,
+ -22.221740129816048
+ ],
+ [
+ -47.38332082424713,
+ -22.22173670658733
+ ],
+ [
+ -47.383396097518,
+ -22.221735525308986
+ ],
+ [
+ -47.383473258039935,
+ -22.221735499207657
+ ],
+ [
+ -47.383565448454306,
+ -22.2217381702326
+ ],
+ [
+ -47.383654358293796,
+ -22.221744593048495
+ ],
+ [
+ -47.38368725614128,
+ -22.221747713068165
+ ],
+ [
+ -47.38371845826724,
+ -22.221750270019857
+ ],
+ [
+ -47.38377219279006,
+ -22.22175585919339
+ ],
+ [
+ -47.3838275310065,
+ -22.221763128931613
+ ],
+ [
+ -47.38387443229269,
+ -22.22177059449438
+ ],
+ [
+ -47.383918175604315,
+ -22.221778032538992
+ ],
+ [
+ -47.383957729390666,
+ -22.221785640587935
+ ],
+ [
+ -47.383984894412684,
+ -22.221790925182017
+ ],
+ [
+ -47.38401042045357,
+ -22.221795851010203
+ ],
+ [
+ -47.38404358908498,
+ -22.22180227996712
+ ],
+ [
+ -47.38407896222974,
+ -22.221809469987026
+ ],
+ [
+ -47.38412426814746,
+ -22.221818954193214
+ ],
+ [
+ -47.38416603444363,
+ -22.22182896826944
+ ],
+ [
+ -47.384209831186624,
+ -22.221839504845352
+ ],
+ [
+ -47.38424353876667,
+ -22.221848766267673
+ ],
+ [
+ -47.38426633013528,
+ -22.22185455063904
+ ],
+ [
+ -47.38431045743525,
+ -22.22186633770342
+ ],
+ [
+ -47.38433478282198,
+ -22.221873354657923
+ ],
+ [
+ -47.38436661718142,
+ -22.221881628468655
+ ],
+ [
+ -47.38441487642414,
+ -22.221895989304585
+ ],
+ [
+ -47.38444670452555,
+ -22.221905779963198
+ ],
+ [
+ -47.38447535258317,
+ -22.221914562674886
+ ],
+ [
+ -47.384495750935976,
+ -22.221920921418587
+ ],
+ [
+ -47.38451683856537,
+ -22.22192713787477
+ ],
+ [
+ -47.3845608954749,
+ -22.22194026810308
+ ],
+ [
+ -47.384594537736355,
+ -22.221951548227086
+ ],
+ [
+ -47.38460167762041,
+ -22.221953785964402
+ ],
+ [
+ -47.38462995911578,
+ -22.22196198193506
+ ],
+ [
+ -47.384641678917184,
+ -22.221965740531168
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "68",
+ "Name": "Curvas",
+ "Length": 143.93692845341553,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "68",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38324295266918,
+ -22.22172626361184
+ ],
+ [
+ -47.38332038990121,
+ -22.221723170099207
+ ],
+ [
+ -47.383395972317274,
+ -22.221721983970035
+ ],
+ [
+ -47.38347348162984,
+ -22.221721957751363
+ ],
+ [
+ -47.38356623757252,
+ -22.22172464516208
+ ],
+ [
+ -47.38365565790749,
+ -22.22173110485679
+ ],
+ [
+ -47.38368863068308,
+ -22.22173423198292
+ ],
+ [
+ -47.383719903393164,
+ -22.22173679471908
+ ],
+ [
+ -47.3837740164916,
+ -22.221742423270456
+ ],
+ [
+ -47.38382977287146,
+ -22.22174974794297
+ ],
+ [
+ -47.38387696423408,
+ -22.221757259679386
+ ],
+ [
+ -47.383920953620326,
+ -22.221764739566492
+ ],
+ [
+ -47.38396068786901,
+ -22.22177238232716
+ ],
+ [
+ -47.38398785747898,
+ -22.22177766781399
+ ],
+ [
+ -47.38401337205389,
+ -22.221782591429758
+ ],
+ [
+ -47.384046622213816,
+ -22.22178903618396
+ ],
+ [
+ -47.384082108413146,
+ -22.22179624918388
+ ],
+ [
+ -47.38412767757241,
+ -22.2218057884966
+ ],
+ [
+ -47.38416966135803,
+ -22.221815854719413
+ ],
+ [
+ -47.38421370972956,
+ -22.22182645182745
+ ],
+ [
+ -47.38424750981952,
+ -22.22183573866789
+ ],
+ [
+ -47.38427024809021,
+ -22.221841509563333
+ ],
+ [
+ -47.38431461528451,
+ -22.22185336070741
+ ],
+ [
+ -47.3843388908427,
+ -22.221860363288457
+ ],
+ [
+ -47.38437078760708,
+ -22.22186865331853
+ ],
+ [
+ -47.384419371602064,
+ -22.22188311079358
+ ],
+ [
+ -47.384451260063855,
+ -22.2218929200199
+ ],
+ [
+ -47.384479935626864,
+ -22.22190171116416
+ ],
+ [
+ -47.384500254965864,
+ -22.221908045277154
+ ],
+ [
+ -47.384521250466854,
+ -22.221914234574783
+ ],
+ [
+ -47.38456557772159,
+ -22.221927445374014
+ ],
+ [
+ -47.38459932205299,
+ -22.221938759721937
+ ],
+ [
+ -47.38460615929267,
+ -22.221940902606406
+ ],
+ [
+ -47.38461132555511,
+ -22.221942399788063
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "69",
+ "Name": "Curvas",
+ "Length": 139.48308161212697,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "69",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383251726600975,
+ -22.221710704310127
+ ],
+ [
+ -47.38339584711671,
+ -22.22170844263112
+ ],
+ [
+ -47.3834737052198,
+ -22.221708416295087
+ ],
+ [
+ -47.38356702669072,
+ -22.22171112009155
+ ],
+ [
+ -47.383656957521055,
+ -22.22171761666511
+ ],
+ [
+ -47.38369000522475,
+ -22.221720750897685
+ ],
+ [
+ -47.38372134851893,
+ -22.221723319418313
+ ],
+ [
+ -47.38377584019292,
+ -22.221728987347497
+ ],
+ [
+ -47.3838320147361,
+ -22.221736366954325
+ ],
+ [
+ -47.38387949617508,
+ -22.22174392486434
+ ],
+ [
+ -47.38392373163592,
+ -22.221751446593977
+ ],
+ [
+ -47.383963646346906,
+ -22.221759124066338
+ ],
+ [
+ -47.38399082054481,
+ -22.22176441044595
+ ],
+ [
+ -47.38401632365377,
+ -22.221769331849284
+ ],
+ [
+ -47.38404965550752,
+ -22.221775792434396
+ ],
+ [
+ -47.38408525459607,
+ -22.221783028380674
+ ],
+ [
+ -47.384131086996845,
+ -22.221792622799935
+ ],
+ [
+ -47.38417328827185,
+ -22.22180274116938
+ ],
+ [
+ -47.38421758837657,
+ -22.221813398838293
+ ],
+ [
+ -47.38425148087173,
+ -22.221822711068047
+ ],
+ [
+ -47.38427416604453,
+ -22.22182846848759
+ ],
+ [
+ -47.38431877313309,
+ -22.221840383711324
+ ],
+ [
+ -47.38434299886278,
+ -22.221847371918916
+ ],
+ [
+ -47.384374958032076,
+ -22.221855678168367
+ ],
+ [
+ -47.38442386677925,
+ -22.221870232282512
+ ],
+ [
+ -47.384455829482825,
+ -22.221880064346596
+ ],
+ [
+ -47.38448451889244,
+ -22.221888859722757
+ ],
+ [
+ -47.384504758995035,
+ -22.221895169135657
+ ],
+ [
+ -47.384525662367636,
+ -22.221901331274744
+ ],
+ [
+ -47.384570259967525,
+ -22.22191462264486
+ ],
+ [
+ -47.384579024556366,
+ -22.221917561376024
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "70",
+ "Name": "Curvas",
+ "Length": 135.32266213155788,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "70",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383259431889705,
+ -22.221697040089737
+ ],
+ [
+ -47.383395721916294,
+ -22.221694901292125
+ ],
+ [
+ -47.38347392880988,
+ -22.22169487483876
+ ],
+ [
+ -47.3835678158089,
+ -22.221697595021002
+ ],
+ [
+ -47.38365825713451,
+ -22.221704128473387
+ ],
+ [
+ -47.38369137976629,
+ -22.22170726981243
+ ],
+ [
+ -47.38372279364456,
+ -22.221709844117523
+ ],
+ [
+ -47.38377766389402,
+ -22.221715551424566
+ ],
+ [
+ -47.38383425660046,
+ -22.22172298596565
+ ],
+ [
+ -47.38388202811576,
+ -22.221730590049315
+ ],
+ [
+ -47.383926509651126,
+ -22.22173815362144
+ ],
+ [
+ -47.38396660482439,
+ -22.221745865805513
+ ],
+ [
+ -47.38399378361023,
+ -22.22175115307787
+ ],
+ [
+ -47.38401927525321,
+ -22.22175607226878
+ ],
+ [
+ -47.38405268863345,
+ -22.22176254865078
+ ],
+ [
+ -47.38408840077854,
+ -22.221769807577466
+ ],
+ [
+ -47.384134496420764,
+ -22.221779457103256
+ ],
+ [
+ -47.384176915185144,
+ -22.221789627619298
+ ],
+ [
+ -47.38422146691736,
+ -22.221800345820064
+ ],
+ [
+ -47.38425545192333,
+ -22.221809683468162
+ ],
+ [
+ -47.384278083998225,
+ -22.22181542741178
+ ],
+ [
+ -47.38432293098104,
+ -22.221827406715196
+ ],
+ [
+ -47.38434710688221,
+ -22.22183438054934
+ ],
+ [
+ -47.38437912845643,
+ -22.22184270301813
+ ],
+ [
+ -47.384428361955734,
+ -22.22185735377136
+ ],
+ [
+ -47.38446038501658,
+ -22.221867204402187
+ ],
+ [
+ -47.38448910193159,
+ -22.22187600821092
+ ],
+ [
+ -47.38450926302349,
+ -22.221882292994085
+ ],
+ [
+ -47.38453007426773,
+ -22.22188842797462
+ ],
+ [
+ -47.384548139833825,
+ -22.221893812034093
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "71",
+ "Name": "Curvas",
+ "Length": 131.2630092213141,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "71",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38326713717702,
+ -22.221683375869116
+ ],
+ [
+ -47.38339559671603,
+ -22.221681359953124
+ ],
+ [
+ -47.38347415240004,
+ -22.221681333382413
+ ],
+ [
+ -47.38356860492704,
+ -22.22168406995044
+ ],
+ [
+ -47.383659556747844,
+ -22.22169064028166
+ ],
+ [
+ -47.38369275430768,
+ -22.221693788727197
+ ],
+ [
+ -47.38372423877002,
+ -22.221696368816737
+ ],
+ [
+ -47.38377948759487,
+ -22.22170211550163
+ ],
+ [
+ -47.383836498464504,
+ -22.221709604976933
+ ],
+ [
+ -47.38388456005607,
+ -22.221717255234257
+ ],
+ [
+ -47.383929287665914,
+ -22.221724860648845
+ ],
+ [
+ -47.38396956330141,
+ -22.221732607544634
+ ],
+ [
+ -47.38399674667524,
+ -22.221737895709733
+ ],
+ [
+ -47.38402222685221,
+ -22.22174281268823
+ ],
+ [
+ -47.384055721928284,
+ -22.221749304901564
+ ],
+ [
+ -47.384091546960526,
+ -22.221756586774212
+ ],
+ [
+ -47.38413790584415,
+ -22.221766291406553
+ ],
+ [
+ -47.38418054209785,
+ -22.221776514069155
+ ],
+ [
+ -47.384225345564076,
+ -22.221787292831014
+ ],
+ [
+ -47.3842594229743,
+ -22.221796655868214
+ ],
+ [
+ -47.3842820019513,
+ -22.221802386335927
+ ],
+ [
+ -47.38432708882833,
+ -22.221814429718993
+ ],
+ [
+ -47.38435121490098,
+ -22.221821389179684
+ ],
+ [
+ -47.38438329888009,
+ -22.22182972786781
+ ],
+ [
+ -47.3844328571315,
+ -22.221844475260124
+ ],
+ [
+ -47.38446495443718,
+ -22.221854348729675
+ ],
+ [
+ -47.38449368519881,
+ -22.22186315677034
+ ],
+ [
+ -47.384513767051224,
+ -22.221869416852446
+ ],
+ [
+ -47.3845180615844,
+ -22.22187068284362
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "72",
+ "Name": "Curvas",
+ "Length": 127.09530654341798,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "72",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38327484246295,
+ -22.221669711648214
+ ],
+ [
+ -47.383395471515925,
+ -22.221667818614083
+ ],
+ [
+ -47.3834743759903,
+ -22.221667791926055
+ ],
+ [
+ -47.38356939404519,
+ -22.22167054487987
+ ],
+ [
+ -47.38366085636106,
+ -22.221677152089924
+ ],
+ [
+ -47.38369412884895,
+ -22.22168030764192
+ ],
+ [
+ -47.38372568389535,
+ -22.221682893515922
+ ],
+ [
+ -47.38378131129553,
+ -22.221688679578655
+ ],
+ [
+ -47.383838740328265,
+ -22.221696223988236
+ ],
+ [
+ -47.38388709199604,
+ -22.221703920419195
+ ],
+ [
+ -47.38393206568032,
+ -22.221711567676273
+ ],
+ [
+ -47.38397252177801,
+ -22.22171934928376
+ ],
+ [
+ -47.38399970973979,
+ -22.221724638341605
+ ],
+ [
+ -47.38402517845078,
+ -22.221729553107668
+ ],
+ [
+ -47.384058755051335,
+ -22.221736061117483
+ ],
+ [
+ -47.38409469314205,
+ -22.221743365970944
+ ],
+ [
+ -47.38414131526703,
+ -22.221753125709803
+ ],
+ [
+ -47.38418416901001,
+ -22.22176340051897
+ ],
+ [
+ -47.384229224102754,
+ -22.22177423981243
+ ],
+ [
+ -47.38426339402466,
+ -22.221783628268224
+ ],
+ [
+ -47.38428591990378,
+ -22.221789345260017
+ ],
+ [
+ -47.384331246674954,
+ -22.221801452722747
+ ],
+ [
+ -47.38435532291911,
+ -22.221808397809987
+ ],
+ [
+ -47.38438746930312,
+ -22.221816752717448
+ ],
+ [
+ -47.38443735230656,
+ -22.221831596748835
+ ],
+ [
+ -47.38446950996641,
+ -22.22184148878417
+ ],
+ [
+ -47.38448711512716,
+ -22.22184688602971
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "73",
+ "Name": "Curvas",
+ "Length": 122.93694138559697,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "73",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383282547747484,
+ -22.221656047427068
+ ],
+ [
+ -47.383395346315986,
+ -22.22165427727506
+ ],
+ [
+ -47.38347459958064,
+ -22.221654250469687
+ ],
+ [
+ -47.383570183163314,
+ -22.221657019809278
+ ],
+ [
+ -47.38366215597416,
+ -22.221663663898173
+ ],
+ [
+ -47.38369550339007,
+ -22.221666826556632
+ ],
+ [
+ -47.383727129020535,
+ -22.22166941821514
+ ],
+ [
+ -47.38378313499596,
+ -22.221675243655685
+ ],
+ [
+ -47.38384098219172,
+ -22.221682842999524
+ ],
+ [
+ -47.38388962393563,
+ -22.221690585604122
+ ],
+ [
+ -47.38393484369431,
+ -22.221698274703652
+ ],
+ [
+ -47.38397548025417,
+ -22.22170609102284
+ ],
+ [
+ -47.38400267280388,
+ -22.22171138097344
+ ],
+ [
+ -47.38402813004891,
+ -22.22171629352713
+ ],
+ [
+ -47.38406178834721,
+ -22.221722817368605
+ ],
+ [
+ -47.38409783932308,
+ -22.22173014516763
+ ],
+ [
+ -47.38414472468938,
+ -22.221739960013004
+ ],
+ [
+ -47.3841877959216,
+ -22.221750286968774
+ ],
+ [
+ -47.38423310274917,
+ -22.221761186823546
+ ],
+ [
+ -47.384267365074386,
+ -22.221770600668183
+ ],
+ [
+ -47.38428983785565,
+ -22.22177630418407
+ ],
+ [
+ -47.38433540452093,
+ -22.22178847572643
+ ],
+ [
+ -47.3843594309366,
+ -22.22179540644024
+ ],
+ [
+ -47.38439163972551,
+ -22.221803777567033
+ ],
+ [
+ -47.38444184748089,
+ -22.22181871823748
+ ],
+ [
+ -47.384456243159136,
+ -22.22182314649558
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "74",
+ "Name": "Curvas",
+ "Length": 113.36595607757059,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "74",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3833433201366,
+ -22.221641550420774
+ ],
+ [
+ -47.3833952211162,
+ -22.221640735935974
+ ],
+ [
+ -47.38347482317108,
+ -22.221640709013293
+ ],
+ [
+ -47.38357097228141,
+ -22.22164349473869
+ ],
+ [
+ -47.38366345558715,
+ -22.221650175706415
+ ],
+ [
+ -47.38369687793107,
+ -22.221653345471342
+ ],
+ [
+ -47.38372857414557,
+ -22.22165594291431
+ ],
+ [
+ -47.38378495869618,
+ -22.22166180773269
+ ],
+ [
+ -47.383843224054885,
+ -22.221669462010798
+ ],
+ [
+ -47.38389215587488,
+ -22.22167725078901
+ ],
+ [
+ -47.38393762170791,
+ -22.22168498173103
+ ],
+ [
+ -47.383978438729905,
+ -22.221692832761914
+ ],
+ [
+ -47.38400563586756,
+ -22.221698123605254
+ ],
+ [
+ -47.384031081646626,
+ -22.221703033946525
+ ],
+ [
+ -47.3840648214674,
+ -22.221709573584082
+ ],
+ [
+ -47.384100985503665,
+ -22.22171692436431
+ ],
+ [
+ -47.384148134111214,
+ -22.221726794316176
+ ],
+ [
+ -47.384191422832636,
+ -22.221737173418504
+ ],
+ [
+ -47.38423698128576,
+ -22.221748133804628
+ ],
+ [
+ -47.3842713361235,
+ -22.221757573068093
+ ],
+ [
+ -47.3842937558069,
+ -22.221763263108055
+ ],
+ [
+ -47.38433956236626,
+ -22.221775498730075
+ ],
+ [
+ -47.384363538953444,
+ -22.221782415070436
+ ],
+ [
+ -47.384395810147225,
+ -22.221790802416542
+ ],
+ [
+ -47.38442577879478,
+ -22.22179972039535
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "75",
+ "Name": "Curvas",
+ "Length": 109.31453554044786,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "75",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38335123557492,
+ -22.22162788290027
+ ],
+ [
+ -47.38339509591657,
+ -22.2216271945969
+ ],
+ [
+ -47.383475046761575,
+ -22.221627167556885
+ ],
+ [
+ -47.38357176139948,
+ -22.221629969668083
+ ],
+ [
+ -47.383664755199995,
+ -22.22163668751466
+ ],
+ [
+ -47.38369825247193,
+ -22.221639864386045
+ ],
+ [
+ -47.38373001927045,
+ -22.221642467613506
+ ],
+ [
+ -47.38378678239617,
+ -22.22164837180969
+ ],
+ [
+ -47.38384546591773,
+ -22.22165608102205
+ ],
+ [
+ -47.383894687813765,
+ -22.22166391597384
+ ],
+ [
+ -47.38394039972109,
+ -22.22167168875836
+ ],
+ [
+ -47.38398139720521,
+ -22.221679574500964
+ ],
+ [
+ -47.384008598930805,
+ -22.221684866237062
+ ],
+ [
+ -47.38403403324389,
+ -22.221689774365913
+ ],
+ [
+ -47.38406785476434,
+ -22.22169632983556
+ ],
+ [
+ -47.38410413168378,
+ -22.221703703560955
+ ],
+ [
+ -47.38415154353251,
+ -22.221713628619312
+ ],
+ [
+ -47.3841950497431,
+ -22.22172405986821
+ ],
+ [
+ -47.38424085993185,
+ -22.221735080815908
+ ],
+ [
+ -47.384275307171976,
+ -22.221744545467935
+ ],
+ [
+ -47.384297673757516,
+ -22.221750222032014
+ ],
+ [
+ -47.384343720210914,
+ -22.221762521733652
+ ],
+ [
+ -47.384367646969615,
+ -22.22176942370057
+ ],
+ [
+ -47.384395943490254,
+ -22.22177677802156
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "76",
+ "Name": "Curvas",
+ "Length": 105.20255975809475,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "76",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38336215060415,
+ -22.221614168306605
+ ],
+ [
+ -47.38339497071709,
+ -22.22161365325777
+ ],
+ [
+ -47.38347527035219,
+ -22.221613626100456
+ ],
+ [
+ -47.38357255051754,
+ -22.221616444597476
+ ],
+ [
+ -47.38366605481274,
+ -22.221623199322888
+ ],
+ [
+ -47.383699627012675,
+ -22.221626383300734
+ ],
+ [
+ -47.383731464395204,
+ -22.221628992312656
+ ],
+ [
+ -47.38378860609595,
+ -22.22163493588667
+ ],
+ [
+ -47.38384770778029,
+ -22.221642700033296
+ ],
+ [
+ -47.383897219752306,
+ -22.221650581158706
+ ],
+ [
+ -47.3839431777339,
+ -22.2216583957857
+ ],
+ [
+ -47.383984355680084,
+ -22.221666316239993
+ ],
+ [
+ -47.38401156199362,
+ -22.22167160886884
+ ],
+ [
+ -47.384036984840726,
+ -22.22167651478526
+ ],
+ [
+ -47.38407088788168,
+ -22.221683086050586
+ ],
+ [
+ -47.38410727786342,
+ -22.22169048275758
+ ],
+ [
+ -47.38415495295332,
+ -22.22170046292242
+ ],
+ [
+ -47.38419867665302,
+ -22.221710946317888
+ ],
+ [
+ -47.38424473846635,
+ -22.221722027796634
+ ],
+ [
+ -47.38427927821984,
+ -22.221731517867738
+ ],
+ [
+ -47.38430159170755,
+ -22.221737180955923
+ ],
+ [
+ -47.384347878054925,
+ -22.221749544737165
+ ],
+ [
+ -47.38436812230468,
+ -22.221755384439394
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "77",
+ "Name": "Curvas",
+ "Length": 101.43402807896966,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "77",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383368403156986,
+ -22.221600526881307
+ ],
+ [
+ -47.38339484551777,
+ -22.22160011191864
+ ],
+ [
+ -47.38347549394288,
+ -22.221600084644024
+ ],
+ [
+ -47.38357333963559,
+ -22.221602919526855
+ ],
+ [
+ -47.38366735442537,
+ -22.221609711131116
+ ],
+ [
+ -47.38370100155327,
+ -22.221612902215437
+ ],
+ [
+ -47.3837329095198,
+ -22.22161551701181
+ ],
+ [
+ -47.383790429795496,
+ -22.22162149996366
+ ],
+ [
+ -47.38384994964255,
+ -22.22162931904451
+ ],
+ [
+ -47.38389975169048,
+ -22.22163724634355
+ ],
+ [
+ -47.383945955746285,
+ -22.221645102813
+ ],
+ [
+ -47.38398731415448,
+ -22.22165305797897
+ ],
+ [
+ -47.384014525055974,
+ -22.221658351500555
+ ],
+ [
+ -47.38403993643711,
+ -22.2216632552046
+ ],
+ [
+ -47.38407392117966,
+ -22.221669842302415
+ ],
+ [
+ -47.38411042404257,
+ -22.221677261954156
+ ],
+ [
+ -47.38415836237359,
+ -22.2216872972255
+ ],
+ [
+ -47.38420230356237,
+ -22.22169783276751
+ ],
+ [
+ -47.38424861711207,
+ -22.221708974808045
+ ],
+ [
+ -47.38428324926708,
+ -22.221718490267516
+ ],
+ [
+ -47.384305509656976,
+ -22.22172413987978
+ ],
+ [
+ -47.38433918990981,
+ -22.221733136373608
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "78",
+ "Name": "Curvas",
+ "Length": 97.63201531937344,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "78",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38337601123428,
+ -22.22158686418334
+ ],
+ [
+ -47.383394720318606,
+ -22.22158657057946
+ ],
+ [
+ -47.38347571753368,
+ -22.22158654318756
+ ],
+ [
+ -47.38357412875361,
+ -22.221589394456227
+ ],
+ [
+ -47.383668654037876,
+ -22.221596222939326
+ ],
+ [
+ -47.38370237609374,
+ -22.221599421130104
+ ],
+ [
+ -47.38373435464425,
+ -22.221602041710945
+ ],
+ [
+ -47.38379225349483,
+ -22.221608064040627
+ ],
+ [
+ -47.38385219150451,
+ -22.221615938055727
+ ],
+ [
+ -47.38390228362831,
+ -22.221623911528386
+ ],
+ [
+ -47.383948733758274,
+ -22.221631809840297
+ ],
+ [
+ -47.38399027262847,
+ -22.22163979971795
+ ],
+ [
+ -47.384017488117905,
+ -22.22164509413228
+ ],
+ [
+ -47.38404288803308,
+ -22.221649995623896
+ ],
+ [
+ -47.38407695429417,
+ -22.221656598517
+ ],
+ [
+ -47.38411357022127,
+ -22.22166404115072
+ ],
+ [
+ -47.38416177179336,
+ -22.221674131528538
+ ],
+ [
+ -47.38420593047117,
+ -22.22168471921708
+ ],
+ [
+ -47.384252495644525,
+ -22.22169592178845
+ ],
+ [
+ -47.3842872203137,
+ -22.22170546266722
+ ],
+ [
+ -47.384309427605785,
+ -22.221711098803574
+ ],
+ [
+ -47.384311118678255,
+ -22.22171155051426
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "79",
+ "Name": "Curvas",
+ "Length": 93.77328632538143,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "79",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38338472750295,
+ -22.22157303255897
+ ],
+ [
+ -47.38347594112455,
+ -22.221573001731084
+ ],
+ [
+ -47.3835749178716,
+ -22.221575869385564
+ ],
+ [
+ -47.383669953650255,
+ -22.221582734747514
+ ],
+ [
+ -47.38370375063408,
+ -22.221585940044783
+ ],
+ [
+ -47.38373579976855,
+ -22.2215885664101
+ ],
+ [
+ -47.38379407719393,
+ -22.2215946281176
+ ],
+ [
+ -47.38385443336616,
+ -22.22160255706693
+ ],
+ [
+ -47.38390481556579,
+ -22.22161057671317
+ ],
+ [
+ -47.383951511769865,
+ -22.221618516867547
+ ],
+ [
+ -47.38399323110205,
+ -22.221626541456878
+ ],
+ [
+ -47.38402045117941,
+ -22.221631836763958
+ ],
+ [
+ -47.384045839628605,
+ -22.221636736043177
+ ],
+ [
+ -47.38407998759317,
+ -22.221643354769125
+ ],
+ [
+ -47.38411671639948,
+ -22.22165082034723
+ ],
+ [
+ -47.38416518121258,
+ -22.22166096583153
+ ],
+ [
+ -47.3842095573794,
+ -22.22167160566663
+ ],
+ [
+ -47.38425637428986,
+ -22.221682868800006
+ ],
+ [
+ -47.38428351849897,
+ -22.221690326878708
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "80",
+ "Name": "Curvas",
+ "Length": 89.8662516659199,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "80",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3833931709164,
+ -22.221559488325692
+ ],
+ [
+ -47.383476164715525,
+ -22.22155946027459
+ ],
+ [
+ -47.383575706989575,
+ -22.22156234431492
+ ],
+ [
+ -47.38367125326253,
+ -22.221569246555713
+ ],
+ [
+ -47.383705125174295,
+ -22.221572458959436
+ ],
+ [
+ -47.38373724489271,
+ -22.22157509110922
+ ],
+ [
+ -47.383795900892835,
+ -22.22158119219455
+ ],
+ [
+ -47.38385667522753,
+ -22.22158917607812
+ ],
+ [
+ -47.38390734750292,
+ -22.22159724189797
+ ],
+ [
+ -47.38395428978105,
+ -22.221605223894798
+ ],
+ [
+ -47.38399618957517,
+ -22.221613283195804
+ ],
+ [
+ -47.384023414240474,
+ -22.221618579395635
+ ],
+ [
+ -47.38404879122371,
+ -22.221623476462426
+ ],
+ [
+ -47.38408302070488,
+ -22.221630110983277
+ ],
+ [
+ -47.38411986257724,
+ -22.22163759954374
+ ],
+ [
+ -47.384168590631305,
+ -22.221647800134498
+ ],
+ [
+ -47.38421318428709,
+ -22.22165849211614
+ ],
+ [
+ -47.38425529330772,
+ -22.221668622629387
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "81",
+ "Name": "Curvas",
+ "Length": 86.20121578727829,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "81",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38340134624875,
+ -22.221545944182747
+ ],
+ [
+ -47.383476388306576,
+ -22.22154591881808
+ ],
+ [
+ -47.38357649610752,
+ -22.22154881924425
+ ],
+ [
+ -47.383672552874685,
+ -22.221555758363916
+ ],
+ [
+ -47.383706499714336,
+ -22.221558977874103
+ ],
+ [
+ -47.3837386900167,
+ -22.221561615808344
+ ],
+ [
+ -47.38379772459151,
+ -22.22156775627149
+ ],
+ [
+ -47.38385891708857,
+ -22.221575795089304
+ ],
+ [
+ -47.383909879439656,
+ -22.22158390708273
+ ],
+ [
+ -47.383957067791826,
+ -22.221591930922
+ ],
+ [
+ -47.383999148047835,
+ -22.221600024934705
+ ],
+ [
+ -47.38402637730107,
+ -22.221605322027262
+ ],
+ [
+ -47.384051742818386,
+ -22.221610216881672
+ ],
+ [
+ -47.384086054004875,
+ -22.221616867235763
+ ],
+ [
+ -47.38412300875452,
+ -22.221624378740213
+ ],
+ [
+ -47.384172000049496,
+ -22.221634634437418
+ ],
+ [
+ -47.3842168111942,
+ -22.221645378565587
+ ],
+ [
+ -47.384228823972926,
+ -22.221648268576278
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "82",
+ "Name": "Curvas",
+ "Length": 82.69697028916926,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "82",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38340799225711,
+ -22.221532400556477
+ ],
+ [
+ -47.38347661189773,
+ -22.221532377361548
+ ],
+ [
+ -47.38357728522546,
+ -22.221535294173577
+ ],
+ [
+ -47.383673852486716,
+ -22.221542270172087
+ ],
+ [
+ -47.38370787425428,
+ -22.22154549678874
+ ],
+ [
+ -47.38374013514057,
+ -22.22154814050745
+ ],
+ [
+ -47.38379954828997,
+ -22.221554320348414
+ ],
+ [
+ -47.38386115894933,
+ -22.22156241410048
+ ],
+ [
+ -47.383912411376066,
+ -22.221570572267495
+ ],
+ [
+ -47.38395984580221,
+ -22.221578637949204
+ ],
+ [
+ -47.38400210652008,
+ -22.221586766673585
+ ],
+ [
+ -47.38402934036126,
+ -22.22159206465889
+ ],
+ [
+ -47.384054694412626,
+ -22.22159695730087
+ ],
+ [
+ -47.38408908711379,
+ -22.22160362344948
+ ],
+ [
+ -47.38412615493134,
+ -22.221611157936668
+ ],
+ [
+ -47.384175409467176,
+ -22.221621468740317
+ ],
+ [
+ -47.38420238244733,
+ -22.221627935907534
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "83",
+ "Name": "Curvas",
+ "Length": 77.47974879268027,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "83",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38341494264741,
+ -22.221518856827128
+ ],
+ [
+ -47.38347683548894,
+ -22.221518835905023
+ ],
+ [
+ -47.383578074343376,
+ -22.221521769102882
+ ],
+ [
+ -47.38367515209862,
+ -22.221528781980265
+ ],
+ [
+ -47.383709248794084,
+ -22.22153201570338
+ ],
+ [
+ -47.38374158026428,
+ -22.22153466520657
+ ],
+ [
+ -47.383801371988206,
+ -22.221540884425355
+ ],
+ [
+ -47.383863400809794,
+ -22.22154903311161
+ ],
+ [
+ -47.383914943312114,
+ -22.221557237452217
+ ],
+ [
+ -47.38396262381219,
+ -22.221565344976373
+ ],
+ [
+ -47.384005064991904,
+ -22.221573508412412
+ ],
+ [
+ -47.384032303421016,
+ -22.221578807290477
+ ],
+ [
+ -47.384057646006404,
+ -22.22158369772004
+ ],
+ [
+ -47.38409212041478,
+ -22.221590379702295
+ ],
+ [
+ -47.38412930110768,
+ -22.22159793713306
+ ],
+ [
+ -47.384159982199414,
+ -22.221604359825292
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "84",
+ "Name": "Curvas",
+ "Length": 74.22254177831378,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "84",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383421776300075,
+ -22.221505313136984
+ ],
+ [
+ -47.38347705908027,
+ -22.221505294448455
+ ],
+ [
+ -47.38357886346128,
+ -22.221508244032186
+ ],
+ [
+ -47.383676451710414,
+ -22.221515293788418
+ ],
+ [
+ -47.38371062333376,
+ -22.221518534617996
+ ],
+ [
+ -47.38374302538785,
+ -22.22152118990566
+ ],
+ [
+ -47.38380319568623,
+ -22.221527448502258
+ ],
+ [
+ -47.38386564266995,
+ -22.221535652122746
+ ],
+ [
+ -47.38391747524782,
+ -22.22154390263695
+ ],
+ [
+ -47.38396540182177,
+ -22.221552052003542
+ ],
+ [
+ -47.384008023463274,
+ -22.22156025015125
+ ],
+ [
+ -47.38403526648033,
+ -22.22156554992205
+ ],
+ [
+ -47.38406059759976,
+ -22.22157043813919
+ ],
+ [
+ -47.38409515352093,
+ -22.221577135915567
+ ],
+ [
+ -47.38413244728355,
+ -22.22158471632945
+ ],
+ [
+ -47.38413583637138,
+ -22.221585425791453
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "85",
+ "Name": "Curvas",
+ "Length": 70.99027692795134,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "85",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3834287195387,
+ -22.221491769409553
+ ],
+ [
+ -47.38347728267169,
+ -22.221491752991867
+ ],
+ [
+ -47.38357965257916,
+ -22.22149471896147
+ ],
+ [
+ -47.38367775132207,
+ -22.22150180559656
+ ],
+ [
+ -47.38371199787329,
+ -22.221505053532628
+ ],
+ [
+ -47.38374447051127,
+ -22.221507714604744
+ ],
+ [
+ -47.38380501938402,
+ -22.22151401257915
+ ],
+ [
+ -47.38386788452983,
+ -22.221522271133875
+ ],
+ [
+ -47.38392000718317,
+ -22.22153056782165
+ ],
+ [
+ -47.383968179830944,
+ -22.221538759030672
+ ],
+ [
+ -47.38401098193421,
+ -22.22154699189005
+ ],
+ [
+ -47.3840382295392,
+ -22.221552292553607
+ ],
+ [
+ -47.384063549192675,
+ -22.22155717855835
+ ],
+ [
+ -47.38409818682288,
+ -22.221563892168707
+ ],
+ [
+ -47.38411200093067,
+ -22.221566700051834
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "86",
+ "Name": "Curvas",
+ "Length": 67.49328111588149,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "86",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38343566379275,
+ -22.22147822568156
+ ],
+ [
+ -47.3834775062632,
+ -22.221478211535267
+ ],
+ [
+ -47.38358044169703,
+ -22.22148119389075
+ ],
+ [
+ -47.38367905093363,
+ -22.2214883174047
+ ],
+ [
+ -47.38371337241271,
+ -22.221491572447224
+ ],
+ [
+ -47.38374591563454,
+ -22.221494239303812
+ ],
+ [
+ -47.3838068430816,
+ -22.221500576656048
+ ],
+ [
+ -47.38387012638939,
+ -22.22150889014498
+ ],
+ [
+ -47.38392253911816,
+ -22.22151723300634
+ ],
+ [
+ -47.38397095783972,
+ -22.22152546605779
+ ],
+ [
+ -47.38401394040472,
+ -22.221533733628835
+ ],
+ [
+ -47.38404119259764,
+ -22.22153903518514
+ ],
+ [
+ -47.384066500785174,
+ -22.221543918977456
+ ],
+ [
+ -47.384085617228195,
+ -22.221547624203613
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "87",
+ "Name": "Curvas",
+ "Length": 64.3036628482814,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "87",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38344182741254,
+ -22.221464682217295
+ ],
+ [
+ -47.38347772985477,
+ -22.221464670078657
+ ],
+ [
+ -47.38358123081485,
+ -22.221467668819997
+ ],
+ [
+ -47.383680350545056,
+ -22.221474829212866
+ ],
+ [
+ -47.38371474695197,
+ -22.22147809136183
+ ],
+ [
+ -47.38374736075767,
+ -22.221480764002898
+ ],
+ [
+ -47.38380866677895,
+ -22.221487140732933
+ ],
+ [
+ -47.383872368248625,
+ -22.22149550915608
+ ],
+ [
+ -47.38392507105281,
+ -22.221503898191
+ ],
+ [
+ -47.38397373584811,
+ -22.22151217308489
+ ],
+ [
+ -47.38401689887478,
+ -22.22152047536757
+ ],
+ [
+ -47.38404415565564,
+ -22.22152577781661
+ ],
+ [
+ -47.38406136178372,
+ -22.22152909813182
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "88",
+ "Name": "Curvas",
+ "Length": 61.22329272413879,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "88",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38344772391415,
+ -22.221451138843122
+ ],
+ [
+ -47.38347795344645,
+ -22.22145112862202
+ ],
+ [
+ -47.383582019932675,
+ -22.221454143749256
+ ],
+ [
+ -47.383681650156376,
+ -22.221461341020984
+ ],
+ [
+ -47.38371612149112,
+ -22.221464610276417
+ ],
+ [
+ -47.38374880588065,
+ -22.221467288701945
+ ],
+ [
+ -47.383810490476094,
+ -22.221473704809817
+ ],
+ [
+ -47.38387461010759,
+ -22.221482128167164
+ ],
+ [
+ -47.383927602987086,
+ -22.221490563375664
+ ],
+ [
+ -47.38397651385609,
+ -22.22149888011197
+ ],
+ [
+ -47.38401985734441,
+ -22.221507217106296
+ ],
+ [
+ -47.384037883441344,
+ -22.221510723847057
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "89",
+ "Name": "Curvas",
+ "Length": 57.4707792376572,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "89",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383455596073546,
+ -22.22143693289692
+ ],
+ [
+ -47.38358280905047,
+ -22.22144061867851
+ ],
+ [
+ -47.38368294976758,
+ -22.221447852829083
+ ],
+ [
+ -47.383717496030116,
+ -22.221451129190992
+ ],
+ [
+ -47.38375025100347,
+ -22.22145381340098
+ ],
+ [
+ -47.38381231417301,
+ -22.221460268886688
+ ],
+ [
+ -47.383876851966235,
+ -22.22146874717822
+ ],
+ [
+ -47.38393013492099,
+ -22.221477228560268
+ ],
+ [
+ -47.383979291863646,
+ -22.221485587139
+ ],
+ [
+ -47.384009937326354,
+ -22.22149148170518
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "90",
+ "Name": "Curvas",
+ "Length": 54.04916906670863,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "90",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38346299319667,
+ -22.221423599283703
+ ],
+ [
+ -47.38358359816826,
+ -22.22142709360775
+ ],
+ [
+ -47.38368424937867,
+ -22.221434364637187
+ ],
+ [
+ -47.383718870569,
+ -22.221437648105557
+ ],
+ [
+ -47.38375169612617,
+ -22.22144033810002
+ ],
+ [
+ -47.383814137869706,
+ -22.221446832963533
+ ],
+ [
+ -47.3838790938246,
+ -22.22145536618928
+ ],
+ [
+ -47.383932666854555,
+ -22.221463893744897
+ ],
+ [
+ -47.383982069870825,
+ -22.22147229416604
+ ],
+ [
+ -47.3839846792538,
+ -22.22147279607334
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "91",
+ "Name": "Curvas",
+ "Length": 50.692867072688856,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "91",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383470158440545,
+ -22.22141025895198
+ ],
+ [
+ -47.383584387286,
+ -22.22141356853695
+ ],
+ [
+ -47.383685548989625,
+ -22.22142087644528
+ ],
+ [
+ -47.383720245107725,
+ -22.221424167020135
+ ],
+ [
+ -47.3837531412487,
+ -22.221426862799053
+ ],
+ [
+ -47.383815961566185,
+ -22.22143339704038
+ ],
+ [
+ -47.383881335682666,
+ -22.221441985200304
+ ],
+ [
+ -47.38393519878776,
+ -22.22145055892952
+ ],
+ [
+ -47.38395970127056,
+ -22.22145472529827
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "92",
+ "Name": "Curvas",
+ "Length": 47.326857963576096,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "92",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38347840097634,
+ -22.221396949832737
+ ],
+ [
+ -47.38358517640374,
+ -22.22140004346616
+ ],
+ [
+ -47.383686848600476,
+ -22.221407388253365
+ ],
+ [
+ -47.38372161964634,
+ -22.221410685934686
+ ],
+ [
+ -47.3837545863711,
+ -22.221413387498067
+ ],
+ [
+ -47.383817785262444,
+ -22.221419961117203
+ ],
+ [
+ -47.38388357754044,
+ -22.22142860421134
+ ],
+ [
+ -47.38393567459584,
+ -22.221436896827765
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "93",
+ "Name": "Curvas",
+ "Length": 44.286170793215526,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "93",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38348510778163,
+ -22.221383596218136
+ ],
+ [
+ -47.38358596552146,
+ -22.221386518395366
+ ],
+ [
+ -47.383688148211206,
+ -22.221393900061482
+ ],
+ [
+ -47.38372299418481,
+ -22.221397204849232
+ ],
+ [
+ -47.38375603149335,
+ -22.2213999121971
+ ],
+ [
+ -47.38381960895849,
+ -22.221406525194034
+ ],
+ [
+ -47.383885819397875,
+ -22.22141522322236
+ ],
+ [
+ -47.3839131987663,
+ -22.2214195813691
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "94",
+ "Name": "Curvas",
+ "Length": 41.3036311806297,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "94",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383492868593756,
+ -22.221370273141375
+ ],
+ [
+ -47.38358675463917,
+ -22.22137299332456
+ ],
+ [
+ -47.38368944782181,
+ -22.22138041186955
+ ],
+ [
+ -47.38372436872315,
+ -22.22138372376376
+ ],
+ [
+ -47.38375747661546,
+ -22.221386436896097
+ ],
+ [
+ -47.383821432654315,
+ -22.22139308927084
+ ],
+ [
+ -47.38388806125504,
+ -22.22140184223336
+ ],
+ [
+ -47.38389231893201,
+ -22.221402519954694
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "105",
+ "Name": "Curvas",
+ "Length": 189.46774339776024,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "105",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38269368702304,
+ -22.222700299906567
+ ],
+ [
+ -47.382799427915636,
+ -22.222701985648225
+ ],
+ [
+ -47.38287338206308,
+ -22.222703874119738
+ ],
+ [
+ -47.38292482559564,
+ -22.222704249703142
+ ],
+ [
+ -47.38297812146236,
+ -22.222703023862774
+ ],
+ [
+ -47.38303173185513,
+ -22.222700507055755
+ ],
+ [
+ -47.38308375367506,
+ -22.22269780377084
+ ],
+ [
+ -47.38313640550686,
+ -22.222695169518545
+ ],
+ [
+ -47.38319014873368,
+ -22.222692261563918
+ ],
+ [
+ -47.38324397822093,
+ -22.222689380222523
+ ],
+ [
+ -47.38329765622992,
+ -22.222686400874075
+ ],
+ [
+ -47.38335122899766,
+ -22.2226842606829
+ ],
+ [
+ -47.38340486195777,
+ -22.22268341897772
+ ],
+ [
+ -47.38345760696961,
+ -22.222683401105456
+ ],
+ [
+ -47.383510210129884,
+ -22.222684925142122
+ ],
+ [
+ -47.38356338504081,
+ -22.222688766445415
+ ],
+ [
+ -47.38359103788468,
+ -22.222691389012613
+ ],
+ [
+ -47.383617299088684,
+ -22.222693541051463
+ ],
+ [
+ -47.38364453313703,
+ -22.222696373773292
+ ],
+ [
+ -47.38367059971458,
+ -22.222699798103715
+ ],
+ [
+ -47.38369719551399,
+ -22.22270403150233
+ ],
+ [
+ -47.38372371348602,
+ -22.222708540562035
+ ],
+ [
+ -47.38375063482429,
+ -22.222713718782177
+ ],
+ [
+ -47.38377747868762,
+ -22.222718940883617
+ ],
+ [
+ -47.38380380735294,
+ -22.22272402158138
+ ],
+ [
+ -47.383831263155464,
+ -22.22272934354583
+ ],
+ [
+ -47.383858728222265,
+ -22.22273492613744
+ ],
+ [
+ -47.38388560710993,
+ -22.222740552870004
+ ],
+ [
+ -47.38391214904607,
+ -22.222746916669145
+ ],
+ [
+ -47.3839383280019,
+ -22.22275321496807
+ ],
+ [
+ -47.38396556352244,
+ -22.22276069812506
+ ],
+ [
+ -47.38399207176891,
+ -22.2227674258152
+ ],
+ [
+ -47.38401940635897,
+ -22.22277472728127
+ ],
+ [
+ -47.38404721976521,
+ -22.222782750381874
+ ],
+ [
+ -47.38407468575093,
+ -22.222789888833127
+ ],
+ [
+ -47.38410021219367,
+ -22.222797484899854
+ ],
+ [
+ -47.38412732577423,
+ -22.22280582530985
+ ],
+ [
+ -47.38415452991521,
+ -22.22281416581189
+ ],
+ [
+ -47.38418046706352,
+ -22.222822251142578
+ ],
+ [
+ -47.38420800372061,
+ -22.22283036870624
+ ],
+ [
+ -47.384233136349486,
+ -22.222837858943723
+ ],
+ [
+ -47.38425963367161,
+ -22.222846743383194
+ ],
+ [
+ -47.38428795879161,
+ -22.222855620850854
+ ],
+ [
+ -47.38431282895768,
+ -22.222862828209816
+ ],
+ [
+ -47.3843407262105,
+ -22.22287177498576
+ ],
+ [
+ -47.384365948479704,
+ -22.22287890983543
+ ],
+ [
+ -47.38439147783572,
+ -22.22288696230605
+ ],
+ [
+ -47.38441598577135,
+ -22.222894270928098
+ ],
+ [
+ -47.38444072538751,
+ -22.222902977947317
+ ],
+ [
+ -47.384463362120314,
+ -22.22290976664777
+ ],
+ [
+ -47.384482511917575,
+ -22.222916477453406
+ ],
+ [
+ -47.384497552236446,
+ -22.222921686651944
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "106",
+ "Name": "Curvas",
+ "Length": 189.74951657925303,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "106",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38270125622619,
+ -22.222686877208815
+ ],
+ [
+ -47.38279975178752,
+ -22.222688447442604
+ ],
+ [
+ -47.38287363847597,
+ -22.222690334192176
+ ],
+ [
+ -47.38292470299547,
+ -22.222690707008894
+ ],
+ [
+ -47.3829775755821,
+ -22.222689490904685
+ ],
+ [
+ -47.38303096041773,
+ -22.22268698468715
+ ],
+ [
+ -47.38308295824302,
+ -22.222684282649535
+ ],
+ [
+ -47.383135593408774,
+ -22.222681649231525
+ ],
+ [
+ -47.383189304944864,
+ -22.222678742992073
+ ],
+ [
+ -47.38324312810449,
+ -22.22267586198722
+ ],
+ [
+ -47.383296911709294,
+ -22.222672876778184
+ ],
+ [
+ -47.38335079463665,
+ -22.222670724196814
+ ],
+ [
+ -47.383404736746094,
+ -22.222669877640367
+ ],
+ [
+ -47.38345783055325,
+ -22.22266985965036
+ ],
+ [
+ -47.383510999249495,
+ -22.22267140007237
+ ],
+ [
+ -47.3835646846628,
+ -22.222675278254332
+ ],
+ [
+ -47.383592412435796,
+ -22.222677907927984
+ ],
+ [
+ -47.38361874422487,
+ -22.2226800657513
+ ],
+ [
+ -47.38364635685394,
+ -22.222682937851083
+ ],
+ [
+ -47.38367284160053,
+ -22.222686417116012
+ ],
+ [
+ -47.38369972748022,
+ -22.222690696688513
+ ],
+ [
+ -47.38372649153015,
+ -22.22269524759102
+ ],
+ [
+ -47.38375359333312,
+ -22.22270046052311
+ ],
+ [
+ -47.38378044178446,
+ -22.22270568351731
+ ],
+ [
+ -47.383806758983646,
+ -22.222710762002627
+ ],
+ [
+ -47.38383429640085,
+ -22.222716099781778
+ ],
+ [
+ -47.38386187443861,
+ -22.222721705336273
+ ],
+ [
+ -47.38388901657126,
+ -22.222727387175823
+ ],
+ [
+ -47.383915775999625,
+ -22.222733803121976
+ ],
+ [
+ -47.38394220664188,
+ -22.22274016196858
+ ],
+ [
+ -47.38396953461882,
+ -22.222747670528864
+ ],
+ [
+ -47.3839959897667,
+ -22.222754384742977
+ ],
+ [
+ -47.38402356425411,
+ -22.222761750289298
+ ],
+ [
+ -47.38405132783117,
+ -22.222769759016323
+ ],
+ [
+ -47.38407885622263,
+ -22.222776913687056
+ ],
+ [
+ -47.384104707421635,
+ -22.222784606393784
+ ],
+ [
+ -47.38413188830333,
+ -22.22279296750646
+ ],
+ [
+ -47.38415911312399,
+ -22.222801314341883
+ ],
+ [
+ -47.38418497114357,
+ -22.22280937500611
+ ],
+ [
+ -47.38421241567112,
+ -22.22281746541096
+ ],
+ [
+ -47.38423781864851,
+ -22.222825036220126
+ ],
+ [
+ -47.384264418041795,
+ -22.222833954883807
+ ],
+ [
+ -47.38429244051375,
+ -22.222842737497732
+ ],
+ [
+ -47.3843173594134,
+ -22.22284995897978
+ ],
+ [
+ -47.38434520996509,
+ -22.222858890778678
+ ],
+ [
+ -47.38437039685994,
+ -22.222866015621843
+ ],
+ [
+ -47.384396029606904,
+ -22.222874100704214
+ ],
+ [
+ -47.38442077836831,
+ -22.222881481144114
+ ],
+ [
+ -47.384445529138006,
+ -22.222890192088986
+ ],
+ [
+ -47.38446815604435,
+ -22.222896977842616
+ ],
+ [
+ -47.38448760892276,
+ -22.222903794859317
+ ],
+ [
+ -47.38450384973833,
+ -22.22290941984864
+ ],
+ [
+ -47.38450751733007,
+ -22.222910396762252
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "107",
+ "Name": "Curvas",
+ "Length": 188.92730502068767,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "107",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3826785486127,
+ -22.222727145301352
+ ],
+ [
+ -47.38279878017207,
+ -22.222729062059443
+ ],
+ [
+ -47.38287286923756,
+ -22.22273095397481
+ ],
+ [
+ -47.382925070796446,
+ -22.22273133509159
+ ],
+ [
+ -47.38297921322361,
+ -22.22273008977886
+ ],
+ [
+ -47.383033274730785,
+ -22.222727551792858
+ ],
+ [
+ -47.38308534454003,
+ -22.222724846013346
+ ],
+ [
+ -47.383138029703936,
+ -22.22272221009247
+ ],
+ [
+ -47.38319183631219,
+ -22.222719298707485
+ ],
+ [
+ -47.383245678455864,
+ -22.22271641669297
+ ],
+ [
+ -47.38329914527202,
+ -22.222713449065722
+ ],
+ [
+ -47.38335209772035,
+ -22.22271133365498
+ ],
+ [
+ -47.3834051123816,
+ -22.22271050165234
+ ],
+ [
+ -47.383457159802624,
+ -22.222710484015586
+ ],
+ [
+ -47.3835086318906,
+ -22.222711975281605
+ ],
+ [
+ -47.383560785796455,
+ -22.22271574282756
+ ],
+ [
+ -47.38358828878204,
+ -22.222718351181832
+ ],
+ [
+ -47.38361440881587,
+ -22.222720491651717
+ ],
+ [
+ -47.38364088570255,
+ -22.22272324561773
+ ],
+ [
+ -47.38366611594179,
+ -22.222726560079124
+ ],
+ [
+ -47.38369213158046,
+ -22.22273070112988
+ ],
+ [
+ -47.38371815739658,
+ -22.22273512650404
+ ],
+ [
+ -47.38374471780531,
+ -22.222740235300254
+ ],
+ [
+ -47.38377155249261,
+ -22.22274545561618
+ ],
+ [
+ -47.38379790409023,
+ -22.222750540738826
+ ],
+ [
+ -47.383825196667686,
+ -22.22275583107472
+ ],
+ [
+ -47.38385243578816,
+ -22.222761367739697
+ ],
+ [
+ -47.38387878818573,
+ -22.222766884258288
+ ],
+ [
+ -47.3839048951373,
+ -22.22277314376336
+ ],
+ [
+ -47.383930570723926,
+ -22.222779320967952
+ ],
+ [
+ -47.38395762132784,
+ -22.222786753317287
+ ],
+ [
+ -47.38398423577151,
+ -22.222793507959516
+ ],
+ [
+ -47.38401109056675,
+ -22.222800681265056
+ ],
+ [
+ -47.38403900363133,
+ -22.222808733112803
+ ],
+ [
+ -47.38406634480555,
+ -22.222815839125072
+ ],
+ [
+ -47.38409122173563,
+ -22.222823241911797
+ ],
+ [
+ -47.3841182007139,
+ -22.222831540916406
+ ],
+ [
+ -47.38414536350059,
+ -22.222839868753315
+ ],
+ [
+ -47.384171458901285,
+ -22.222848003415294
+ ],
+ [
+ -47.384199179817486,
+ -22.22285617529659
+ ],
+ [
+ -47.38422377174924,
+ -22.222863504390702
+ ],
+ [
+ -47.38425006492896,
+ -22.222872320381708
+ ],
+ [
+ -47.38427899534518,
+ -22.222881387556857
+ ],
+ [
+ -47.38430376804411,
+ -22.22288856666964
+ ],
+ [
+ -47.38433175869922,
+ -22.222897543399693
+ ],
+ [
+ -47.38435705171715,
+ -22.222904698262422
+ ],
+ [
+ -47.384382374291185,
+ -22.222912685509467
+ ],
+ [
+ -47.384406400575116,
+ -22.222919850495774
+ ],
+ [
+ -47.384431117884226,
+ -22.222928549663727
+ ],
+ [
+ -47.38445377426996,
+ -22.222935344257873
+ ],
+ [
+ -47.38447231790477,
+ -22.222941842641227
+ ],
+ [
+ -47.3844780186567,
+ -22.222943817090794
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "108",
+ "Name": "Curvas",
+ "Length": 189.19752421029523,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "108",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382686117818544,
+ -22.222713722604098
+ ],
+ [
+ -47.38279910404382,
+ -22.222715523853847
+ ],
+ [
+ -47.382873125650285,
+ -22.222717414047285
+ ],
+ [
+ -47.38292494819596,
+ -22.222717792397383
+ ],
+ [
+ -47.382978667342876,
+ -22.22271655682084
+ ],
+ [
+ -47.383032503292824,
+ -22.22271402942433
+ ],
+ [
+ -47.383084549107416,
+ -22.222711324892128
+ ],
+ [
+ -47.38313721760527,
+ -22.222708689805525
+ ],
+ [
+ -47.38319099252279,
+ -22.222705780135726
+ ],
+ [
+ -47.38324482833959,
+ -22.22270289845768
+ ],
+ [
+ -47.38329840075084,
+ -22.222699924969902
+ ],
+ [
+ -47.38335166335891,
+ -22.22269779716896
+ ],
+ [
+ -47.383404987169605,
+ -22.222696960315034
+ ],
+ [
+ -47.38345738338608,
+ -22.222696942560518
+ ],
+ [
+ -47.38350942101025,
+ -22.222698450211876
+ ],
+ [
+ -47.383562085418696,
+ -22.222702254636495
+ ],
+ [
+ -47.383589663333424,
+ -22.22270487009723
+ ],
+ [
+ -47.38361585395236,
+ -22.222707016351578
+ ],
+ [
+ -47.38364270941992,
+ -22.222709809695537
+ ],
+ [
+ -47.38366835782834,
+ -22.22271317909142
+ ],
+ [
+ -47.3836946635474,
+ -22.22271736631612
+ ],
+ [
+ -47.3837209354415,
+ -22.22272183353307
+ ],
+ [
+ -47.38374767631502,
+ -22.22272697704123
+ ],
+ [
+ -47.38377451559033,
+ -22.222732198249922
+ ],
+ [
+ -47.38380085572181,
+ -22.22273728116011
+ ],
+ [
+ -47.38382822991692,
+ -22.222742587311323
+ ],
+ [
+ -47.38385558200545,
+ -22.22274814693859
+ ],
+ [
+ -47.38388219764809,
+ -22.222753718564178
+ ],
+ [
+ -47.383908522091964,
+ -22.222760030216268
+ ],
+ [
+ -47.38393444936777,
+ -22.2227662679693
+ ],
+ [
+ -47.38396159242545,
+ -22.222773725721208
+ ],
+ [
+ -47.38398815377053,
+ -22.22278046688739
+ ],
+ [
+ -47.3840152484632,
+ -22.2227877042732
+ ],
+ [
+ -47.384043111698595,
+ -22.222795741747365
+ ],
+ [
+ -47.38407051527857,
+ -22.222802863979133
+ ],
+ [
+ -47.384095716965014,
+ -22.222810363405863
+ ],
+ [
+ -47.38412276324444,
+ -22.22281868311316
+ ],
+ [
+ -47.384149946714274,
+ -22.222827017284516
+ ],
+ [
+ -47.38417596298276,
+ -22.222835127278962
+ ],
+ [
+ -47.384203591769406,
+ -22.222843272001445
+ ],
+ [
+ -47.38422845404975,
+ -22.22285068166726
+ ],
+ [
+ -47.38425484930068,
+ -22.222859531882488
+ ],
+ [
+ -47.384283477068756,
+ -22.222868504203873
+ ],
+ [
+ -47.38430829850127,
+ -22.22287569743977
+ ],
+ [
+ -47.38433624245523,
+ -22.222884659192758
+ ],
+ [
+ -47.38436150009879,
+ -22.222891804048956
+ ],
+ [
+ -47.38438692606382,
+ -22.222899823907778
+ ],
+ [
+ -47.38441119317362,
+ -22.222907060711957
+ ],
+ [
+ -47.38443592163625,
+ -22.222915763805563
+ ],
+ [
+ -47.38445856819551,
+ -22.222922555452865
+ ],
+ [
+ -47.38447741491159,
+ -22.22292916004735
+ ],
+ [
+ -47.38448778544733,
+ -22.2229327518716
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "109",
+ "Name": "Curvas",
+ "Length": 188.3873877937044,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "109",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382663410196976,
+ -22.222753990695136
+ ],
+ [
+ -47.38279813242881,
+ -22.222756138470594
+ ],
+ [
+ -47.38287235641236,
+ -22.222758033829837
+ ],
+ [
+ -47.3829253159979,
+ -22.222758420479913
+ ],
+ [
+ -47.38298030498579,
+ -22.222757155694808
+ ],
+ [
+ -47.38303481760755,
+ -22.222754596529782
+ ],
+ [
+ -47.3830869354061,
+ -22.222751888255697
+ ],
+ [
+ -47.383139653902134,
+ -22.222749250666244
+ ],
+ [
+ -47.38319352389188,
+ -22.22274633585091
+ ],
+ [
+ -47.383247378691976,
+ -22.22274345316324
+ ],
+ [
+ -47.383300634315205,
+ -22.22274049725723
+ ],
+ [
+ -47.383352966443894,
+ -22.22273840662693
+ ],
+ [
+ -47.38340536280606,
+ -22.22273758432684
+ ],
+ [
+ -47.38345671263596,
+ -22.222737566925655
+ ],
+ [
+ -47.383507053651265,
+ -22.222739025421035
+ ],
+ [
+ -47.383558186551646,
+ -22.222742719209645
+ ],
+ [
+ -47.38358553967888,
+ -22.222745313350984
+ ],
+ [
+ -47.38361151854249,
+ -22.22274744225196
+ ],
+ [
+ -47.3836372382672,
+ -22.22275011746209
+ ],
+ [
+ -47.3836616321678,
+ -22.222753322054423
+ ],
+ [
+ -47.3836870676455,
+ -22.222757370757382
+ ],
+ [
+ -47.38371260130554,
+ -22.222761712445962
+ ],
+ [
+ -47.3837388007846,
+ -22.22276675181822
+ ],
+ [
+ -47.383765626295876,
+ -22.222771970348653
+ ],
+ [
+ -47.38379200082578,
+ -22.222777059896156
+ ],
+ [
+ -47.383819130178125,
+ -22.222782318603496
+ ],
+ [
+ -47.38384614335217,
+ -22.22278780934183
+ ],
+ [
+ -47.38387196925947,
+ -22.22279321564639
+ ],
+ [
+ -47.38389764122628,
+ -22.222799370857395
+ ],
+ [
+ -47.38392281344347,
+ -22.222805426967614
+ ],
+ [
+ -47.38394967913074,
+ -22.22281280850933
+ ],
+ [
+ -47.38397639977163,
+ -22.22281959010364
+ ],
+ [
+ -47.38400277477191,
+ -22.22282663524859
+ ],
+ [
+ -47.384030787494844,
+ -22.222834715843543
+ ],
+ [
+ -47.38405800385756,
+ -22.22284178941676
+ ],
+ [
+ -47.38408223127469,
+ -22.222848998923446
+ ],
+ [
+ -47.384109075650606,
+ -22.222857256522676
+ ],
+ [
+ -47.38413619708306,
+ -22.222865571694435
+ ],
+ [
+ -47.38416245073619,
+ -22.22287375568775
+ ],
+ [
+ -47.38419035591155,
+ -22.22288198188668
+ ],
+ [
+ -47.38421440714597,
+ -22.222889149837336
+ ],
+ [
+ -47.38424049618327,
+ -22.222897897379895
+ ],
+ [
+ -47.38427003189591,
+ -22.222907154262586
+ ],
+ [
+ -47.38429470712762,
+ -22.222914305129162
+ ],
+ [
+ -47.38432279118504,
+ -22.222923311813332
+ ],
+ [
+ -47.38434815495174,
+ -22.222930486689133
+ ],
+ [
+ -47.38437327074375,
+ -22.222938408712626
+ ],
+ [
+ -47.38439681537584,
+ -22.22294543006311
+ ],
+ [
+ -47.384421510377855,
+ -22.222954121379786
+ ],
+ [
+ -47.384444186416516,
+ -22.222960921867653
+ ],
+ [
+ -47.38445849509985,
+ -22.222965936165593
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "110",
+ "Name": "Curvas",
+ "Length": 188.6570858273025,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "110",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38267097940551,
+ -22.222740567998372
+ ],
+ [
+ -47.38279845630042,
+ -22.22274260026503
+ ],
+ [
+ -47.382872612824926,
+ -22.22274449390234
+ ],
+ [
+ -47.38292519339711,
+ -22.222744877785757
+ ],
+ [
+ -47.38297975910459,
+ -22.222743622736854
+ ],
+ [
+ -47.38303404616903,
+ -22.222741074161334
+ ],
+ [
+ -47.38308613997292,
+ -22.222738367134546
+ ],
+ [
+ -47.38313884180289,
+ -22.222735730379373
+ ],
+ [
+ -47.3831926801019,
+ -22.222732817279226
+ ],
+ [
+ -47.38324652857586,
+ -22.222729934928008
+ ],
+ [
+ -47.383299889793484,
+ -22.222726973161482
+ ],
+ [
+ -47.38335253208201,
+ -22.222724870140965
+ ],
+ [
+ -47.383405237593756,
+ -22.222724042989576
+ ],
+ [
+ -47.38345693621924,
+ -22.222724025470626
+ ],
+ [
+ -47.38350784277095,
+ -22.222725500351327
+ ],
+ [
+ -47.383559486174114,
+ -22.222729231018597
+ ],
+ [
+ -47.383586914230534,
+ -22.222731832266398
+ ],
+ [
+ -47.383612963679255,
+ -22.222733966951836
+ ],
+ [
+ -47.38363906198498,
+ -22.222736681539917
+ ],
+ [
+ -47.38366387405496,
+ -22.22273994106677
+ ],
+ [
+ -47.383689599613156,
+ -22.22274403594366
+ ],
+ [
+ -47.38371537935127,
+ -22.222748419475025
+ ],
+ [
+ -47.383741759295184,
+ -22.222753493559257
+ ],
+ [
+ -47.38376858939448,
+ -22.222758712982444
+ ],
+ [
+ -47.38379495245824,
+ -22.222763800317505
+ ],
+ [
+ -47.383822163431255,
+ -22.222769074840777
+ ],
+ [
+ -47.383849289570406,
+ -22.222774588540787
+ ],
+ [
+ -47.38387537872286,
+ -22.222780049952355
+ ],
+ [
+ -47.383901268182065,
+ -22.222786257310386
+ ],
+ [
+ -47.3839266920913,
+ -22.222792373969796
+ ],
+ [
+ -47.3839536502296,
+ -22.222799780913345
+ ],
+ [
+ -47.38398031777187,
+ -22.2228065490316
+ ],
+ [
+ -47.384006932669664,
+ -22.22281365825685
+ ],
+ [
+ -47.3840348955634,
+ -22.222821724478198
+ ],
+ [
+ -47.384062174331895,
+ -22.222828814270937
+ ],
+ [
+ -47.384086726505515,
+ -22.222836120417654
+ ],
+ [
+ -47.384113638182605,
+ -22.22284439871958
+ ],
+ [
+ -47.38414078030164,
+ -22.22285272022685
+ ],
+ [
+ -47.38416695481911,
+ -22.222860879551558
+ ],
+ [
+ -47.38419476786486,
+ -22.222869078591664
+ ],
+ [
+ -47.38421908944797,
+ -22.22287632711405
+ ],
+ [
+ -47.384245280556506,
+ -22.22288510888084
+ ],
+ [
+ -47.384274513620916,
+ -22.222894270909755
+ ],
+ [
+ -47.38429923758623,
+ -22.222901435899438
+ ],
+ [
+ -47.38432727494248,
+ -22.222910427606532
+ ],
+ [
+ -47.38435260333478,
+ -22.222917592475806
+ ],
+ [
+ -47.38437782251782,
+ -22.222925547111085
+ ],
+ [
+ -47.38440160797587,
+ -22.222932640279478
+ ],
+ [
+ -47.38442631413143,
+ -22.222941335521792
+ ],
+ [
+ -47.38444898034362,
+ -22.22294813306281
+ ],
+ [
+ -47.38446722089715,
+ -22.222954525235018
+ ],
+ [
+ -47.384468251864554,
+ -22.222954882309537
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "111",
+ "Name": "Curvas",
+ "Length": 187.84828703476575,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "111",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38264827177584,
+ -22.222780836087953
+ ],
+ [
+ -47.38279748468582,
+ -22.22278321488168
+ ],
+ [
+ -47.38287184358749,
+ -22.22278511368477
+ ],
+ [
+ -47.38292556119996,
+ -22.22278550586817
+ ],
+ [
+ -47.382981396748946,
+ -22.22278422161062
+ ],
+ [
+ -47.38303636048545,
+ -22.22278164126657
+ ],
+ [
+ -47.383088526273326,
+ -22.22277893049786
+ ],
+ [
+ -47.3831412781015,
+ -22.22277629123986
+ ],
+ [
+ -47.38319521147277,
+ -22.22277337299416
+ ],
+ [
+ -47.38324907892926,
+ -22.222770489633398
+ ],
+ [
+ -47.38330212335951,
+ -22.22276754544857
+ ],
+ [
+ -47.38335383516831,
+ -22.222765479598756
+ ],
+ [
+ -47.38340561323116,
+ -22.222764667001275
+ ],
+ [
+ -47.38345626546967,
+ -22.222764649835653
+ ],
+ [
+ -47.383505475411845,
+ -22.222766075560433
+ ],
+ [
+ -47.38355558730636,
+ -22.222769695591712
+ ],
+ [
+ -47.38358279057519,
+ -22.222772275520125
+ ],
+ [
+ -47.3836086282685,
+ -22.222774392852156
+ ],
+ [
+ -47.38363359083096,
+ -22.222776989306443
+ ],
+ [
+ -47.38365714839263,
+ -22.22278008402971
+ ],
+ [
+ -47.38368200370914,
+ -22.22278404038481
+ ],
+ [
+ -47.38370704521288,
+ -22.222788298387783
+ ],
+ [
+ -47.38373288376214,
+ -22.222793268336083
+ ],
+ [
+ -47.38375970009739,
+ -22.222798485081007
+ ],
+ [
+ -47.3837860975596,
+ -22.222803579053355
+ ],
+ [
+ -47.38381306368673,
+ -22.22280880613217
+ ],
+ [
+ -47.38383985091431,
+ -22.222814250943866
+ ],
+ [
+ -47.38386515033111,
+ -22.222819547034376
+ ],
+ [
+ -47.38389038731301,
+ -22.22282559795127
+ ],
+ [
+ -47.383915056160546,
+ -22.222831532967053
+ ],
+ [
+ -47.38394173693114,
+ -22.222838863701156
+ ],
+ [
+ -47.38396856376933,
+ -22.222845672247576
+ ],
+ [
+ -47.38399445897443,
+ -22.222852589231927
+ ],
+ [
+ -47.3840225713558,
+ -22.222860698574028
+ ],
+ [
+ -47.38404966290692,
+ -22.222867739708253
+ ],
+ [
+ -47.38407324081092,
+ -22.222874755934832
+ ],
+ [
+ -47.38409995058442,
+ -22.222882972128662
+ ],
+ [
+ -47.384127030662604,
+ -22.222891274635263
+ ],
+ [
+ -47.38415344256821,
+ -22.22289950795991
+ ],
+ [
+ -47.38418153200281,
+ -22.222907788476487
+ ],
+ [
+ -47.384205042539726,
+ -22.222914795283714
+ ],
+ [
+ -47.384230927434494,
+ -22.222923474377744
+ ],
+ [
+ -47.384261068443806,
+ -22.222932920968038
+ ],
+ [
+ -47.38428564620828,
+ -22.22294004358839
+ ],
+ [
+ -47.384313823668045,
+ -22.222949080226677
+ ],
+ [
+ -47.38433925818351,
+ -22.222956275115568
+ ],
+ [
+ -47.38436416719342,
+ -22.222964131915454
+ ],
+ [
+ -47.38438723017347,
+ -22.222971009630157
+ ],
+ [
+ -47.384411902868436,
+ -22.222979693095535
+ ],
+ [
+ -47.38443459856004,
+ -22.222986499477088
+ ],
+ [
+ -47.38443898724882,
+ -22.222988037437936
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "112",
+ "Name": "Curvas",
+ "Length": 188.11783741463861,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "112",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382655840987084,
+ -22.222767413391665
+ ],
+ [
+ -47.382797808557285,
+ -22.222769676676133
+ ],
+ [
+ -47.38287209999988,
+ -22.22277157375731
+ ],
+ [
+ -47.38292543859885,
+ -22.222771963174065
+ ],
+ [
+ -47.38298085086726,
+ -22.22277068865273
+ ],
+ [
+ -47.383035589046365,
+ -22.222768118898205
+ ],
+ [
+ -47.38308773083957,
+ -22.22276540937679
+ ],
+ [
+ -47.383140466001684,
+ -22.22276277095307
+ ],
+ [
+ -47.3831943676822,
+ -22.222759854422552
+ ],
+ [
+ -47.383248228813315,
+ -22.222756971398198
+ ],
+ [
+ -47.38330137883723,
+ -22.222754021352916
+ ],
+ [
+ -47.383353400806,
+ -22.222751943112844
+ ],
+ [
+ -47.38340548801854,
+ -22.22275112566406
+ ],
+ [
+ -47.38345648905277,
+ -22.222751108380663
+ ],
+ [
+ -47.38350626453157,
+ -22.222752550490746
+ ],
+ [
+ -47.383556886929064,
+ -22.222756207400685
+ ],
+ [
+ -47.38358416512711,
+ -22.222758794435553
+ ],
+ [
+ -47.38361007340557,
+ -22.222760917552048
+ ],
+ [
+ -47.38363541454919,
+ -22.222763553384286
+ ],
+ [
+ -47.38365939028038,
+ -22.222766703042076
+ ],
+ [
+ -47.3836845356775,
+ -22.222770705571104
+ ],
+ [
+ -47.38370982325941,
+ -22.222775005416896
+ ],
+ [
+ -47.383735842273595,
+ -22.222780010077166
+ ],
+ [
+ -47.38376266319686,
+ -22.222785227714844
+ ],
+ [
+ -47.38378904919291,
+ -22.222790319474747
+ ],
+ [
+ -47.3838160969438,
+ -22.222795562370102
+ ],
+ [
+ -47.38384299713349,
+ -22.22280103014287
+ ],
+ [
+ -47.38386855979555,
+ -22.222806381340405
+ ],
+ [
+ -47.38389401426993,
+ -22.222812484404347
+ ],
+ [
+ -47.383918934812456,
+ -22.222818479970133
+ ],
+ [
+ -47.38394570803127,
+ -22.222825836105276
+ ],
+ [
+ -47.3839724817708,
+ -22.222832631175635
+ ],
+ [
+ -47.3839986168735,
+ -22.222839612240303
+ ],
+ [
+ -47.38402667942565,
+ -22.222847707208814
+ ],
+ [
+ -47.384053833382566,
+ -22.222854764562534
+ ],
+ [
+ -47.384077736043174,
+ -22.22286187742919
+ ],
+ [
+ -47.38410451311788,
+ -22.22287011432571
+ ],
+ [
+ -47.3841316138861,
+ -22.222878423168904
+ ],
+ [
+ -47.38415794665255,
+ -22.222886631823858
+ ],
+ [
+ -47.38418594395754,
+ -22.22289488518161
+ ],
+ [
+ -47.384209724843224,
+ -22.22290197256057
+ ],
+ [
+ -47.38423571180926,
+ -22.222910685878855
+ ],
+ [
+ -47.38426555017022,
+ -22.22292003761534
+ ],
+ [
+ -47.38429017666832,
+ -22.222927174358805
+ ],
+ [
+ -47.38431830742691,
+ -22.222936196020015
+ ],
+ [
+ -47.384343706567975,
+ -22.222943380902393
+ ],
+ [
+ -47.38436871896895,
+ -22.22295127031407
+ ],
+ [
+ -47.384392022775046,
+ -22.22295821984667
+ ],
+ [
+ -47.38441670662355,
+ -22.222966907237705
+ ],
+ [
+ -47.38443939248868,
+ -22.222973710672413
+ ],
+ [
+ -47.384448741175085,
+ -22.222976986802
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "113",
+ "Name": "Curvas",
+ "Length": 187.29837436568238,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "113",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38263313334932,
+ -22.22280768147978
+ ],
+ [
+ -47.38279683694312,
+ -22.22281029129271
+ ],
+ [
+ -47.38287133076296,
+ -22.222812193539674
+ ],
+ [
+ -47.382925806402675,
+ -22.22281259125632
+ ],
+ [
+ -47.38298248851303,
+ -22.22281128752632
+ ],
+ [
+ -47.38303790336444,
+ -22.2228086860032
+ ],
+ [
+ -47.38309011714168,
+ -22.222805972739888
+ ],
+ [
+ -47.383142902302,
+ -22.222803331813335
+ ],
+ [
+ -47.38319689905482,
+ -22.22280041013724
+ ],
+ [
+ -47.383250779167724,
+ -22.22279752610335
+ ],
+ [
+ -47.38330361240491,
+ -22.222794593639787
+ ],
+ [
+ -47.38335470389358,
+ -22.222792552570457
+ ],
+ [
+ -47.38340586365684,
+ -22.222791749675604
+ ],
+ [
+ -47.38345581830374,
+ -22.22279173274558
+ ],
+ [
+ -47.383503897172325,
+ -22.222793125699763
+ ],
+ [
+ -47.38355298806059,
+ -22.222796671973725
+ ],
+ [
+ -47.38358004147097,
+ -22.222799237689237
+ ],
+ [
+ -47.383605737993946,
+ -22.22280134345229
+ ],
+ [
+ -47.38362994339385,
+ -22.22280386115074
+ ],
+ [
+ -47.383652664616235,
+ -22.222806846004897
+ ],
+ [
+ -47.38367693977135,
+ -22.222810710012165
+ ],
+ [
+ -47.38370148911862,
+ -22.222814884329537
+ ],
+ [
+ -47.38372696673795,
+ -22.22281978485387
+ ],
+ [
+ -47.383753773897176,
+ -22.222824999813273
+ ],
+ [
+ -47.38378019429168,
+ -22.222830098210494
+ ],
+ [
+ -47.38380699719353,
+ -22.222835293660754
+ ],
+ [
+ -47.38383355847456,
+ -22.222840692545752
+ ],
+ [
+ -47.383858331400695,
+ -22.222845878422213
+ ],
+ [
+ -47.383883133397525,
+ -22.22285182504498
+ ],
+ [
+ -47.38390729887514,
+ -22.222857638966328
+ ],
+ [
+ -47.38393379472905,
+ -22.22286491889277
+ ],
+ [
+ -47.38396072776455,
+ -22.2228717543913
+ ],
+ [
+ -47.38398614317435,
+ -22.22287854321502
+ ],
+ [
+ -47.384014355214134,
+ -22.222886681304303
+ ],
+ [
+ -47.38404132195366,
+ -22.22289368999949
+ ],
+ [
+ -47.38406425034429,
+ -22.222900512945905
+ ],
+ [
+ -47.38409082551535,
+ -22.22290868773434
+ ],
+ [
+ -47.3841178642392,
+ -22.22291697757577
+ ],
+ [
+ -47.384144434397385,
+ -22.222925260231797
+ ],
+ [
+ -47.38417270809129,
+ -22.222933595066035
+ ],
+ [
+ -47.384195677930485,
+ -22.222940440729708
+ ],
+ [
+ -47.38422135868265,
+ -22.222949051375263
+ ],
+ [
+ -47.38425210498884,
+ -22.22295868767319
+ ],
+ [
+ -47.38427658528605,
+ -22.22296578204735
+ ],
+ [
+ -47.38430485614819,
+ -22.222974848639748
+ ],
+ [
+ -47.38433036141245,
+ -22.222982063541732
+ ],
+ [
+ -47.3843550636402,
+ -22.22298985511804
+ ],
+ [
+ -47.384377644968055,
+ -22.222996589196864
+ ],
+ [
+ -47.384402295355926,
+ -22.223005264810947
+ ],
+ [
+ -47.38441928428795,
+ -22.223010359749694
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "114",
+ "Name": "Curvas",
+ "Length": 187.57761992761388,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "114",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38264070256326,
+ -22.222794258783985
+ ],
+ [
+ -47.38279716081445,
+ -22.222796753087206
+ ],
+ [
+ -47.38287158717519,
+ -22.22279865361224
+ ],
+ [
+ -47.38292568380125,
+ -22.222799048562262
+ ],
+ [
+ -47.38298194263088,
+ -22.222797754568486
+ ],
+ [
+ -47.3830371319248,
+ -22.222795163634906
+ ],
+ [
+ -47.38308932170736,
+ -22.22279245161889
+ ],
+ [
+ -47.38314209020161,
+ -22.222789811526614
+ ],
+ [
+ -47.38319605526365,
+ -22.222786891565715
+ ],
+ [
+ -47.38324992905194,
+ -22.22278400786818
+ ],
+ [
+ -47.38330286788207,
+ -22.222781069544187
+ ],
+ [
+ -47.38335426953084,
+ -22.222779016084605
+ ],
+ [
+ -47.38340573844392,
+ -22.222778208338436
+ ],
+ [
+ -47.38345604188667,
+ -22.222778191290615
+ ],
+ [
+ -47.38350468629209,
+ -22.222779600630098
+ ],
+ [
+ -47.38355428768355,
+ -22.222783183782717
+ ],
+ [
+ -47.38358141602315,
+ -22.222785756604686
+ ],
+ [
+ -47.3836071831313,
+ -22.2227878681522
+ ],
+ [
+ -47.383631767112526,
+ -22.222790425228588
+ ],
+ [
+ -47.38365490650459,
+ -22.2227934650173
+ ],
+ [
+ -47.38367947174043,
+ -22.222797375198507
+ ],
+ [
+ -47.38370426716595,
+ -22.222801591358685
+ ],
+ [
+ -47.38372992525027,
+ -22.222806526595
+ ],
+ [
+ -47.38375673699751,
+ -22.222811742447163
+ ],
+ [
+ -47.38378314592587,
+ -22.222816838631935
+ ],
+ [
+ -47.38381003045455,
+ -22.222822049899357
+ ],
+ [
+ -47.383836704694666,
+ -22.222827471744814
+ ],
+ [
+ -47.38386174086617,
+ -22.222832712728316
+ ],
+ [
+ -47.38388676035555,
+ -22.222838711498135
+ ],
+ [
+ -47.38391117753126,
+ -22.222844585970318
+ ],
+ [
+ -47.38393776583041,
+ -22.222851891296994
+ ],
+ [
+ -47.38396464576725,
+ -22.222858713319457
+ ],
+ [
+ -47.383990301074725,
+ -22.222865566223508
+ ],
+ [
+ -47.38401846328529,
+ -22.2228736899392
+ ],
+ [
+ -47.384045492430616,
+ -22.222880714853883
+ ],
+ [
+ -47.38406874557797,
+ -22.222887634440397
+ ],
+ [
+ -47.38409538805027,
+ -22.222895829931534
+ ],
+ [
+ -47.38412244746763,
+ -22.22290412611066
+ ],
+ [
+ -47.38414893848316,
+ -22.222912384095896
+ ],
+ [
+ -47.38417712004741,
+ -22.222920691771296
+ ],
+ [
+ -47.384200360235475,
+ -22.222927618006736
+ ],
+ [
+ -47.384226143058946,
+ -22.222936262876537
+ ],
+ [
+ -47.38425658671668,
+ -22.222945804320624
+ ],
+ [
+ -47.384281115747534,
+ -22.22295291281791
+ ],
+ [
+ -47.384309339908484,
+ -22.222961964433228
+ ],
+ [
+ -47.38433480979834,
+ -22.222969169328678
+ ],
+ [
+ -47.38435961541719,
+ -22.222976993516788
+ ],
+ [
+ -47.38438243757115,
+ -22.22298379941355
+ ],
+ [
+ -47.38440709911256,
+ -22.22299247895328
+ ],
+ [
+ -47.38442921316947,
+ -22.222999110903984
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "115",
+ "Name": "Curvas",
+ "Length": 186.73988323059004,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "115",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38261799491741,
+ -22.222834526870617
+ ],
+ [
+ -47.38279618920068,
+ -22.22283736770366
+ ],
+ [
+ -47.382870817938766,
+ -22.222839273394477
+ ],
+ [
+ -47.382926051605985,
+ -22.222839676644387
+ ],
+ [
+ -47.38298358027806,
+ -22.222838353441908
+ ],
+ [
+ -47.383039446244574,
+ -22.222835730739682
+ ],
+ [
+ -47.38309170801119,
+ -22.22283301498178
+ ],
+ [
+ -47.383144526503656,
+ -22.222830372386653
+ ],
+ [
+ -47.38319858663804,
+ -22.22282744728019
+ ],
+ [
+ -47.38325247940735,
+ -22.222824562573184
+ ],
+ [
+ -47.3833051014514,
+ -22.222821641830848
+ ],
+ [
+ -47.38335557261973,
+ -22.222819625542076
+ ],
+ [
+ -47.38340611408318,
+ -22.222818832349866
+ ],
+ [
+ -47.38345537113819,
+ -22.222818815655437
+ ],
+ [
+ -47.38350231893273,
+ -22.222820175839086
+ ],
+ [
+ -47.38355038881435,
+ -22.22282364835573
+ ],
+ [
+ -47.38357729236621,
+ -22.222826199858286
+ ],
+ [
+ -47.38360284771878,
+ -22.22282829405244
+ ],
+ [
+ -47.383626295955864,
+ -22.222830732995014
+ ],
+ [
+ -47.38364818083866,
+ -22.22283360798007
+ ],
+ [
+ -47.38367187583216,
+ -22.222837379639458
+ ],
+ [
+ -47.38369593302276,
+ -22.222841470271206
+ ],
+ [
+ -47.38372104971203,
+ -22.22284630137156
+ ],
+ [
+ -47.38374784769519,
+ -22.222851514545443
+ ],
+ [
+ -47.38377429102203,
+ -22.222856617367547
+ ],
+ [
+ -47.3838009306985,
+ -22.222861781189213
+ ],
+ [
+ -47.38382726603295,
+ -22.222867134147563
+ ],
+ [
+ -47.38385151246818,
+ -22.222872209809907
+ ],
+ [
+ -47.383875879479774,
+ -22.222878052138526
+ ],
+ [
+ -47.38389954158722,
+ -22.22288374496534
+ ],
+ [
+ -47.383925852524484,
+ -22.222890974084194
+ ],
+ [
+ -47.38395289175736,
+ -22.222897836534845
+ ],
+ [
+ -47.38397782737164,
+ -22.222904497197867
+ ],
+ [
+ -47.3840061390699,
+ -22.22291266403432
+ ],
+ [
+ -47.384032980997745,
+ -22.222919640290502
+ ],
+ [
+ -47.38405525987477,
+ -22.222926269956734
+ ],
+ [
+ -47.38408170044336,
+ -22.222934403339725
+ ],
+ [
+ -47.3841086978129,
+ -22.222942680515995
+ ],
+ [
+ -47.38413542622369,
+ -22.22295101250337
+ ],
+ [
+ -47.38416388417694,
+ -22.2229594016553
+ ],
+ [
+ -47.38418631331826,
+ -22.222966086175425
+ ],
+ [
+ -47.38421178992776,
+ -22.222974628372462
+ ],
+ [
+ -47.38424314153102,
+ -22.222984454378103
+ ],
+ [
+ -47.384267524360915,
+ -22.22299152050602
+ ],
+ [
+ -47.384295888625466,
+ -22.22300061705257
+ ],
+ [
+ -47.38432146463856,
+ -22.22300785196762
+ ],
+ [
+ -47.38434596008407,
+ -22.22301557832033
+ ],
+ [
+ -47.384368059759574,
+ -22.22302216876319
+ ],
+ [
+ -47.384392687840325,
+ -22.223030836526025
+ ],
+ [
+ -47.384399426520226,
+ -22.223032857439698
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "116",
+ "Name": "Curvas",
+ "Length": 187.0191287977898,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "116",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382625564134045,
+ -22.222821104175313
+ ],
+ [
+ -47.38279651307187,
+ -22.22282382949818
+ ],
+ [
+ -47.38287107435083,
+ -22.22282573346708
+ ],
+ [
+ -47.38292592900425,
+ -22.222826133950367
+ ],
+ [
+ -47.38298303439544,
+ -22.22282482048413
+ ],
+ [
+ -47.383038674804375,
+ -22.222822208371458
+ ],
+ [
+ -47.38309091257631,
+ -22.222819493860857
+ ],
+ [
+ -47.38314371440269,
+ -22.222816852100017
+ ],
+ [
+ -47.38319774284628,
+ -22.222813928708746
+ ],
+ [
+ -47.38325162929175,
+ -22.222811044338048
+ ],
+ [
+ -47.38330435692802,
+ -22.222808117735337
+ ],
+ [
+ -47.383355138256555,
+ -22.222806089056277
+ ],
+ [
+ -47.38340598886994,
+ -22.22280529101274
+ ],
+ [
+ -47.383455594720935,
+ -22.22280527420051
+ ],
+ [
+ -47.38350310805254,
+ -22.22280665076944
+ ],
+ [
+ -47.38355168843753,
+ -22.222810160164734
+ ],
+ [
+ -47.383578666918666,
+ -22.222812718773746
+ ],
+ [
+ -47.38360429285644,
+ -22.222814818752372
+ ],
+ [
+ -47.383628119674974,
+ -22.222817297072886
+ ],
+ [
+ -47.383650422727605,
+ -22.222820226992496
+ ],
+ [
+ -47.38367440780195,
+ -22.22282404482583
+ ],
+ [
+ -47.38369871107089,
+ -22.222828177300393
+ ],
+ [
+ -47.383724008225215,
+ -22.222833043112736
+ ],
+ [
+ -47.38375081079641,
+ -22.222838257179383
+ ],
+ [
+ -47.38377724265708,
+ -22.222843357789035
+ ],
+ [
+ -47.38380396396351,
+ -22.222848537428508
+ ],
+ [
+ -47.38383041225401,
+ -22.222853913346682
+ ],
+ [
+ -47.3838549219347,
+ -22.222859044116078
+ ],
+ [
+ -47.38387950643893,
+ -22.222864938591776
+ ],
+ [
+ -47.383903420247684,
+ -22.22287069197031
+ ],
+ [
+ -47.38392982362709,
+ -22.222877946488513
+ ],
+ [
+ -47.383956809761266,
+ -22.2228847954631
+ ],
+ [
+ -47.383981985273316,
+ -22.222891520206456
+ ],
+ [
+ -47.38401024714235,
+ -22.22289967266933
+ ],
+ [
+ -47.384037151476036,
+ -22.22290666514503
+ ],
+ [
+ -47.38405975510989,
+ -22.222913391451367
+ ],
+ [
+ -47.384086262979714,
+ -22.22292154553707
+ ],
+ [
+ -47.38411328104625,
+ -22.222929829052102
+ ],
+ [
+ -47.38413993031091,
+ -22.22293813636761
+ ],
+ [
+ -47.38416829613446,
+ -22.222946498360688
+ ],
+ [
+ -47.38419099562475,
+ -22.22295326345261
+ ],
+ [
+ -47.38421657430559,
+ -22.2229618398739
+ ],
+ [
+ -47.38424762326029,
+ -22.22297157102568
+ ],
+ [
+ -47.384272054823846,
+ -22.222978651276723
+ ],
+ [
+ -47.38430037238718,
+ -22.22298773284619
+ ],
+ [
+ -47.38432591302586,
+ -22.222994957754704
+ ],
+ [
+ -47.38435051186249,
+ -22.223002716719222
+ ],
+ [
+ -47.3843728523642,
+ -22.22300937898006
+ ],
+ [
+ -47.38439749159851,
+ -22.223018050668525
+ ],
+ [
+ -47.38440935540486,
+ -22.223021608594944
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "117",
+ "Name": "Curvas",
+ "Length": 186.18819987966052,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "117",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382602856480105,
+ -22.222861372260468
+ ],
+ [
+ -47.382795541458535,
+ -22.222864444114556
+ ],
+ [
+ -47.38287030511489,
+ -22.222866353249227
+ ],
+ [
+ -47.38292629680994,
+ -22.222866762032357
+ ],
+ [
+ -47.382984672044074,
+ -22.222865419357344
+ ],
+ [
+ -47.38304098912582,
+ -22.222862775476028
+ ],
+ [
+ -47.38309329888181,
+ -22.222860057223514
+ ],
+ [
+ -47.383146150706466,
+ -22.222857412959794
+ ],
+ [
+ -47.383200274222446,
+ -22.222854484422975
+ ],
+ [
+ -47.38325417964818,
+ -22.22285159904282
+ ],
+ [
+ -47.383306590499,
+ -22.22284869002179
+ ],
+ [
+ -47.38335644134672,
+ -22.222846698513575
+ ],
+ [
+ -47.383406364510144,
+ -22.222845915023992
+ ],
+ [
+ -47.383454923972955,
+ -22.222845898565232
+ ],
+ [
+ -47.383500740693066,
+ -22.222847225978356
+ ],
+ [
+ -47.383547789567636,
+ -22.22285062473767
+ ],
+ [
+ -47.383574543260934,
+ -22.222853162027338
+ ],
+ [
+ -47.38359995744304,
+ -22.22285524465254
+ ],
+ [
+ -47.383622648517,
+ -22.222857604839216
+ ],
+ [
+ -47.38364369705988,
+ -22.222860369955182
+ ],
+ [
+ -47.38366681189152,
+ -22.22286404926669
+ ],
+ [
+ -47.3836903769253,
+ -22.222868056212775
+ ],
+ [
+ -47.383715132684344,
+ -22.22287281788914
+ ],
+ [
+ -47.38374192149147,
+ -22.222878029277517
+ ],
+ [
+ -47.38376838775063,
+ -22.222883136524484
+ ],
+ [
+ -47.38379486420166,
+ -22.222888268717575
+ ],
+ [
+ -47.38382097358942,
+ -22.222893575749232
+ ],
+ [
+ -47.3838446935336,
+ -22.222898541197498
+ ],
+ [
+ -47.38386862555981,
+ -22.222904279231937
+ ],
+ [
+ -47.38389178429684,
+ -22.22290985096417
+ ],
+ [
+ -47.383917910317436,
+ -22.222917029275393
+ ],
+ [
+ -47.3839450557477,
+ -22.222923918678152
+ ],
+ [
+ -47.3839695115663,
+ -22.22293045118049
+ ],
+ [
+ -47.38399792292309,
+ -22.22293864676415
+ ],
+ [
+ -47.384024640039236,
+ -22.22294559058126
+ ],
+ [
+ -47.384046269402425,
+ -22.22295202696724
+ ],
+ [
+ -47.38407257536848,
+ -22.222960118944826
+ ],
+ [
+ -47.38409953138364,
+ -22.222968383455918
+ ],
+ [
+ -47.38412641804713,
+ -22.2229767647747
+ ],
+ [
+ -47.3841550602598,
+ -22.222985208244303
+ ],
+ [
+ -47.38417694870304,
+ -22.222991731620812
+ ],
+ [
+ -47.38420222116981,
+ -22.22300020536932
+ ],
+ [
+ -47.38423417807034,
+ -22.2230102210827
+ ],
+ [
+ -47.384258463432914,
+ -22.223017258964408
+ ],
+ [
+ -47.38428692109991,
+ -22.223026385465076
+ ],
+ [
+ -47.38431256786185,
+ -22.223033640393236
+ ],
+ [
+ -47.38433685652503,
+ -22.223041301522304
+ ],
+ [
+ -47.38435847454802,
+ -22.22304774832925
+ ],
+ [
+ -47.38437969183494,
+ -22.223055215675604
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "118",
+ "Name": "Curvas",
+ "Length": 186.46063765841015,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "118",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38261042569943,
+ -22.222847949565665
+ ],
+ [
+ -47.382795865329584,
+ -22.222850905909116
+ ],
+ [
+ -47.382870561526786,
+ -22.222852813321865
+ ],
+ [
+ -47.38292617420789,
+ -22.222853219338386
+ ],
+ [
+ -47.38298412616097,
+ -22.222851886399635
+ ],
+ [
+ -47.38304021768506,
+ -22.222849253107878
+ ],
+ [
+ -47.383092503446356,
+ -22.222846536102665
+ ],
+ [
+ -47.383145338604926,
+ -22.222843892673236
+ ],
+ [
+ -47.38319943043011,
+ -22.222840965851606
+ ],
+ [
+ -47.38325332953275,
+ -22.22283808080774
+ ],
+ [
+ -47.383305845975066,
+ -22.222835165926337
+ ],
+ [
+ -47.383356006983114,
+ -22.222833162027836
+ ],
+ [
+ -47.38340623929659,
+ -22.222832373686916
+ ],
+ [
+ -47.38345514755552,
+ -22.222832357110338
+ ],
+ [
+ -47.38350152981291,
+ -22.22283370090873
+ ],
+ [
+ -47.38354908919105,
+ -22.2228371365467
+ ],
+ [
+ -47.38357591781366,
+ -22.222839680942815
+ ],
+ [
+ -47.38360140258099,
+ -22.222841769352485
+ ],
+ [
+ -47.38362447223655,
+ -22.222844168917117
+ ],
+ [
+ -47.38364593894943,
+ -22.22284698896764
+ ],
+ [
+ -47.38366934386201,
+ -22.2228507144531
+ ],
+ [
+ -47.38369315497423,
+ -22.222854763242008
+ ],
+ [
+ -47.3837180911984,
+ -22.22285955963036
+ ],
+ [
+ -47.38374488459356,
+ -22.222864771911503
+ ],
+ [
+ -47.38377133938655,
+ -22.22286987694602
+ ],
+ [
+ -47.38379789747071,
+ -22.222875024957546
+ ],
+ [
+ -47.38382411981142,
+ -22.222880354948412
+ ],
+ [
+ -47.383848103001164,
+ -22.22288537550374
+ ],
+ [
+ -47.38387225252008,
+ -22.22289116568525
+ ],
+ [
+ -47.38389566296177,
+ -22.222896797970133
+ ],
+ [
+ -47.38392188142129,
+ -22.22290400167981
+ ],
+ [
+ -47.38394897375284,
+ -22.222910877606505
+ ],
+ [
+ -47.3839736694693,
+ -22.22291747418921
+ ],
+ [
+ -47.384002030996825,
+ -22.222925655399276
+ ],
+ [
+ -47.38402881051883,
+ -22.22293261543589
+ ],
+ [
+ -47.38405076463897,
+ -22.222939148462018
+ ],
+ [
+ -47.3840771379063,
+ -22.222947261142313
+ ],
+ [
+ -47.384104114621955,
+ -22.222955531993254
+ ],
+ [
+ -47.38413092213577,
+ -22.222963888639075
+ ],
+ [
+ -47.38415947221873,
+ -22.22297230494983
+ ],
+ [
+ -47.38418163101103,
+ -22.222978908898153
+ ],
+ [
+ -47.38420700554917,
+ -22.22298741687093
+ ],
+ [
+ -47.384238659801035,
+ -22.222997337730412
+ ],
+ [
+ -47.38426299389728,
+ -22.22300438973524
+ ],
+ [
+ -47.38429140486305,
+ -22.223013501258837
+ ],
+ [
+ -47.38431701625056,
+ -22.223020746180456
+ ],
+ [
+ -47.38434140830491,
+ -22.223028439921343
+ ],
+ [
+ -47.38436326715419,
+ -22.223034958546272
+ ],
+ [
+ -47.3843878840814,
+ -22.22304362238344
+ ],
+ [
+ -47.38438949763405,
+ -22.22304410628396
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "119",
+ "Name": "Curvas",
+ "Length": 185.6495806141584,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "119",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382587718037385,
+ -22.22288821764937
+ ],
+ [
+ -47.38279489371666,
+ -22.22289152052541
+ ],
+ [
+ -47.38286979229135,
+ -22.222893433103916
+ ],
+ [
+ -47.382926542014495,
+ -22.22289384742024
+ ],
+ [
+ -47.38298576381099,
+ -22.222892485272684
+ ],
+ [
+ -47.38304253200819,
+ -22.22288982021223
+ ],
+ [
+ -47.38309488975359,
+ -22.222887099465094
+ ],
+ [
+ -47.383147774910434,
+ -22.22288445353282
+ ],
+ [
+ -47.38320196180802,
+ -22.222881521565604
+ ],
+ [
+ -47.383255879890164,
+ -22.222878635512345
+ ],
+ [
+ -47.3833080795477,
+ -22.22287573821257
+ ],
+ [
+ -47.38335731007458,
+ -22.222873771484924
+ ],
+ [
+ -47.38340661493773,
+ -22.22287299769807
+ ],
+ [
+ -47.3834544768081,
+ -22.222872981474943
+ ],
+ [
+ -47.38349916245331,
+ -22.222874276117565
+ ],
+ [
+ -47.38354519032044,
+ -22.222877601119613
+ ],
+ [
+ -47.38357179415512,
+ -22.22288012419633
+ ],
+ [
+ -47.38359706716671,
+ -22.22288219525259
+ ],
+ [
+ -47.38361900107725,
+ -22.222884476683404
+ ],
+ [
+ -47.3836392132799,
+ -22.22288713193023
+ ],
+ [
+ -47.38366174794945,
+ -22.22289071889383
+ ],
+ [
+ -47.3836848208262,
+ -22.222894642154277
+ ],
+ [
+ -47.38370921565491,
+ -22.222899334406623
+ ],
+ [
+ -47.38373599528599,
+ -22.222904544009488
+ ],
+ [
+ -47.38376248447749,
+ -22.22290965568132
+ ],
+ [
+ -47.383788797703,
+ -22.22291475624583
+ ],
+ [
+ -47.38381468114403,
+ -22.222920017350823
+ ],
+ [
+ -47.38383787459695,
+ -22.222924872584915
+ ],
+ [
+ -47.383861371637614,
+ -22.222930506325156
+ ],
+ [
+ -47.38388402700395,
+ -22.22293595696279
+ ],
+ [
+ -47.3839099681079,
+ -22.222943084466383
+ ],
+ [
+ -47.383937219735586,
+ -22.222950000821285
+ ],
+ [
+ -47.38396119575834,
+ -22.222956405162897
+ ],
+ [
+ -47.38398970677368,
+ -22.22296462949376
+ ],
+ [
+ -47.38401629907807,
+ -22.222971540871832
+ ],
+ [
+ -47.38403727892719,
+ -22.222977783977495
+ ],
+ [
+ -47.384063450290675,
+ -22.222985834549608
+ ],
+ [
+ -47.38409036495148,
+ -22.22299408639556
+ ],
+ [
+ -47.38411740986771,
+ -22.223002517045725
+ ],
+ [
+ -47.38414623633985,
+ -22.223011014833045
+ ],
+ [
+ -47.38416758408483,
+ -22.22301737706589
+ ],
+ [
+ -47.384192652408814,
+ -22.22302578236586
+ ],
+ [
+ -47.38422521460682,
+ -22.22303598778703
+ ],
+ [
+ -47.38424940250203,
+ -22.223042997422485
+ ],
+ [
+ -47.38427795357149,
+ -22.22305215387732
+ ],
+ [
+ -47.3843036710823,
+ -22.22305942881859
+ ],
+ [
+ -47.38432775296309,
+ -22.223067024724
+ ],
+ [
+ -47.3843488893334,
+ -22.22307332789494
+ ],
+ [
+ -47.38436019334952,
+ -22.223077306302265
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "120",
+ "Name": "Curvas",
+ "Length": 185.91889024742207,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "120",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38259528725942,
+ -22.222874794955047
+ ],
+ [
+ -47.382795217587564,
+ -22.222877982319986
+ ],
+ [
+ -47.38287004870309,
+ -22.222879893176586
+ ],
+ [
+ -47.382926419412144,
+ -22.222880304726313
+ ],
+ [
+ -47.38298521792741,
+ -22.222878952315043
+ ],
+ [
+ -47.383041760566876,
+ -22.22287629784416
+ ],
+ [
+ -47.38309409431757,
+ -22.222873578344323
+ ],
+ [
+ -47.38314696280832,
+ -22.222870933246337
+ ],
+ [
+ -47.383201118015094,
+ -22.22286800299431
+ ],
+ [
+ -47.383255029774894,
+ -22.222865117277273
+ ],
+ [
+ -47.38330733502322,
+ -22.22286221411719
+ ],
+ [
+ -47.38335687571055,
+ -22.22286023499925
+ ],
+ [
+ -47.38340648972387,
+ -22.222859456361032
+ ],
+ [
+ -47.38345470039049,
+ -22.222859440020088
+ ],
+ [
+ -47.38349995157321,
+ -22.222860751047968
+ ],
+ [
+ -47.3835464899441,
+ -22.22286411292865
+ ],
+ [
+ -47.3835731687081,
+ -22.222866643111825
+ ],
+ [
+ -47.38359851230495,
+ -22.222868719952558
+ ],
+ [
+ -47.383620824797234,
+ -22.222871040761316
+ ],
+ [
+ -47.38364145517004,
+ -22.222873750942707
+ ],
+ [
+ -47.38366427992067,
+ -22.222877384080267
+ ],
+ [
+ -47.383687598875945,
+ -22.22288134918355
+ ],
+ [
+ -47.38371217416984,
+ -22.22288607614791
+ ],
+ [
+ -47.383738958388946,
+ -22.222891286643527
+ ],
+ [
+ -47.38376543611428,
+ -22.2228963961029
+ ],
+ [
+ -47.38379183097613,
+ -22.222901512486498
+ ],
+ [
+ -47.38381782736697,
+ -22.222906796550056
+ ],
+ [
+ -47.38384128406554,
+ -22.222911706891225
+ ],
+ [
+ -47.383864998599,
+ -22.22291739277856
+ ],
+ [
+ -47.38388790567349,
+ -22.222922903969778
+ ],
+ [
+ -47.383913939212995,
+ -22.222930056870904
+ ],
+ [
+ -47.38394113774195,
+ -22.222936959749756
+ ],
+ [
+ -47.383965353662646,
+ -22.22294342817172
+ ],
+ [
+ -47.383993814848715,
+ -22.222951638128993
+ ],
+ [
+ -47.38402046955898,
+ -22.222958565726575
+ ],
+ [
+ -47.384041774165155,
+ -22.222964905472406
+ ],
+ [
+ -47.38406801282993,
+ -22.22297297674724
+ ],
+ [
+ -47.38409494819476,
+ -22.222981234934135
+ ],
+ [
+ -47.38412191395779,
+ -22.222989640910242
+ ],
+ [
+ -47.38415064830018,
+ -22.2229981115387
+ ],
+ [
+ -47.38417226639431,
+ -22.223004554343387
+ ],
+ [
+ -47.3841974367897,
+ -22.22301299386763
+ ],
+ [
+ -47.384229696338934,
+ -22.22302310443488
+ ],
+ [
+ -47.384253932967844,
+ -22.223030128193482
+ ],
+ [
+ -47.38428243733606,
+ -22.223039269671236
+ ],
+ [
+ -47.38430811947242,
+ -22.22304653460595
+ ],
+ [
+ -47.38433230474441,
+ -22.223054163123187
+ ],
+ [
+ -47.38435368194109,
+ -22.223060538112122
+ ],
+ [
+ -47.38436994259299,
+ -22.22306626098916
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "121",
+ "Name": "Curvas",
+ "Length": 185.1109613343226,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "121",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3825725795893,
+ -22.22291506303724
+ ],
+ [
+ -47.38279424597506,
+ -22.222918596936168
+ ],
+ [
+ -47.38286927946815,
+ -22.222920512958513
+ ],
+ [
+ -47.38292678721968,
+ -22.22292093280804
+ ],
+ [
+ -47.38298685557888,
+ -22.22291955118786
+ ],
+ [
+ -47.383044074891664,
+ -22.222916864948274
+ ],
+ [
+ -47.383096480626484,
+ -22.22291414170652
+ ],
+ [
+ -47.383149399115545,
+ -22.222911494105702
+ ],
+ [
+ -47.38320364939476,
+ -22.22290855870808
+ ],
+ [
+ -47.38325758013336,
+ -22.22290567198167
+ ],
+ [
+ -47.383309568597475,
+ -22.2229027864032
+ ],
+ [
+ -47.38335817880331,
+ -22.222900844456177
+ ],
+ [
+ -47.38340686536595,
+ -22.22290008037205
+ ],
+ [
+ -47.38345402964362,
+ -22.222900064384604
+ ],
+ [
+ -47.3834975842135,
+ -22.22290132625674
+ ],
+ [
+ -47.3835425910728,
+ -22.222904577501485
+ ],
+ [
+ -47.38356904504875,
+ -22.222907086365296
+ ],
+ [
+ -47.383594176889794,
+ -22.222909145852594
+ ],
+ [
+ -47.383615353636614,
+ -22.222911348527536
+ ],
+ [
+ -47.38363472949871,
+ -22.22291389390526
+ ],
+ [
+ -47.38365668400599,
+ -22.222917388520926
+ ],
+ [
+ -47.38367926472553,
+ -22.22292122809568
+ ],
+ [
+ -47.38370329862374,
+ -22.222925850924018
+ ],
+ [
+ -47.3837300690788,
+ -22.22293105874138
+ ],
+ [
+ -47.38375658120261,
+ -22.222936174838072
+ ],
+ [
+ -47.38378273120252,
+ -22.222941243773956
+ ],
+ [
+ -47.38380838869675,
+ -22.222946458952272
+ ],
+ [
+ -47.38383105565821,
+ -22.222951203972194
+ ],
+ [
+ -47.383854117713156,
+ -22.222956733418215
+ ],
+ [
+ -47.38387626970858,
+ -22.222962062961223
+ ],
+ [
+ -47.38390202589587,
+ -22.222969139657177
+ ],
+ [
+ -47.38392938372103,
+ -22.222976082964223
+ ],
+ [
+ -47.38395287994777,
+ -22.222982359145057
+ ],
+ [
+ -47.38398149062169,
+ -22.222990612223132
+ ],
+ [
+ -47.38400795811429,
+ -22.222997491162136
+ ],
+ [
+ -47.38402828844911,
+ -22.223003540987452
+ ],
+ [
+ -47.38405432520997,
+ -22.223011550154137
+ ],
+ [
+ -47.38408119851636,
+ -22.223019789334877
+ ],
+ [
+ -47.38410840168541,
+ -22.223028269316455
+ ],
+ [
+ -47.38413741241712,
+ -22.223036821421527
+ ],
+ [
+ -47.38415821946366,
+ -22.223043022510666
+ ],
+ [
+ -47.38418308364473,
+ -22.223051359362053
+ ],
+ [
+ -47.38421625114045,
+ -22.223061754491084
+ ],
+ [
+ -47.38424034156825,
+ -22.223068735880293
+ ],
+ [
+ -47.384268986040226,
+ -22.223077922289278
+ ],
+ [
+ -47.38429477429994,
+ -22.22308521724365
+ ],
+ [
+ -47.38431864939829,
+ -22.223092747925413
+ ],
+ [
+ -47.384339304115734,
+ -22.223098907460315
+ ],
+ [
+ -47.3843406948581,
+ -22.223099396927058
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "122",
+ "Name": "Curvas",
+ "Length": 185.38027097428113,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "122",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38258014881402,
+ -22.222901640343423
+ ],
+ [
+ -47.38279456984583,
+ -22.22290505873079
+ ],
+ [
+ -47.38286953587972,
+ -22.22290697303122
+ ],
+ [
+ -47.38292666461701,
+ -22.222907390114155
+ ],
+ [
+ -47.38298630969483,
+ -22.22290601823028
+ ],
+ [
+ -47.38304330344979,
+ -22.222903342580274
+ ],
+ [
+ -47.38309568518989,
+ -22.222900620585825
+ ],
+ [
+ -47.38314858701285,
+ -22.22289797381929
+ ],
+ [
+ -47.38320280560123,
+ -22.222895040136873
+ ],
+ [
+ -47.38325673001825,
+ -22.222892153746653
+ ],
+ [
+ -47.38330882407245,
+ -22.222889262307888
+ ],
+ [
+ -47.38335774443885,
+ -22.222887307970556
+ ],
+ [
+ -47.38340674015176,
+ -22.222886539035073
+ ],
+ [
+ -47.38345425322583,
+ -22.22288652292978
+ ],
+ [
+ -47.38349837333343,
+ -22.22288780118716
+ ],
+ [
+ -47.3835438906967,
+ -22.22289108931054
+ ],
+ [
+ -47.383570419602,
+ -22.222893605280817
+ ],
+ [
+ -47.383595622028324,
+ -22.222895670552578
+ ],
+ [
+ -47.38361717735705,
+ -22.222897912605482
+ ],
+ [
+ -47.38363697138946,
+ -22.22290051291775
+ ],
+ [
+ -47.38365921597791,
+ -22.222904053707392
+ ],
+ [
+ -47.38368204277608,
+ -22.222907935124994
+ ],
+ [
+ -47.38370625713954,
+ -22.22291259266534
+ ],
+ [
+ -47.383733032182626,
+ -22.22291780137547
+ ],
+ [
+ -47.38375953284027,
+ -22.22292291525971
+ ],
+ [
+ -47.38378576447976,
+ -22.222928000015333
+ ],
+ [
+ -47.383811534920625,
+ -22.222933238151562
+ ],
+ [
+ -47.38383446512785,
+ -22.222938038278574
+ ],
+ [
+ -47.383857744675666,
+ -22.222943619871696
+ ],
+ [
+ -47.38388014838289,
+ -22.22294900996927
+ ],
+ [
+ -47.3839059970022,
+ -22.22295611206181
+ ],
+ [
+ -47.383933301728625,
+ -22.222963041892772
+ ],
+ [
+ -47.383957037853385,
+ -22.222969382154012
+ ],
+ [
+ -47.38398559869802,
+ -22.22297762085848
+ ],
+ [
+ -47.384012128596524,
+ -22.222984516016997
+ ],
+ [
+ -47.38403278368851,
+ -22.222990662482502
+ ],
+ [
+ -47.38405888775069,
+ -22.22299869235191
+ ],
+ [
+ -47.384085781764604,
+ -22.22300693787469
+ ],
+ [
+ -47.38411290577692,
+ -22.22301539318111
+ ],
+ [
+ -47.384141824378844,
+ -22.22302391812732
+ ],
+ [
+ -47.38416290177463,
+ -22.223030199788322
+ ],
+ [
+ -47.38418786802715,
+ -22.223038570863988
+ ],
+ [
+ -47.384220732874,
+ -22.223048871139078
+ ],
+ [
+ -47.3842448720355,
+ -22.223055866651425
+ ],
+ [
+ -47.384273469806224,
+ -22.223065038083316
+ ],
+ [
+ -47.384299222691475,
+ -22.22307232303117
+ ],
+ [
+ -47.38432320118106,
+ -22.223079886324747
+ ],
+ [
+ -47.38434409672495,
+ -22.223086117677656
+ ],
+ [
+ -47.38435044410458,
+ -22.223088351614884
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "123",
+ "Name": "Curvas",
+ "Length": 184.55460419874342,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "123",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382557441135795,
+ -22.22294190842417
+ ],
+ [
+ -47.382793598233754,
+ -22.22294567334689
+ ],
+ [
+ -47.38286876664529,
+ -22.22294759281306
+ ],
+ [
+ -47.382927032425485,
+ -22.222948018195726
+ ],
+ [
+ -47.3829879473477,
+ -22.222946617102924
+ ],
+ [
+ -47.383045617776276,
+ -22.222943909684155
+ ],
+ [
+ -47.38309807150054,
+ -22.2229411839478
+ ],
+ [
+ -47.383151023321815,
+ -22.22293853467838
+ ],
+ [
+ -47.38320533698267,
+ -22.2229355958504
+ ],
+ [
+ -47.3832592803777,
+ -22.222932708450852
+ ],
+ [
+ -47.38331105764838,
+ -22.222929834593657
+ ],
+ [
+ -47.38335904753291,
+ -22.22292791742732
+ ],
+ [
+ -47.38340711579478,
+ -22.222927163045917
+ ],
+ [
+ -47.38345358247946,
+ -22.222927147294193
+ ],
+ [
+ -47.383496005973605,
+ -22.222928376395867
+ ],
+ [
+ -47.383539991824655,
+ -22.222931553883345
+ ],
+ [
+ -47.38356629594186,
+ -22.22293404853423
+ ],
+ [
+ -47.3835912866123,
+ -22.22293609645258
+ ],
+ [
+ -47.38361170619512,
+ -22.222938220371635
+ ],
+ [
+ -47.38363024571634,
+ -22.222940655880173
+ ],
+ [
+ -47.38365162006111,
+ -22.222944058147938
+ ],
+ [
+ -47.38367370862323,
+ -22.22294781403699
+ ],
+ [
+ -47.38369738159085,
+ -22.2229523674413
+ ],
+ [
+ -47.38372414286983,
+ -22.222957573473153
+ ],
+ [
+ -47.383750677926,
+ -22.22296269399472
+ ],
+ [
+ -47.38377666470023,
+ -22.222967731301996
+ ],
+ [
+ -47.383802096247585,
+ -22.222972900553593
+ ],
+ [
+ -47.38382423671738,
+ -22.22297753535936
+ ],
+ [
+ -47.38384686378648,
+ -22.22298296051114
+ ],
+ [
+ -47.3838685124107,
+ -22.222988168959404
+ ],
+ [
+ -47.383894083681355,
+ -22.22299519484777
+ ],
+ [
+ -47.383921547704006,
+ -22.223002165106955
+ ],
+ [
+ -47.38394456413456,
+ -22.223008313126996
+ ],
+ [
+ -47.38397327446712,
+ -22.22301659495229
+ ],
+ [
+ -47.38399961714788,
+ -22.223023441452217
+ ],
+ [
+ -47.38401929796819,
+ -22.223029297997137
+ ],
+ [
+ -47.38404520012635,
+ -22.22303726575834
+ ],
+ [
+ -47.38407203207834,
+ -22.223045492273904
+ ],
+ [
+ -47.38409939350025,
+ -22.223054021586925
+ ],
+ [
+ -47.384128588491585,
+ -22.2230626280097
+ ],
+ [
+ -47.38414885483946,
+ -22.22306866795513
+ ],
+ [
+ -47.3841735148776,
+ -22.223076936357945
+ ],
+ [
+ -47.38420728767123,
+ -22.223087521194838
+ ],
+ [
+ -47.38423128063161,
+ -22.223094474337795
+ ],
+ [
+ -47.38426001850609,
+ -22.223103690700935
+ ],
+ [
+ -47.384285877514735,
+ -22.22311100566844
+ ],
+ [
+ -47.38430954583055,
+ -22.223118471126522
+ ],
+ [
+ -47.38432087638599,
+ -22.223121850062
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "124",
+ "Name": "Curvas",
+ "Length": 184.83423003316614,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "124",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38256501036323,
+ -22.222928485730826
+ ],
+ [
+ -47.38279392210438,
+ -22.222932135141527
+ ],
+ [
+ -47.382869023056685,
+ -22.222934052885797
+ ],
+ [
+ -47.38292690982251,
+ -22.22293447550189
+ ],
+ [
+ -47.382987401463176,
+ -22.222933084145406
+ ],
+ [
+ -47.38304484633384,
+ -22.22293038731623
+ ],
+ [
+ -47.38309727606338,
+ -22.22292766282718
+ ],
+ [
+ -47.38315021121855,
+ -22.22292501439205
+ ],
+ [
+ -47.38320449318857,
+ -22.222922077279268
+ ],
+ [
+ -47.38325843026275,
+ -22.222919190215862
+ ],
+ [
+ -47.383310313122806,
+ -22.222916310498423
+ ],
+ [
+ -47.38335861316802,
+ -22.22291438094176
+ ],
+ [
+ -47.38340699058029,
+ -22.222913621708976
+ ],
+ [
+ -47.383453806061496,
+ -22.222913605839405
+ ],
+ [
+ -47.38349679509358,
+ -22.22291485132632
+ ],
+ [
+ -47.38354129144879,
+ -22.22291806569243
+ ],
+ [
+ -47.383567670495374,
+ -22.222920567449762
+ ],
+ [
+ -47.38359273175112,
+ -22.222922621152588
+ ],
+ [
+ -47.38361352991598,
+ -22.22292478444959
+ ],
+ [
+ -47.383632487607684,
+ -22.222927274892722
+ ],
+ [
+ -47.383654152033735,
+ -22.22293072333445
+ ],
+ [
+ -47.38367648667458,
+ -22.22293452106635
+ ],
+ [
+ -47.38370034010753,
+ -22.22293910918268
+ ],
+ [
+ -47.383727105974536,
+ -22.222944316107284
+ ],
+ [
+ -47.38375362956453,
+ -22.2229494344164
+ ],
+ [
+ -47.38377969798162,
+ -22.222954487544083
+ ],
+ [
+ -47.38380524247241,
+ -22.22295967975294
+ ],
+ [
+ -47.38382764618806,
+ -22.22296436966581
+ ],
+ [
+ -47.383850490750106,
+ -22.222969846964695
+ ],
+ [
+ -47.38387239108994,
+ -22.22297511596857
+ ],
+ [
+ -47.38389805478893,
+ -22.222982167252503
+ ],
+ [
+ -47.38392546571282,
+ -22.222989124035603
+ ],
+ [
+ -47.38394872204149,
+ -22.22299533613607
+ ],
+ [
+ -47.38397738254473,
+ -22.223003603587742
+ ],
+ [
+ -47.38400378763142,
+ -22.223010466307194
+ ],
+ [
+ -47.38402379320902,
+ -22.223016419492335
+ ],
+ [
+ -47.38404976266852,
+ -22.223024407956263
+ ],
+ [
+ -47.38407661533156,
+ -22.223032640814974
+ ],
+ [
+ -47.38410389759319,
+ -22.22304114545173
+ ],
+ [
+ -47.38413300045472,
+ -22.223049724715626
+ ],
+ [
+ -47.38415353715194,
+ -22.223055845232935
+ ],
+ [
+ -47.384178299261556,
+ -22.223064147860047
+ ],
+ [
+ -47.3842117694062,
+ -22.22307463784298
+ ],
+ [
+ -47.384235811100304,
+ -22.223081605109073
+ ],
+ [
+ -47.384264502273524,
+ -22.223090806495133
+ ],
+ [
+ -47.38429032590769,
+ -22.223098111456085
+ ],
+ [
+ -47.38431409761478,
+ -22.223105609525994
+ ],
+ [
+ -47.38433081173022,
+ -22.223110593916655
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "125",
+ "Name": "Curvas",
+ "Length": 183.9953525129362,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "125",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38254230267691,
+ -22.222968753810104
+ ],
+ [
+ -47.38279295049273,
+ -22.222972749757535
+ ],
+ [
+ -47.382868253822735,
+ -22.222974672667537
+ ],
+ [
+ -47.38292727763193,
+ -22.22297510358336
+ ],
+ [
+ -47.38298903911748,
+ -22.22297368301786
+ ],
+ [
+ -47.38304716066201,
+ -22.22297095441991
+ ],
+ [
+ -47.383099662375734,
+ -22.222968226188932
+ ],
+ [
+ -47.383152647529215,
+ -22.222965575250935
+ ],
+ [
+ -47.38320702457177,
+ -22.222962632992548
+ ],
+ [
+ -47.38326098062324,
+ -22.22295974491988
+ ],
+ [
+ -47.38331254670035,
+ -22.222956882784004
+ ],
+ [
+ -47.383359916263366,
+ -22.222954990398343
+ ],
+ [
+ -47.383407366224255,
+ -22.222954245719713
+ ],
+ [
+ -47.383453135315676,
+ -22.22295423020373
+ ],
+ [
+ -47.383494427733595,
+ -22.222955426534956
+ ],
+ [
+ -47.38353739257606,
+ -22.222958530265156
+ ],
+ [
+ -47.383563546834445,
+ -22.222961010703084
+ ],
+ [
+ -47.38358839633421,
+ -22.222963047052534
+ ],
+ [
+ -47.38360805875273,
+ -22.22296509221567
+ ],
+ [
+ -47.38362576193275,
+ -22.222967417855095
+ ],
+ [
+ -47.38364655611481,
+ -22.222970727774896
+ ],
+ [
+ -47.38366815251933,
+ -22.222974399978227
+ ],
+ [
+ -47.38369146455618,
+ -22.222978883958515
+ ],
+ [
+ -47.383718216659126,
+ -22.222984088204836
+ ],
+ [
+ -47.38374477464768,
+ -22.222989213151244
+ ],
+ [
+ -47.383770598196115,
+ -22.222994218829918
+ ],
+ [
+ -47.38379580379656,
+ -22.222999342154832
+ ],
+ [
+ -47.38381741777448,
+ -22.223003866746357
+ ],
+ [
+ -47.38383960985756,
+ -22.223009187603864
+ ],
+ [
+ -47.38386075511032,
+ -22.223014274957368
+ ],
+ [
+ -47.38388614146434,
+ -22.223021250038165
+ ],
+ [
+ -47.38391371168455,
+ -22.2230282472495
+ ],
+ [
+ -47.38393624831875,
+ -22.223034267108705
+ ],
+ [
+ -47.38396505830995,
+ -22.223042577681206
+ ],
+ [
+ -47.38399127617883,
+ -22.22304939174204
+ ],
+ [
+ -47.38401030748437,
+ -22.223055055006526
+ ],
+ [
+ -47.38403607503983,
+ -22.223062981362276
+ ],
+ [
+ -47.38406286563741,
+ -22.22307119521265
+ ],
+ [
+ -47.38409038531221,
+ -22.2230797738571
+ ],
+ [
+ -47.38411976456323,
+ -22.223088434597642
+ ],
+ [
+ -47.384139490212284,
+ -22.223094313399283
+ ],
+ [
+ -47.384163946107414,
+ -22.223102513353474
+ ],
+ [
+ -47.38419832419916,
+ -22.22311328789832
+ ],
+ [
+ -47.384222219692035,
+ -22.22312021279502
+ ],
+ [
+ -47.38425105096913,
+ -22.22312945911234
+ ],
+ [
+ -47.38427698072672,
+ -22.223136794092945
+ ],
+ [
+ -47.384300442259914,
+ -22.22314419432733
+ ],
+ [
+ -47.38430100569286,
+ -22.223144362351196
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "126",
+ "Name": "Curvas",
+ "Length": 184.27497835415573,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "126",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38254987190704,
+ -22.222955331117245
+ ],
+ [
+ -47.382793274363216,
+ -22.222959211552205
+ ],
+ [
+ -47.382868510233976,
+ -22.222961132740306
+ ],
+ [
+ -47.38292715502864,
+ -22.222961560889562
+ ],
+ [
+ -47.382988493232475,
+ -22.22296015006041
+ ],
+ [
+ -47.38304638921901,
+ -22.222957432052063
+ ],
+ [
+ -47.383098866938006,
+ -22.222954705068382
+ ],
+ [
+ -47.38315183542537,
+ -22.22295205496468
+ ],
+ [
+ -47.38320618077707,
+ -22.222949114421496
+ ],
+ [
+ -47.38326013050846,
+ -22.222946226684936
+ ],
+ [
+ -47.38331180217423,
+ -22.222943358688838
+ ],
+ [
+ -47.38335948189803,
+ -22.222941453912842
+ ],
+ [
+ -47.38340724100945,
+ -22.22294070438281
+ ],
+ [
+ -47.38345335889753,
+ -22.222940688748977
+ ],
+ [
+ -47.383495216853596,
+ -22.222941901465422
+ ],
+ [
+ -47.38353869220042,
+ -22.222945042074247
+ ],
+ [
+ -47.38356492138822,
+ -22.222947529618637
+ ],
+ [
+ -47.38358984147333,
+ -22.222949571752558
+ ],
+ [
+ -47.38360988247403,
+ -22.222951656293652
+ ],
+ [
+ -47.383628003824704,
+ -22.222954036867637
+ ],
+ [
+ -47.383649088088134,
+ -22.222957392961444
+ ],
+ [
+ -47.383670930571476,
+ -22.222961107007627
+ ],
+ [
+ -47.383694423073734,
+ -22.22296562569994
+ ],
+ [
+ -47.3837211797647,
+ -22.222970830839017
+ ],
+ [
+ -47.383747726287055,
+ -22.222975953572977
+ ],
+ [
+ -47.383773631481716,
+ -22.22298097507273
+ ],
+ [
+ -47.38379895002232,
+ -22.22298612135424
+ ],
+ [
+ -47.38382082724619,
+ -22.222990701052872
+ ],
+ [
+ -47.3838432368223,
+ -22.22299607405751
+ ],
+ [
+ -47.38386463379467,
+ -22.223001221967703
+ ],
+ [
+ -47.38389011257316,
+ -22.223008222443003
+ ],
+ [
+ -47.38391762969459,
+ -22.223015206178246
+ ],
+ [
+ -47.38394040622699,
+ -22.223021290117888
+ ],
+ [
+ -47.38396916638885,
+ -22.223029586316777
+ ],
+ [
+ -47.38399544666369,
+ -22.22303641659715
+ ],
+ [
+ -47.38401480272663,
+ -22.223042176501863
+ ],
+ [
+ -47.38404063758345,
+ -22.223050123560345
+ ],
+ [
+ -47.38406744889562,
+ -22.22305834375496
+ ],
+ [
+ -47.38409488940659,
+ -22.223066897722052
+ ],
+ [
+ -47.384124176527756,
+ -22.223075531303706
+ ],
+ [
+ -47.384144172526256,
+ -22.22308149067725
+ ],
+ [
+ -47.384168730492895,
+ -22.22308972485574
+ ],
+ [
+ -47.38420280593555,
+ -22.2231004045466
+ ],
+ [
+ -47.38422675016218,
+ -22.223107343566443
+ ],
+ [
+ -47.384255534737974,
+ -22.223116574906673
+ ],
+ [
+ -47.38428142912108,
+ -22.223123899880715
+ ],
+ [
+ -47.3843049940456,
+ -22.22313133272695
+ ],
+ [
+ -47.38431094104021,
+ -22.22313310620683
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "127",
+ "Name": "Curvas",
+ "Length": 183.44314084513084,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "127",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38252716421263,
+ -22.22299559919504
+ ],
+ [
+ -47.38279230275197,
+ -22.22299982616812
+ ],
+ [
+ -47.382867741000545,
+ -22.223001752521952
+ ],
+ [
+ -47.38292752283898,
+ -22.223002188970863
+ ],
+ [
+ -47.38299013088821,
+ -22.22300074893268
+ ],
+ [
+ -47.383048703548845,
+ -22.222997999155506
+ ],
+ [
+ -47.383101253252065,
+ -22.22299526842989
+ ],
+ [
+ -47.38315427173777,
+ -22.222992615823316
+ ],
+ [
+ -47.38320871216204,
+ -22.22298967013454
+ ],
+ [
+ -47.38326268086996,
+ -22.222986781388745
+ ],
+ [
+ -47.38331403575344,
+ -22.222983930974195
+ ],
+ [
+ -47.38336078499468,
+ -22.222982063369244
+ ],
+ [
+ -47.38340761665434,
+ -22.222981328393406
+ ],
+ [
+ -47.38345268815227,
+ -22.22298131311317
+ ],
+ [
+ -47.383492849493535,
+ -22.222982476673987
+ ],
+ [
+ -47.38353479332696,
+ -22.22298550664692
+ ],
+ [
+ -47.383560797726496,
+ -22.222987972871973
+ ],
+ [
+ -47.38358550605554,
+ -22.222989997652448
+ ],
+ [
+ -47.38360441130946,
+ -22.222991964059727
+ ],
+ [
+ -47.38362127814798,
+ -22.222994179829897
+ ],
+ [
+ -47.38364149216708,
+ -22.22299739740177
+ ],
+ [
+ -47.38366259641383,
+ -22.223000985919395
+ ],
+ [
+ -47.383685547519796,
+ -22.223005400475593
+ ],
+ [
+ -47.38371229044669,
+ -22.223010602936412
+ ],
+ [
+ -47.383738871367584,
+ -22.22301573230771
+ ],
+ [
+ -47.38376453169018,
+ -22.223020706357733
+ ],
+ [
+ -47.383789511343636,
+ -22.22302578375595
+ ],
+ [
+ -47.38381059882953,
+ -22.223030198133223
+ ],
+ [
+ -47.3838323559264,
+ -22.223035414696444
+ ],
+ [
+ -47.38385299780741,
+ -22.223040380955112
+ ],
+ [
+ -47.38387819924484,
+ -22.22304730522834
+ ],
+ [
+ -47.383905875662634,
+ -22.22305432939184
+ ],
+ [
+ -47.3839279325003,
+ -22.223060221090186
+ ],
+ [
+ -47.383956842150205,
+ -22.223068560409914
+ ],
+ [
+ -47.38398293520716,
+ -22.223075342031667
+ ],
+ [
+ -47.38400131699773,
+ -22.22308081201565
+ ],
+ [
+ -47.384026949950396,
+ -22.22308869696591
+ ],
+ [
+ -47.38405369919354,
+ -22.223096898151066
+ ],
+ [
+ -47.38408137712133,
+ -22.223105526127004
+ ],
+ [
+ -47.38411094063208,
+ -22.223114241185296
+ ],
+ [
+ -47.38413012558211,
+ -22.22311995884312
+ ],
+ [
+ -47.38415437733418,
+ -22.223128090348666
+ ],
+ [
+ -47.384189360724235,
+ -22.223139054601543
+ ],
+ [
+ -47.38421315874961,
+ -22.223145951251986
+ ],
+ [
+ -47.3842420834293,
+ -22.223155227523467
+ ],
+ [
+ -47.38426808393586,
+ -22.2231625825172
+ ],
+ [
+ -47.384281256205,
+ -22.223166737313296
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "128",
+ "Name": "Curvas",
+ "Length": 183.71905230730283,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "128",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38253473344545,
+ -22.222982176502697
+ ],
+ [
+ -47.38279262662232,
+ -22.222986287962843
+ ],
+ [
+ -47.382867997411616,
+ -22.222988212594753
+ ],
+ [
+ -47.38292740023538,
+ -22.22298864627712
+ ],
+ [
+ -47.38298958500273,
+ -22.22298721597529
+ ],
+ [
+ -47.383047932105285,
+ -22.222984476787726
+ ],
+ [
+ -47.38310045781377,
+ -22.222981747309415
+ ],
+ [
+ -47.383153459633355,
+ -22.22297909553714
+ ],
+ [
+ -47.38320786836676,
+ -22.222976151563568
+ ],
+ [
+ -47.38326183075535,
+ -22.222973263153836
+ ],
+ [
+ -47.38331329122676,
+ -22.222970406879103
+ ],
+ [
+ -47.38336035062892,
+ -22.2229685268838
+ ],
+ [
+ -47.383407491439215,
+ -22.22296778705655
+ ],
+ [
+ -47.38345291173394,
+ -22.22296777165845
+ ],
+ [
+ -47.38349363861359,
+ -22.22296895160448
+ ],
+ [
+ -47.38353609295157,
+ -22.22297201845603
+ ],
+ [
+ -47.38356217228054,
+ -22.22297449178754
+ ],
+ [
+ -47.38358695119496,
+ -22.222976522352482
+ ],
+ [
+ -47.3836062350312,
+ -22.222978528137713
+ ],
+ [
+ -47.383623520040516,
+ -22.22298079884249
+ ],
+ [
+ -47.38364402414113,
+ -22.222984062588353
+ ],
+ [
+ -47.38366537446679,
+ -22.222987692948834
+ ],
+ [
+ -47.38368850603822,
+ -22.222992142217066
+ ],
+ [
+ -47.383715253553135,
+ -22.22299734557064
+ ],
+ [
+ -47.383741823007846,
+ -22.223002472729487
+ ],
+ [
+ -47.38376756498001,
+ -22.22300746260129
+ ],
+ [
+ -47.38379265757033,
+ -22.22301256295541
+ ],
+ [
+ -47.383814008302274,
+ -22.223017032439813
+ ],
+ [
+ -47.38383598289227,
+ -22.223022301150184
+ ],
+ [
+ -47.383856876497056,
+ -22.223027327966662
+ ],
+ [
+ -47.38388217035491,
+ -22.223034277633282
+ ],
+ [
+ -47.3839097936739,
+ -22.223041288320687
+ ],
+ [
+ -47.38393209040985,
+ -22.223047244099465
+ ],
+ [
+ -47.3839609502304,
+ -22.223055569045588
+ ],
+ [
+ -47.38398710569333,
+ -22.223062366886875
+ ],
+ [
+ -47.38400581224143,
+ -22.223067933511125
+ ],
+ [
+ -47.38403151249548,
+ -22.223075839164128
+ ],
+ [
+ -47.38405828245675,
+ -22.223084046694634
+ ],
+ [
+ -47.384085881217146,
+ -22.223092649992086
+ ],
+ [
+ -47.384115352598016,
+ -22.223101337891496
+ ],
+ [
+ -47.38413480789757,
+ -22.22310713612124
+ ],
+ [
+ -47.38415916172118,
+ -22.223115301851102
+ ],
+ [
+ -47.38419384246206,
+ -22.22312617124996
+ ],
+ [
+ -47.384217689221195,
+ -22.223133082023534
+ ],
+ [
+ -47.384246567199575,
+ -22.22314234331793
+ ],
+ [
+ -47.384272532331636,
+ -22.223149688305107
+ ],
+ [
+ -47.38429112760314,
+ -22.223155553623933
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "129",
+ "Name": "Curvas",
+ "Length": 182.89131790558568,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "129",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38251202574296,
+ -22.223022444578998
+ ],
+ [
+ -47.3827916550115,
+ -22.223026902578646
+ ],
+ [
+ -47.38286722817867,
+ -22.2230288323763
+ ],
+ [
+ -47.38292776804667,
+ -22.223029274358304
+ ],
+ [
+ -47.382991222659875,
+ -22.223027814847367
+ ],
+ [
+ -47.3830502464368,
+ -22.223025043890953
+ ],
+ [
+ -47.38310284412951,
+ -22.22302231067072
+ ],
+ [
+ -47.383155895947496,
+ -22.22301965639555
+ ],
+ [
+ -47.383210399753466,
+ -22.223016707276408
+ ],
+ [
+ -47.38326438111785,
+ -22.22301381785747
+ ],
+ [
+ -47.38331552480762,
+ -22.223010979164215
+ ],
+ [
+ -47.38336165372686,
+ -22.223009136340035
+ ],
+ [
+ -47.38340786708505,
+ -22.223008411067003
+ ],
+ [
+ -47.383452240989186,
+ -22.223008396022546
+ ],
+ [
+ -47.38349127125339,
+ -22.223009526812994
+ ],
+ [
+ -47.3835321940774,
+ -22.22301248302866
+ ],
+ [
+ -47.383558048618006,
+ -22.223014935040776
+ ],
+ [
+ -47.38358261577628,
+ -22.223016948252326
+ ],
+ [
+ -47.38360076386533,
+ -22.2230188359037
+ ],
+ [
+ -47.38361679436199,
+ -22.223020941804695
+ ],
+ [
+ -47.383636428217926,
+ -22.2230240670286
+ ],
+ [
+ -47.383657040306716,
+ -22.223027571860452
+ ],
+ [
+ -47.38367963048167,
+ -22.22303191699259
+ ],
+ [
+ -47.383706364232495,
+ -22.223037117667886
+ ],
+ [
+ -47.38373296808575,
+ -22.22304225146406
+ ],
+ [
+ -47.38375846518243,
+ -22.22304719388542
+ ],
+ [
+ -47.38378321888881,
+ -22.223052225356952
+ ],
+ [
+ -47.383803779882456,
+ -22.22305652951996
+ ],
+ [
+ -47.383825101993004,
+ -22.223061641788856
+ ],
+ [
+ -47.38384524050199,
+ -22.223066486952657
+ ],
+ [
+ -47.38387025702288,
+ -22.22307336041831
+ ],
+ [
+ -47.38389803963828,
+ -22.223080411533953
+ ],
+ [
+ -47.383919616679236,
+ -22.22308617507141
+ ],
+ [
+ -47.38394862598787,
+ -22.223094543138384
+ ],
+ [
+ -47.38397459423284,
+ -22.22310129232104
+ ],
+ [
+ -47.3839923265082,
+ -22.22310656902448
+ ],
+ [
+ -47.38401782485807,
+ -22.223114412569238
+ ],
+ [
+ -47.38404453274672,
+ -22.223122601089194
+ ],
+ [
+ -47.38407236892758,
+ -22.22313127839662
+ ],
+ [
+ -47.38410211669814,
+ -22.223140047772677
+ ],
+ [
+ -47.38412076094895,
+ -22.223145604286604
+ ],
+ [
+ -47.38414480855785,
+ -22.22315366734355
+ ],
+ [
+ -47.38418039724647,
+ -22.223164821304458
+ ],
+ [
+ -47.3842040978043,
+ -22.22317168970864
+ ],
+ [
+ -47.38423311588664,
+ -22.22318099593431
+ ],
+ [
+ -47.38425918714218,
+ -22.223188370941177
+ ],
+ [
+ -47.3842615134041,
+ -22.22318910469059
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "130",
+ "Name": "Curvas",
+ "Length": 183.16722937464726,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "130",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38251959497847,
+ -22.223009021887147
+ ],
+ [
+ -47.38279197888171,
+ -22.223013364373394
+ ],
+ [
+ -47.38286748458957,
+ -22.223015292449137
+ ],
+ [
+ -47.382927645442756,
+ -22.223015731664606
+ ],
+ [
+ -47.38299067677393,
+ -22.223014281890045
+ ],
+ [
+ -47.38304947499269,
+ -22.223011521523247
+ ],
+ [
+ -47.38310204869064,
+ -22.22300878955033
+ ],
+ [
+ -47.383155083842496,
+ -22.223006136109454
+ ],
+ [
+ -47.38320955595761,
+ -22.223003188705505
+ ],
+ [
+ -47.3832635310034,
+ -22.22300029962259
+ ],
+ [
+ -47.383314780280394,
+ -22.22299745506921
+ ],
+ [
+ -47.383361219360665,
+ -22.222995599854652
+ ],
+ [
+ -47.38340774186962,
+ -22.2229948697302
+ ],
+ [
+ -47.38345246457069,
+ -22.22299485456786
+ ],
+ [
+ -47.38349206037348,
+ -22.222996001743503
+ ],
+ [
+ -47.38353349370224,
+ -22.22299899483779
+ ],
+ [
+ -47.383559423172315,
+ -22.22300145395636
+ ],
+ [
+ -47.38358406091599,
+ -22.22300347295238
+ ],
+ [
+ -47.38360258758752,
+ -22.22300539998171
+ ],
+ [
+ -47.38361903625515,
+ -22.223007560817308
+ ],
+ [
+ -47.383638960192684,
+ -22.223010732215194
+ ],
+ [
+ -47.38365981836047,
+ -22.223014278889938
+ ],
+ [
+ -47.383682589000955,
+ -22.223018658734112
+ ],
+ [
+ -47.38370932733981,
+ -22.223023860302167
+ ],
+ [
+ -47.38373591972689,
+ -22.223028991885894
+ ],
+ [
+ -47.38376149847655,
+ -22.22303395012972
+ ],
+ [
+ -47.38378636511646,
+ -22.223039004556476
+ ],
+ [
+ -47.38380718935625,
+ -22.223043363826623
+ ],
+ [
+ -47.38382872895999,
+ -22.22304852824268
+ ],
+ [
+ -47.38384911919714,
+ -22.223053433965486
+ ],
+ [
+ -47.38387422813418,
+ -22.223060332823355
+ ],
+ [
+ -47.38390195765078,
+ -22.223067370462907
+ ],
+ [
+ -47.3839237745901,
+ -22.22307319808083
+ ],
+ [
+ -47.38395273406936,
+ -22.22308155177417
+ ],
+ [
+ -47.38397876472033,
+ -22.223088317176366
+ ],
+ [
+ -47.38399682175333,
+ -22.223093690520102
+ ],
+ [
+ -47.3840223874046,
+ -22.223101554767606
+ ],
+ [
+ -47.38404911601495,
+ -22.223109749634016
+ ],
+ [
+ -47.38407687302482,
+ -22.223118402261846
+ ],
+ [
+ -47.384106528665455,
+ -22.223127144479008
+ ],
+ [
+ -47.38412544326591,
+ -22.22313278156488
+ ],
+ [
+ -47.38414959294639,
+ -22.223140878846152
+ ],
+ [
+ -47.384184878985714,
+ -22.22315193795303
+ ],
+ [
+ -47.38420862827732,
+ -22.22315882048035
+ ],
+ [
+ -47.384237599658334,
+ -22.22316811172891
+ ],
+ [
+ -47.38426363553938,
+ -22.223175476729214
+ ],
+ [
+ -47.384271384805324,
+ -22.223177921002176
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "131",
+ "Name": "Curvas",
+ "Length": 182.32789660849394,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "131",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382496887267884,
+ -22.223049289961995
+ ],
+ [
+ -47.38279100727131,
+ -22.223053978989114
+ ],
+ [
+ -47.38286671535711,
+ -22.223055912230585
+ ],
+ [
+ -47.382928013254975,
+ -22.22305635974564
+ ],
+ [
+ -47.3829923144325,
+ -22.223054880761936
+ ],
+ [
+ -47.383051789325876,
+ -22.22305208862626
+ ],
+ [
+ -47.38310443500813,
+ -22.223049352911396
+ ],
+ [
+ -47.38315752015834,
+ -22.22304669696767
+ ],
+ [
+ -47.383212087346095,
+ -22.223043744418096
+ ],
+ [
+ -47.383266081366926,
+ -22.223040854326033
+ ],
+ [
+ -47.3833170138629,
+ -22.223038027354125
+ ],
+ [
+ -47.38336252245989,
+ -22.223036209310717
+ ],
+ [
+ -47.3834081175164,
+ -22.223035493740525
+ ],
+ [
+ -47.383451793826474,
+ -22.223035478931877
+ ],
+ [
+ -47.383489693013175,
+ -22.22303657695195
+ ],
+ [
+ -47.38352959482738,
+ -22.223039459410362
+ ],
+ [
+ -47.383555299509,
+ -22.22304189720956
+ ],
+ [
+ -47.383579725496425,
+ -22.223043898852154
+ ],
+ [
+ -47.383597116420304,
+ -22.223045707747612
+ ],
+ [
+ -47.38361231057482,
+ -22.223047703779457
+ ],
+ [
+ -47.38363136426735,
+ -22.223050736655328
+ ],
+ [
+ -47.383651484198,
+ -22.22305415780143
+ ],
+ [
+ -47.383673713441794,
+ -22.223058433509504
+ ],
+ [
+ -47.38370043801653,
+ -22.22306363239928
+ ],
+ [
+ -47.3837270648022,
+ -22.22306877062033
+ ],
+ [
+ -47.38375239867286,
+ -22.22307368141303
+ ],
+ [
+ -47.38377692643211,
+ -22.22307866695782
+ ],
+ [
+ -47.383796960933324,
+ -22.223082860906544
+ ],
+ [
+ -47.383817848057355,
+ -22.223087868881095
+ ],
+ [
+ -47.383837483194014,
+ -22.22309259294995
+ ],
+ [
+ -47.38386231479841,
+ -22.223099415608072
+ ],
+ [
+ -47.38389020361148,
+ -22.223106493675907
+ ],
+ [
+ -47.38391130085555,
+ -22.22311212905242
+ ],
+ [
+ -47.38394040982294,
+ -22.223120525866626
+ ],
+ [
+ -47.38396625325589,
+ -22.223127242610193
+ ],
+ [
+ -47.38398333601581,
+ -22.223132326033035
+ ],
+ [
+ -47.38400869976283,
+ -22.22314012817228
+ ],
+ [
+ -47.384035366296985,
+ -22.22314830402704
+ ],
+ [
+ -47.38406336073095,
+ -22.223157030665952
+ ],
+ [
+ -47.38409329276139,
+ -22.223165854359806
+ ],
+ [
+ -47.384111396312804,
+ -22.223171249729827
+ ],
+ [
+ -47.38413523977847,
+ -22.223179244338098
+ ],
+ [
+ -47.384171433765836,
+ -22.22319058800712
+ ],
+ [
+ -47.3841950368561,
+ -22.223197428165
+ ],
+ [
+ -47.384224148341104,
+ -22.22320676434486
+ ],
+ [
+ -47.384241574778734,
+ -22.223211693915943
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "132",
+ "Name": "Curvas",
+ "Length": 182.61119068359037,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "132",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38250445650609,
+ -22.22303586727063
+ ],
+ [
+ -47.38279133114138,
+ -22.223040440783898
+ ],
+ [
+ -47.38286697176785,
+ -22.223042372303453
+ ],
+ [
+ -47.38292789065075,
+ -22.223042817051986
+ ],
+ [
+ -47.38299176854608,
+ -22.22304134780467
+ ],
+ [
+ -47.3830510178812,
+ -22.223038566258627
+ ],
+ [
+ -47.383103639568695,
+ -22.223035831791076
+ ],
+ [
+ -47.38315670805277,
+ -22.22303317668165
+ ],
+ [
+ -47.383211243549646,
+ -22.22303022584728
+ ],
+ [
+ -47.38326523125264,
+ -22.223027336091192
+ ],
+ [
+ -47.383316269335126,
+ -22.223024503259197
+ ],
+ [
+ -47.38336208809327,
+ -22.223022672825383
+ ],
+ [
+ -47.383407992300654,
+ -22.223021952403762
+ ],
+ [
+ -47.3834520174078,
+ -22.223021937477224
+ ],
+ [
+ -47.3834904821333,
+ -22.22302305188249
+ ],
+ [
+ -47.383530894452456,
+ -22.223025971219514
+ ],
+ [
+ -47.38355667406358,
+ -22.223028416125164
+ ],
+ [
+ -47.38358117063643,
+ -22.22303042355223
+ ],
+ [
+ -47.383598940142946,
+ -22.223032271825655
+ ],
+ [
+ -47.38361455246857,
+ -22.22303432279209
+ ],
+ [
+ -47.383633896242806,
+ -22.223037401841964
+ ],
+ [
+ -47.38365426225256,
+ -22.223040864830956
+ ],
+ [
+ -47.38367667196197,
+ -22.223045175251073
+ ],
+ [
+ -47.38370340112473,
+ -22.223050375033605
+ ],
+ [
+ -47.383730016444204,
+ -22.223055511042208
+ ],
+ [
+ -47.383755431971295,
+ -22.22306043765807
+ ],
+ [
+ -47.3837800726607,
+ -22.223065446157396
+ ],
+ [
+ -47.38380037040815,
+ -22.223069695213276
+ ],
+ [
+ -47.38382147502545,
+ -22.223074755334988
+ ],
+ [
+ -47.38384136189488,
+ -22.223079539964118
+ ],
+ [
+ -47.38386628591095,
+ -22.22308638801322
+ ],
+ [
+ -47.38389412162519,
+ -22.223093452604953
+ ],
+ [
+ -47.38391545876772,
+ -22.223099152061938
+ ],
+ [
+ -47.38394451790574,
+ -22.22310753450253
+ ],
+ [
+ -47.3839704237447,
+ -22.22311426746565
+ ],
+ [
+ -47.38398783126235,
+ -22.223119447528795
+ ],
+ [
+ -47.38401326231081,
+ -22.223127270370785
+ ],
+ [
+ -47.38403994957024,
+ -22.22313545257312
+ ],
+ [
+ -47.384067864829625,
+ -22.22314415453132
+ ],
+ [
+ -47.384097704730124,
+ -22.223152951066268
+ ],
+ [
+ -47.38411607863126,
+ -22.223158427008265
+ ],
+ [
+ -47.384140024168545,
+ -22.22316645584086
+ ],
+ [
+ -47.3841759155065,
+ -22.22317770465582
+ ],
+ [
+ -47.384199567330555,
+ -22.22318455893684
+ ],
+ [
+ -47.38422863211423,
+ -22.2231938801396
+ ],
+ [
+ -47.38425157082567,
+ -22.223200369016155
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "133",
+ "Name": "Curvas",
+ "Length": 181.76130844365687,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "133",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38248174878742,
+ -22.22307613534399
+ ],
+ [
+ -47.38279035953139,
+ -22.223081055399522
+ ],
+ [
+ -47.3828662025359,
+ -22.223082992084798
+ ],
+ [
+ -47.382928258463906,
+ -22.223083445132882
+ ],
+ [
+ -47.38299340620607,
+ -22.223081946676363
+ ],
+ [
+ -47.383053332216086,
+ -22.223079133361384
+ ],
+ [
+ -47.38310602588785,
+ -22.223076395151903
+ ],
+ [
+ -47.38315914437036,
+ -22.22307373753959
+ ],
+ [
+ -47.38321377493987,
+ -22.223070781559624
+ ],
+ [
+ -47.38326778161718,
+ -22.223067890794407
+ ],
+ [
+ -47.383318502919316,
+ -22.223065075543882
+ ],
+ [
+ -47.3833633911938,
+ -22.22306328228126
+ ],
+ [
+ -47.38340836794836,
+ -22.223062576413955
+ ],
+ [
+ -47.38345134666411,
+ -22.223062561841118
+ ],
+ [
+ -47.38348811477286,
+ -22.22306362709086
+ ],
+ [
+ -47.38352699557685,
+ -22.22306643579204
+ ],
+ [
+ -47.38355255039944,
+ -22.22306885937832
+ ],
+ [
+ -47.383576835216,
+ -22.22307084945198
+ ],
+ [
+ -47.38359346897442,
+ -22.223072579591527
+ ],
+ [
+ -47.38360782678644,
+ -22.2230744657541
+ ],
+ [
+ -47.38362630031537,
+ -22.223077406282
+ ],
+ [
+ -47.38364592808768,
+ -22.223080743742358
+ ],
+ [
+ -47.383667796400175,
+ -22.223084950026283
+ ],
+ [
+ -47.38369451179885,
+ -22.22309014713056
+ ],
+ [
+ -47.38372116151692,
+ -22.223095289776484
+ ],
+ [
+ -47.38374633216147,
+ -22.223100168940544
+ ],
+ [
+ -47.383770633973555,
+ -22.22310510855861
+ ],
+ [
+ -47.383790141982125,
+ -22.223109192292995
+ ],
+ [
+ -47.38381059411948,
+ -22.223114095973184
+ ],
+ [
+ -47.383829725883515,
+ -22.223118698947037
+ ],
+ [
+ -47.383854372571435,
+ -22.223125470797655
+ ],
+ [
+ -47.38388236758222,
+ -22.223132575817647
+ ],
+ [
+ -47.38390298502924,
+ -22.223138083033213
+ ],
+ [
+ -47.383932193655426,
+ -22.22314650859467
+ ],
+ [
+ -47.383957912276315,
+ -22.223153192899087
+ ],
+ [
+ -47.38397434552058,
+ -22.22315808304131
+ ],
+ [
+ -47.383999574664685,
+ -22.223165843775025
+ ],
+ [
+ -47.38402619984433,
+ -22.22317400696458
+ ],
+ [
+ -47.38405435253145,
+ -22.223182782934988
+ ],
+ [
+ -47.384084468821854,
+ -22.22319166094667
+ ],
+ [
+ -47.38410203167366,
+ -22.223196895172727
+ ],
+ [
+ -47.38412567099604,
+ -22.223204821332324
+ ],
+ [
+ -47.38416247028238,
+ -22.223216354709475
+ ],
+ [
+ -47.38418597590501,
+ -22.223223166621082
+ ],
+ [
+ -47.38421518079272,
+ -22.223232532755144
+ ],
+ [
+ -47.384221582680134,
+ -22.223234343714054
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "134",
+ "Name": "Curvas",
+ "Length": 182.04460252470452,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "134",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38248931802833,
+ -22.223062712653114
+ ],
+ [
+ -47.38279068340132,
+ -22.22306751719434
+ ],
+ [
+ -47.382866458946474,
+ -22.223069452157706
+ ],
+ [
+ -47.38292813585937,
+ -22.223069902439274
+ ],
+ [
+ -47.38299286031917,
+ -22.223068413719165
+ ],
+ [
+ -47.38305256077085,
+ -22.223065610993824
+ ],
+ [
+ -47.383105230447846,
+ -22.223062874031665
+ ],
+ [
+ -47.383158332264216,
+ -22.22306021725364
+ ],
+ [
+ -47.383212931142836,
+ -22.22305726298888
+ ],
+ [
+ -47.38326693150306,
+ -22.223054372559606
+ ],
+ [
+ -47.38331775839099,
+ -22.223051551449018
+ ],
+ [
+ -47.383362956826744,
+ -22.223049745795993
+ ],
+ [
+ -47.38340824273231,
+ -22.223049035077242
+ ],
+ [
+ -47.38345157024525,
+ -22.223049020386497
+ ],
+ [
+ -47.38348890389303,
+ -22.22305010202141
+ ],
+ [
+ -47.383528295202176,
+ -22.22305294760121
+ ],
+ [
+ -47.38355392495429,
+ -22.22305537829394
+ ],
+ [
+ -47.383578280356296,
+ -22.223057374152063
+ ],
+ [
+ -47.38359529269748,
+ -22.223059143669577
+ ],
+ [
+ -47.38361006868079,
+ -22.223061084766776
+ ],
+ [
+ -47.38362883229155,
+ -22.223064071468674
+ ],
+ [
+ -47.38364870614305,
+ -22.22306745077193
+ ],
+ [
+ -47.383670754921205,
+ -22.22307169176791
+ ],
+ [
+ -47.383697474907926,
+ -22.22307688976494
+ ],
+ [
+ -47.38372411315978,
+ -22.22308203019841
+ ],
+ [
+ -47.38374936546428,
+ -22.223086925186326
+ ],
+ [
+ -47.38377378020307,
+ -22.223091887758244
+ ],
+ [
+ -47.383793551458,
+ -22.223096026599777
+ ],
+ [
+ -47.38381422108871,
+ -22.223100982427166
+ ],
+ [
+ -47.383833604590336,
+ -22.223105645962598
+ ],
+ [
+ -47.383858343685226,
+ -22.223112443202897
+ ],
+ [
+ -47.38388628559715,
+ -22.223119534746797
+ ],
+ [
+ -47.383907142942725,
+ -22.223125106042854
+ ],
+ [
+ -47.383936301739496,
+ -22.223133517230686
+ ],
+ [
+ -47.38396208276644,
+ -22.223140217754658
+ ],
+ [
+ -47.38397884076856,
+ -22.223145204537207
+ ],
+ [
+ -47.38400413721411,
+ -22.223152985973687
+ ],
+ [
+ -47.38403078312262,
+ -22.22316115551193
+ ],
+ [
+ -47.38405885663156,
+ -22.223169906800504
+ ],
+ [
+ -47.38408888079198,
+ -22.22317875765327
+ ],
+ [
+ -47.38410671399361,
+ -22.223184072451314
+ ],
+ [
+ -47.38413045538764,
+ -22.22319203283525
+ ],
+ [
+ -47.38416695202447,
+ -22.223203471358335
+ ],
+ [
+ -47.38419050638092,
+ -22.22321029739308
+ ],
+ [
+ -47.38421966456727,
+ -22.22321964855003
+ ],
+ [
+ -47.38423157873023,
+ -22.22322301881524
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "135",
+ "Name": "Curvas",
+ "Length": 181.20179861970723,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "135",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382466610301556,
+ -22.223102980725006
+ ],
+ [
+ -47.38278971179177,
+ -22.223108131809852
+ ],
+ [
+ -47.38286568971501,
+ -22.22311007193895
+ ],
+ [
+ -47.38292850367346,
+ -22.223110530520035
+ ],
+ [
+ -47.38299449798058,
+ -22.22310901259065
+ ],
+ [
+ -47.38305487510742,
+ -22.223106178096405
+ ],
+ [
+ -47.383107616768726,
+ -22.22310343739228
+ ],
+ [
+ -47.383160768583515,
+ -22.223100778111373
+ ],
+ [
+ -47.38321546253483,
+ -22.223097818700992
+ ],
+ [
+ -47.38326948186861,
+ -22.223094927262665
+ ],
+ [
+ -47.38331999197678,
+ -22.223092123733494
+ ],
+ [
+ -47.38336425992856,
+ -22.2230903552517
+ ],
+ [
+ -47.383408618380955,
+ -22.223089659087297
+ ],
+ [
+ -47.38345089950212,
+ -22.223089644750306
+ ],
+ [
+ -47.38348653653248,
+ -22.223090677229717
+ ],
+ [
+ -47.38352439632589,
+ -22.22309341217366
+ ],
+ [
+ -47.38354980128936,
+ -22.223095821547027
+ ],
+ [
+ -47.38357394493495,
+ -22.223097800051736
+ ],
+ [
+ -47.38358982152765,
+ -22.223099451435363
+ ],
+ [
+ -47.38360334299686,
+ -22.223101227728723
+ ],
+ [
+ -47.383621236361954,
+ -22.223104075908605
+ ],
+ [
+ -47.38364037197573,
+ -22.223107329683174
+ ],
+ [
+ -47.38366187935681,
+ -22.223111466543006
+ ],
+ [
+ -47.383688585579414,
+ -22.223116661861763
+ ],
+ [
+ -47.383715258229884,
+ -22.223121808932543
+ ],
+ [
+ -47.38374026564824,
+ -22.223126656467898
+ ],
+ [
+ -47.38376434151311,
+ -22.223131550159255
+ ],
+ [
+ -47.38378332302883,
+ -22.223135523679314
+ ],
+ [
+ -47.383803340179384,
+ -22.22314032306511
+ ],
+ [
+ -47.38382196857047,
+ -22.223144804943875
+ ],
+ [
+ -47.383846430342,
+ -22.223151525986992
+ ],
+ [
+ -47.38387453155052,
+ -22.2231586579592
+ ],
+ [
+ -47.383894669200316,
+ -22.223164037013778
+ ],
+ [
+ -47.38392397748534,
+ -22.22317249132247
+ ],
+ [
+ -47.38394957129412,
+ -22.223179143187785
+ ],
+ [
+ -47.383965355022475,
+ -22.223183840049288
+ ],
+ [
+ -47.383990449563605,
+ -22.223191559377508
+ ],
+ [
+ -47.38401703338875,
+ -22.22319970990185
+ ],
+ [
+ -47.3840453443291,
+ -22.22320853520375
+ ],
+ [
+ -47.38407564487949,
+ -22.223217467533253
+ ],
+ [
+ -47.38409266703154,
+ -22.223222540615307
+ ],
+ [
+ -47.384116102210555,
+ -22.22323039832622
+ ],
+ [
+ -47.38415350679604,
+ -22.223242121411584
+ ],
+ [
+ -47.38417691495105,
+ -22.223248905076883
+ ],
+ [
+ -47.38420171086192,
+ -22.223256857232997
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "136",
+ "Name": "Curvas",
+ "Length": 181.478014355036,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "136",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382474179545156,
+ -22.223089558034633
+ ],
+ [
+ -47.38279003566156,
+ -22.223094593604696
+ ],
+ [
+ -47.38286594612541,
+ -22.223096532011887
+ ],
+ [
+ -47.382928381068616,
+ -22.22309698782647
+ ],
+ [
+ -47.38299395209321,
+ -22.223095479633518
+ ],
+ [
+ -47.38305410366162,
+ -22.223092655728923
+ ],
+ [
+ -47.38310682132815,
+ -22.22308991627211
+ ],
+ [
+ -47.3831599564768,
+ -22.223087257825505
+ ],
+ [
+ -47.38321461873721,
+ -22.22308430013033
+ ],
+ [
+ -47.38326863175466,
+ -22.223081409027884
+ ],
+ [
+ -47.3833192474479,
+ -22.223078599638704
+ ],
+ [
+ -47.38336382556108,
+ -22.223076818766486
+ ],
+ [
+ -47.38340849316458,
+ -22.223076117750633
+ ],
+ [
+ -47.38345112308308,
+ -22.223076103295725
+ ],
+ [
+ -47.38348732565268,
+ -22.223077152160293
+ ],
+ [
+ -47.38352569595144,
+ -22.223079923982848
+ ],
+ [
+ -47.38355117584448,
+ -22.22308234046267
+ ],
+ [
+ -47.38357539007554,
+ -22.223084324751845
+ ],
+ [
+ -47.383591645251165,
+ -22.22308601551345
+ ],
+ [
+ -47.38360558489182,
+ -22.22308784674142
+ ],
+ [
+ -47.38362376833884,
+ -22.223090741095326
+ ],
+ [
+ -47.38364315003191,
+ -22.223094036712784
+ ],
+ [
+ -47.38366483787872,
+ -22.223098208284675
+ ],
+ [
+ -47.38369154868934,
+ -22.22310340449619
+ ],
+ [
+ -47.383718209873614,
+ -22.223108549354517
+ ],
+ [
+ -47.38374329895547,
+ -22.22311341271448
+ ],
+ [
+ -47.38376748774357,
+ -22.223118329358947
+ ],
+ [
+ -47.38378673250574,
+ -22.223122357986174
+ ],
+ [
+ -47.383806967149724,
+ -22.223127209519173
+ ],
+ [
+ -47.383825847283504,
+ -22.22313175196092
+ ],
+ [
+ -47.383850401457025,
+ -22.223138498392338
+ ],
+ [
+ -47.38387844956669,
+ -22.223145616888445
+ ],
+ [
+ -47.38389882711511,
+ -22.223151060023536
+ ],
+ [
+ -47.38392808557071,
+ -22.223159499958594
+ ],
+ [
+ -47.38395374178556,
+ -22.223166168043463
+ ],
+ [
+ -47.38396985027189,
+ -22.223170961545325
+ ],
+ [
+ -47.3839950121145,
+ -22.223178701576305
+ ],
+ [
+ -47.38402161667208,
+ -22.223186858450457
+ ],
+ [
+ -47.38404984843064,
+ -22.223195659069397
+ ],
+ [
+ -47.38408005685101,
+ -22.22320456423999
+ ],
+ [
+ -47.384097349352984,
+ -22.223209717894058
+ ],
+ [
+ -47.38412088660369,
+ -22.223217609829312
+ ],
+ [
+ -47.38415798853956,
+ -22.22322923806056
+ ],
+ [
+ -47.38418144542839,
+ -22.22323603584901
+ ],
+ [
+ -47.38421069701747,
+ -22.22324541696016
+ ],
+ [
+ -47.38421158662848,
+ -22.223245668612368
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "137",
+ "Name": "Curvas",
+ "Length": 180.6520915257908,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "137",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382451471810306,
+ -22.223129826105037
+ ],
+ [
+ -47.38278906405241,
+ -22.223135208220107
+ ],
+ [
+ -47.38286517689447,
+ -22.22313715179304
+ ],
+ [
+ -47.38292874888367,
+ -22.223137615907095
+ ],
+ [
+ -47.38299558975605,
+ -22.22313607850485
+ ],
+ [
+ -47.38305641799985,
+ -22.223133222831258
+ ],
+ [
+ -47.383109207650726,
+ -22.223130479632477
+ ],
+ [
+ -47.38316239279781,
+ -22.223127818683015
+ ],
+ [
+ -47.38321715013097,
+ -22.223124855842222
+ ],
+ [
+ -47.38327118212121,
+ -22.223121963730737
+ ],
+ [
+ -47.38332148103535,
+ -22.223119171922946
+ ],
+ [
+ -47.383365128664174,
+ -22.223117428222025
+ ],
+ [
+ -47.38340886881418,
+ -22.223116741760528
+ ],
+ [
+ -47.383450452340476,
+ -22.22311672765939
+ ],
+ [
+ -47.38348495829201,
+ -22.223117727368557
+ ],
+ [
+ -47.38352179707444,
+ -22.22312038855527
+ ],
+ [
+ -47.38354705217875,
+ -22.223122783715688
+ ],
+ [
+ -47.38357105465334,
+ -22.22312475065147
+ ],
+ [
+ -47.38358617407997,
+ -22.223126323279196
+ ],
+ [
+ -47.38359885920609,
+ -22.223127989703283
+ ],
+ [
+ -47.38361617240713,
+ -22.22313074553514
+ ],
+ [
+ -47.38363481586221,
+ -22.223133915623908
+ ],
+ [
+ -47.38365596231172,
+ -22.223137983059594
+ ],
+ [
+ -47.383682659358236,
+ -22.223143176592824
+ ],
+ [
+ -47.383709354941104,
+ -22.223148328088516
+ ],
+ [
+ -47.38373419913322,
+ -22.223153143995198
+ ],
+ [
+ -47.38375804905077,
+ -22.2231579917598
+ ],
+ [
+ -47.383776504073474,
+ -22.223161855065474
+ ],
+ [
+ -47.38379608623703,
+ -22.22316655015687
+ ],
+ [
+ -47.383814211254865,
+ -22.223170910940507
+ ],
+ [
+ -47.383838488110065,
+ -22.223177581176156
+ ],
+ [
+ -47.383866695516346,
+ -22.22318474010055
+ ],
+ [
+ -47.38388635336875,
+ -22.223189990994083
+ ],
+ [
+ -47.38391576131267,
+ -22.22319847405007
+ ],
+ [
+ -47.38394123030928,
+ -22.223205093476228
+ ],
+ [
+ -47.38395636452152,
+ -22.223209597056997
+ ],
+ [
+ -47.38398132445965,
+ -22.223217274979678
+ ],
+ [
+ -47.38400786693025,
+ -22.22322541283876
+ ],
+ [
+ -47.38403633612388,
+ -22.223234287472216
+ ],
+ [
+ -47.38406682093433,
+ -22.22324327411956
+ ],
+ [
+ -47.3840833023864,
+ -22.223248186057575
+ ],
+ [
+ -47.384106533422006,
+ -22.223255975319752
+ ],
+ [
+ -47.38414454330687,
+ -22.223267888113394
+ ],
+ [
+ -47.38416785399419,
+ -22.22327464353237
+ ],
+ [
+ -47.38418200562145,
+ -22.22327918202097
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "138",
+ "Name": "Curvas",
+ "Length": 180.92694506995352,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "138",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382459041056606,
+ -22.22311640341515
+ ],
+ [
+ -47.38278938792206,
+ -22.223121670014983
+ ],
+ [
+ -47.382865433304715,
+ -22.22312361186601
+ ],
+ [
+ -47.382928626278506,
+ -22.223124073213576
+ ],
+ [
+ -47.38299504386821,
+ -22.223122545547774
+ ],
+ [
+ -47.383055646553494,
+ -22.223119700463847
+ ],
+ [
+ -47.38310841220959,
+ -22.22311695851239
+ ],
+ [
+ -47.38316158069052,
+ -22.22311429839722
+ ],
+ [
+ -47.38321630633276,
+ -22.223111337271632
+ ],
+ [
+ -47.38327033200742,
+ -22.223108445496013
+ ],
+ [
+ -47.38332073650594,
+ -22.22310564782822
+ ],
+ [
+ -47.38336469429626,
+ -22.223103891736866
+ ],
+ [
+ -47.38340874359749,
+ -22.223103200423903
+ ],
+ [
+ -47.38345067592125,
+ -22.22310318620484
+ ],
+ [
+ -47.38348574741225,
+ -22.223104202299155
+ ],
+ [
+ -47.38352309670023,
+ -22.223106900364474
+ ],
+ [
+ -47.38354842673412,
+ -22.223109302631347
+ ],
+ [
+ -47.383572499794234,
+ -22.223111275351595
+ ],
+ [
+ -47.38358799780392,
+ -22.223112887357285
+ ],
+ [
+ -47.383601101101625,
+ -22.223114608716013
+ ],
+ [
+ -47.38361870438473,
+ -22.223117410721898
+ ],
+ [
+ -47.38363759391918,
+ -22.22312062265356
+ ],
+ [
+ -47.383658920834485,
+ -22.22312472480131
+ ],
+ [
+ -47.38368562246905,
+ -22.2231299192273
+ ],
+ [
+ -47.38371230658573,
+ -22.223135068510544
+ ],
+ [
+ -47.3837372324449,
+ -22.223139900242533
+ ],
+ [
+ -47.38376119528216,
+ -22.223144770959546
+ ],
+ [
+ -47.38377991355142,
+ -22.223148689372405
+ ],
+ [
+ -47.3837997132085,
+ -22.223153436611017
+ ],
+ [
+ -47.38381808997438,
+ -22.22315785795908
+ ],
+ [
+ -47.383842459226344,
+ -22.223164553581608
+ ],
+ [
+ -47.38387061353374,
+ -22.223171699029894
+ ],
+ [
+ -47.38389051128486,
+ -22.22317701400396
+ ],
+ [
+ -47.383919869399335,
+ -22.223185482686308
+ ],
+ [
+ -47.383945400802034,
+ -22.22319211833203
+ ],
+ [
+ -47.38396085977237,
+ -22.22319671855318
+ ],
+ [
+ -47.383985887012,
+ -22.223204417178625
+ ],
+ [
+ -47.38401245021863,
+ -22.22321256138865
+ ],
+ [
+ -47.38404084022685,
+ -22.223221411338013
+ ],
+ [
+ -47.38407123290726,
+ -22.22323037082643
+ ],
+ [
+ -47.38408798470934,
+ -22.22323536333648
+ ],
+ [
+ -47.384111317816675,
+ -22.223243186823012
+ ],
+ [
+ -47.38414902505181,
+ -22.223255004762507
+ ],
+ [
+ -47.38417238447299,
+ -22.22326177430465
+ ],
+ [
+ -47.38419185824245,
+ -22.223268019627216
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "139",
+ "Name": "Curvas",
+ "Length": 180.10238442214924,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "139",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38243633331365,
+ -22.223156671484105
+ ],
+ [
+ -47.38278841631334,
+ -22.223162284630327
+ ],
+ [
+ -47.382864664074255,
+ -22.223164231647058
+ ],
+ [
+ -47.382928994094456,
+ -22.223164701294067
+ ],
+ [
+ -47.382996681532454,
+ -22.223163144418884
+ ],
+ [
+ -47.383057960893396,
+ -22.22316026756595
+ ],
+ [
+ -47.38311079853388,
+ -22.22315752187256
+ ],
+ [
+ -47.3831640170133,
+ -22.22315485925448
+ ],
+ [
+ -47.383218837728286,
+ -22.22315189298327
+ ],
+ [
+ -47.383272882375,
+ -22.223149000198656
+ ],
+ [
+ -47.383322970095044,
+ -22.22314622011226
+ ],
+ [
+ -47.38336599740069,
+ -22.22314450119221
+ ],
+ [
+ -47.38340911924803,
+ -22.223143824433663
+ ],
+ [
+ -47.38345000517919,
+ -22.223143810568466
+ ],
+ [
+ -47.38348338005149,
+ -22.223144777507326
+ ],
+ [
+ -47.38351919782249,
+ -22.223147364936843
+ ],
+ [
+ -47.38354430306761,
+ -22.22314974588436
+ ],
+ [
+ -47.38356816437115,
+ -22.22315170125119
+ ],
+ [
+ -47.38358252663146,
+ -22.223153195122954
+ ],
+ [
+ -47.383594375414106,
+ -22.22315475167783
+ ],
+ [
+ -47.38361110845087,
+ -22.223157415161612
+ ],
+ [
+ -47.38362925974706,
+ -22.22316050156456
+ ],
+ [
+ -47.38365004526487,
+ -22.223164499576097
+ ],
+ [
+ -47.38367673313532,
+ -22.223169691323815
+ ],
+ [
+ -47.3837034516506,
+ -22.223174847244383
+ ],
+ [
+ -47.38372813261637,
+ -22.223179631522342
+ ],
+ [
+ -47.38375175658652,
+ -22.223184433360224
+ ],
+ [
+ -47.38376968511603,
+ -22.22318818645153
+ ],
+ [
+ -47.38378883229243,
+ -22.223192777248478
+ ],
+ [
+ -47.383806453936685,
+ -22.223197016936865
+ ],
+ [
+ -47.38383054587565,
+ -22.223203636365103
+ ],
+ [
+ -47.38385885947975,
+ -22.223210822241704
+ ],
+ [
+ -47.383878037534586,
+ -22.223215944974175
+ ],
+ [
+ -47.3839075451374,
+ -22.223224456777423
+ ],
+ [
+ -47.38393288932183,
+ -22.223231043764457
+ ],
+ [
+ -47.38394737401771,
+ -22.223235354064414
+ ],
+ [
+ -47.383972199352804,
+ -22.22324299058154
+ ],
+ [
+ -47.383998700468794,
+ -22.223251115775415
+ ],
+ [
+ -47.38402732791581,
+ -22.223260039740417
+ ],
+ [
+ -47.38405799698637,
+ -22.223269080705613
+ ],
+ [
+ -47.384073937738314,
+ -22.223273831499544
+ ],
+ [
+ -47.38409696463038,
+ -22.223281552312976
+ ],
+ [
+ -47.384135579814846,
+ -22.22329365481493
+ ],
+ [
+ -47.38415879303445,
+ -22.223300381987578
+ ],
+ [
+ -47.38416230037485,
+ -22.22330150680704
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "140",
+ "Name": "Curvas",
+ "Length": 180.37723797042506,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "140",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38244390256265,
+ -22.22314324879469
+ ],
+ [
+ -47.38278874018285,
+ -22.223148746425213
+ ],
+ [
+ -47.38286492048432,
+ -22.223150691720065
+ ],
+ [
+ -47.382928871488986,
+ -22.223151158600594
+ ],
+ [
+ -47.38299613564414,
+ -22.223149611461874
+ ],
+ [
+ -47.38305718944649,
+ -22.22314674519862
+ ],
+ [
+ -47.38311000309216,
+ -22.223144000752548
+ ],
+ [
+ -47.38316320490543,
+ -22.22314133896876
+ ],
+ [
+ -47.3832179939295,
+ -22.223138374412766
+ ],
+ [
+ -47.383272032261374,
+ -22.223135481963983
+ ],
+ [
+ -47.38332222556507,
+ -22.223132696017604
+ ],
+ [
+ -47.383365563032335,
+ -22.223130964707114
+ ],
+ [
+ -47.383408994031036,
+ -22.22313028309709
+ ],
+ [
+ -47.38345022875979,
+ -22.22313026911394
+ ],
+ [
+ -47.38348416917177,
+ -22.223131252437945
+ ],
+ [
+ -47.38352049744852,
+ -22.22313387674606
+ ],
+ [
+ -47.38354567762326,
+ -22.22313626480003
+ ],
+ [
+ -47.38356960951231,
+ -22.223138225951338
+ ],
+ [
+ -47.38358435035584,
+ -22.223139759201082
+ ],
+ [
+ -47.38359661731026,
+ -22.223141370690566
+ ],
+ [
+ -47.38361364042918,
+ -22.223144080348384
+ ],
+ [
+ -47.38363203780484,
+ -22.223147208594252
+ ],
+ [
+ -47.38365300378851,
+ -22.22315124131787
+ ],
+ [
+ -47.38367969624701,
+ -22.223156433958344
+ ],
+ [
+ -47.38370640329609,
+ -22.223161587666457
+ ],
+ [
+ -47.383731165932566,
+ -22.223166387770465
+ ],
+ [
+ -47.38375490281888,
+ -22.223171212560032
+ ],
+ [
+ -47.383773094595014,
+ -22.223175020758532
+ ],
+ [
+ -47.38379245926501,
+ -22.223179663702695
+ ],
+ [
+ -47.38381033266298,
+ -22.223183963957087
+ ],
+ [
+ -47.383834516993176,
+ -22.223190608770654
+ ],
+ [
+ -47.383862777498365,
+ -22.223197781171162
+ ],
+ [
+ -47.383882195451996,
+ -22.22320296798415
+ ],
+ [
+ -47.38391165322537,
+ -22.223211465413776
+ ],
+ [
+ -47.38393705981589,
+ -22.223218068620387
+ ],
+ [
+ -47.38395186926997,
+ -22.223222475560735
+ ],
+ [
+ -47.38397676190661,
+ -22.22323013278064
+ ],
+ [
+ -47.38400328376225,
+ -22.223238264326568
+ ],
+ [
+ -47.38403183202021,
+ -22.22324716360635
+ ],
+ [
+ -47.38406240896071,
+ -22.223256177412615
+ ],
+ [
+ -47.384078620062745,
+ -22.223261008778604
+ ],
+ [
+ -47.38410174902658,
+ -22.223268763816403
+ ],
+ [
+ -47.38414006156121,
+ -22.223280771464182
+ ],
+ [
+ -47.384163323514684,
+ -22.223287512760006
+ ],
+ [
+ -47.38417215299891,
+ -22.22329034441424
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "141",
+ "Name": "Curvas",
+ "Length": 179.5436351456788,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "141",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38242119481161,
+ -22.223183516862157
+ ],
+ [
+ -47.38278776857455,
+ -22.22318936104046
+ ],
+ [
+ -47.38286415125436,
+ -22.22319131150102
+ ],
+ [
+ -47.38292923930589,
+ -22.223191786680946
+ ],
+ [
+ -47.382997773309825,
+ -22.223190210332827
+ ],
+ [
+ -47.383059503788076,
+ -22.223187312300514
+ ],
+ [
+ -47.383112389418166,
+ -22.223184564112476
+ ],
+ [
+ -47.38316564122989,
+ -22.223181899825818
+ ],
+ [
+ -47.38322052532677,
+ -22.223178930124195
+ ],
+ [
+ -47.383274582629966,
+ -22.223176036666445
+ ],
+ [
+ -47.38332445915583,
+ -22.22317326830143
+ ],
+ [
+ -47.38336686613803,
+ -22.223171574162315
+ ],
+ [
+ -47.38340936968249,
+ -22.223170907106738
+ ],
+ [
+ -47.38344955801828,
+ -22.223170893477423
+ ],
+ [
+ -47.38348180181085,
+ -22.223171827646066
+ ],
+ [
+ -47.3835165985701,
+ -22.22317434131837
+ ],
+ [
+ -47.383541553955936,
+ -22.223176708052968
+ ],
+ [
+ -47.383565274088355,
+ -22.22317865185086
+ ],
+ [
+ -47.38357887918203,
+ -22.223180066966723
+ ],
+ [
+ -47.38358989162095,
+ -22.22318151365228
+ ],
+ [
+ -47.383606044493206,
+ -22.223184084788006
+ ],
+ [
+ -47.383623703630306,
+ -22.223187087505128
+ ],
+ [
+ -47.383644128216275,
+ -22.223191016092525
+ ],
+ [
+ -47.383670806910644,
+ -22.22319620605472
+ ],
+ [
+ -47.38369754835837,
+ -22.223201366400136
+ ],
+ [
+ -47.383722066097675,
+ -22.223206119049397
+ ],
+ [
+ -47.38374546412043,
+ -22.223210874960547
+ ],
+ [
+ -47.3837628661565,
+ -22.223214517837437
+ ],
+ [
+ -47.38378157834562,
+ -22.22321900433992
+ ],
+ [
+ -47.38379869661593,
+ -22.223223122933017
+ ],
+ [
+ -47.383822603638734,
+ -22.22322969155385
+ ],
+ [
+ -47.383851023440684,
+ -22.223236904382635
+ ],
+ [
+ -47.383869721697785,
+ -22.223241898954036
+ ],
+ [
+ -47.38389932895954,
+ -22.223250439504536
+ ],
+ [
+ -47.38392454833172,
+ -22.223256994052434
+ ],
+ [
+ -47.38393838351102,
+ -22.22326111107154
+ ],
+ [
+ -47.38396307424302,
+ -22.223268706183138
+ ],
+ [
+ -47.38398953400445,
+ -22.22327681871177
+ ],
+ [
+ -47.38401831970485,
+ -22.22328579200832
+ ],
+ [
+ -47.38404917303563,
+ -22.223294887291402
+ ],
+ [
+ -47.38406457308721,
+ -22.22329947694118
+ ],
+ [
+ -47.384087395835714,
+ -22.22330712930588
+ ],
+ [
+ -47.38412661631997,
+ -22.22331942151619
+ ],
+ [
+ -47.38414244009008,
+ -22.2233240072325
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "142",
+ "Name": "Curvas",
+ "Length": 179.82523159411446,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "142",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3824287640633,
+ -22.223170094173252
+ ],
+ [
+ -47.38278809244392,
+ -22.223175822835405
+ ],
+ [
+ -47.38286440766427,
+ -22.223177771574054
+ ],
+ [
+ -47.3829291167001,
+ -22.22317824398752
+ ],
+ [
+ -47.38299722742103,
+ -22.223176677375882
+ ],
+ [
+ -47.3830587323406,
+ -22.223173789933252
+ ],
+ [
+ -47.38311159397588,
+ -22.223171042992536
+ ],
+ [
+ -47.38316482912144,
+ -22.223168379540176
+ ],
+ [
+ -47.383219681527386,
+ -22.223165411553758
+ ],
+ [
+ -47.3832737325165,
+ -22.22316251843179
+ ],
+ [
+ -47.38332371462531,
+ -22.22315974420686
+ ],
+ [
+ -47.383366431769254,
+ -22.22315803767728
+ ],
+ [
+ -47.38340924446518,
+ -22.223157365770202
+ ],
+ [
+ -47.3834497815987,
+ -22.223157352022938
+ ],
+ [
+ -47.38348259093117,
+ -22.223158302576707
+ ],
+ [
+ -47.38351789819637,
+ -22.223160853127606
+ ],
+ [
+ -47.38354292851185,
+ -22.22316322696866
+ ],
+ [
+ -47.38356671922983,
+ -22.223165176551014
+ ],
+ [
+ -47.383580702906855,
+ -22.22316663104485
+ ],
+ [
+ -47.38359213351769,
+ -22.22316813266505
+ ],
+ [
+ -47.383608576472234,
+ -22.223170749974834
+ ],
+ [
+ -47.38362648168889,
+ -22.223173794534862
+ ],
+ [
+ -47.383647086740794,
+ -22.223177757834346
+ ],
+ [
+ -47.3836737700232,
+ -22.22318294868929
+ ],
+ [
+ -47.38370050000471,
+ -22.223188106822253
+ ],
+ [
+ -47.383725099418434,
+ -22.223192875298327
+ ],
+ [
+ -47.38374861035373,
+ -22.223197654160412
+ ],
+ [
+ -47.383766275636525,
+ -22.223201352144503
+ ],
+ [
+ -47.383785205319306,
+ -22.223205890794212
+ ],
+ [
+ -47.38380257534934,
+ -22.223210069954952
+ ],
+ [
+ -47.38382657475751,
+ -22.223216663959505
+ ],
+ [
+ -47.38385494146053,
+ -22.22322386331218
+ ],
+ [
+ -47.383873879616516,
+ -22.22322892196414
+ ],
+ [
+ -47.38390343704879,
+ -22.223237448141006
+ ],
+ [
+ -47.3839287188271,
+ -22.223244018908467
+ ],
+ [
+ -47.38394287876472,
+ -22.223248232568007
+ ],
+ [
+ -47.38396763679829,
+ -22.223255848382383
+ ],
+ [
+ -47.383994117302976,
+ -22.223263967264195
+ ],
+ [
+ -47.38402282381069,
+ -22.2232729158744
+ ],
+ [
+ -47.384053585011365,
+ -22.22328198399854
+ ],
+ [
+ -47.38406925541313,
+ -22.2232866542204
+ ],
+ [
+ -47.38409218023344,
+ -22.22329434080947
+ ],
+ [
+ -47.38413109806776,
+ -22.223306538165584
+ ],
+ [
+ -47.38415240832725,
+ -22.223312713861944
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "143",
+ "Name": "Curvas",
+ "Length": 178.980442236301,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "143",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38240605630416,
+ -22.223210362239264
+ ],
+ [
+ -47.382787120836056,
+ -22.223216437450557
+ ],
+ [
+ -47.38286363843482,
+ -22.2232183913549
+ ],
+ [
+ -47.38292948451796,
+ -22.223218872067747
+ ],
+ [
+ -47.382998865088126,
+ -22.223217276246636
+ ],
+ [
+ -47.38306104668386,
+ -22.223214357034927
+ ],
+ [
+ -47.383113980303584,
+ -22.223211606352237
+ ],
+ [
+ -47.38316726544765,
+ -22.22320894039698
+ ],
+ [
+ -47.38322221292642,
+ -22.22320596726495
+ ],
+ [
+ -47.383276282886115,
+ -22.22320307313404
+ ],
+ [
+ -47.383325948217696,
+ -22.223200316490455
+ ],
+ [
+ -47.38336773487624,
+ -22.223198647132268
+ ],
+ [
+ -47.38340962011759,
+ -22.223197989779703
+ ],
+ [
+ -47.38344911085771,
+ -22.223197976386345
+ ],
+ [
+ -47.38348022357015,
+ -22.223198877784764
+ ],
+ [
+ -47.3835139993172,
+ -22.22320131769987
+ ],
+ [
+ -47.383538804843724,
+ -22.223203670221526
+ ],
+ [
+ -47.38356238380499,
+ -22.22320560245048
+ ],
+ [
+ -47.38357523173175,
+ -22.223206938810414
+ ],
+ [
+ -47.38358540782658,
+ -22.22320827562668
+ ],
+ [
+ -47.38360098053411,
+ -22.223210754414346
+ ],
+ [
+ -47.383618147511946,
+ -22.22321367344561
+ ],
+ [
+ -47.38363821116595,
+ -22.22321753260884
+ ],
+ [
+ -47.38366488068424,
+ -22.223222720785525
+ ],
+ [
+ -47.38369164506439,
+ -22.223227885555836
+ ],
+ [
+ -47.38371599957717,
+ -22.22323260657633
+ ],
+ [
+ -47.38373917165245,
+ -22.223237316560752
+ ],
+ [
+ -47.38375604719493,
+ -22.223240849223174
+ ],
+ [
+ -47.38377432439654,
+ -22.22324523143118
+ ],
+ [
+ -47.38379093929256,
+ -22.223249228928943
+ ],
+ [
+ -47.383814661399335,
+ -22.223255746742378
+ ],
+ [
+ -47.383843187399194,
+ -22.2232629865234
+ ],
+ [
+ -47.38386140585837,
+ -22.223267852933652
+ ],
+ [
+ -47.3838911127791,
+ -22.22327642223147
+ ],
+ [
+ -47.38391620733899,
+ -22.223282944340188
+ ],
+ [
+ -47.383929393001495,
+ -22.223286868078407
+ ],
+ [
+ -47.38395394913033,
+ -22.223294421784413
+ ],
+ [
+ -47.38398036753715,
+ -22.223302521647817
+ ],
+ [
+ -47.38400931149101,
+ -22.223311544275948
+ ],
+ [
+ -47.38404034908206,
+ -22.2233206938769
+ ],
+ [
+ -47.384055208433104,
+ -22.2233251223825
+ ],
+ [
+ -47.38407782703798,
+ -22.223332706298446
+ ],
+ [
+ -47.38411765282224,
+ -22.22334518821714
+ ],
+ [
+ -47.38412250361106,
+ -22.223346593972135
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "144",
+ "Name": "Curvas",
+ "Length": 179.2620386878689,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "144",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38241362555856,
+ -22.223196939550828
+ ],
+ [
+ -47.382787444705286,
+ -22.223202899245507
+ ],
+ [
+ -47.382863894844554,
+ -22.223204851427976
+ ],
+ [
+ -47.382929361911856,
+ -22.223205329374363
+ ],
+ [
+ -47.38299831919886,
+ -22.223203743289755
+ ],
+ [
+ -47.38306027523583,
+ -22.22320083466774
+ ],
+ [
+ -47.38311318486074,
+ -22.223198085232376
+ ],
+ [
+ -47.38316645333864,
+ -22.22319542011141
+ ],
+ [
+ -47.38322136912646,
+ -22.223192448694604
+ ],
+ [
+ -47.38327543277281,
+ -22.223189554899438
+ ],
+ [
+ -47.383325203686624,
+ -22.223186792395946
+ ],
+ [
+ -47.383367300507025,
+ -22.223185110647293
+ ],
+ [
+ -47.38340949489997,
+ -22.22318444844323
+ ],
+ [
+ -47.383449334437955,
+ -22.2231844349319
+ ],
+ [
+ -47.38348101269051,
+ -22.22318535271543
+ ],
+ [
+ -47.383515298943706,
+ -22.223187829509126
+ ],
+ [
+ -47.3835401793999,
+ -22.223190189137238
+ ],
+ [
+ -47.38356382894677,
+ -22.22319212715066
+ ],
+ [
+ -47.383577055456996,
+ -22.223193502888567
+ ],
+ [
+ -47.383587649723914,
+ -22.223194894639484
+ ],
+ [
+ -47.383603512513844,
+ -22.223197419601203
+ ],
+ [
+ -47.38362092557134,
+ -22.223200380475387
+ ],
+ [
+ -47.38364116969134,
+ -22.2232042743507
+ ],
+ [
+ -47.383667843797674,
+ -22.223209463420154
+ ],
+ [
+ -47.38369459671161,
+ -22.22321462597801
+ ],
+ [
+ -47.38371903290252,
+ -22.22321936282607
+ ],
+ [
+ -47.38374231788668,
+ -22.22322409576067
+ ],
+ [
+ -47.38375945667599,
+ -22.22322768353032
+ ],
+ [
+ -47.383777951371364,
+ -22.223232117885573
+ ],
+ [
+ -47.38379481803344,
+ -22.22323617595268
+ ],
+ [
+ -47.38381863251934,
+ -22.223242719148136
+ ],
+ [
+ -47.38384710542025,
+ -22.223249945453045
+ ],
+ [
+ -47.38386556377841,
+ -22.22325487594386
+ ],
+ [
+ -47.38389522086965,
+ -22.223263430868045
+ ],
+ [
+ -47.38392037783568,
+ -22.223269969196327
+ ],
+ [
+ -47.38393388825663,
+ -22.22327398957502
+ ],
+ [
+ -47.38395851168704,
+ -22.2232815639838
+ ],
+ [
+ -47.38398495084077,
+ -22.223289670201513
+ ],
+ [
+ -47.38401381559828,
+ -22.22329866814217
+ ],
+ [
+ -47.384044761059194,
+ -22.223307790584172
+ ],
+ [
+ -47.384059890760525,
+ -22.223312299661877
+ ],
+ [
+ -47.384082611437236,
+ -22.223319917802197
+ ],
+ [
+ -47.38412213457146,
+ -22.22333230486668
+ ],
+ [
+ -47.384132471851366,
+ -22.22333530060255
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "145",
+ "Name": "Curvas",
+ "Length": 177.72585265280304,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "145",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38239769076203,
+ -22.22323731560334
+ ],
+ [
+ -47.38278647309781,
+ -22.22324351386057
+ ],
+ [
+ -47.38286312561559,
+ -22.223245471208703
+ ],
+ [
+ -47.38292972973062,
+ -22.223245957454445
+ ],
+ [
+ -47.382999956867394,
+ -22.223244342160303
+ ],
+ [
+ -47.38306258958079,
+ -22.22324140176917
+ ],
+ [
+ -47.383115571190125,
+ -22.22323864859185
+ ],
+ [
+ -47.383168889666564,
+ -22.223235980967992
+ ],
+ [
+ -47.38322390052726,
+ -22.22323300440553
+ ],
+ [
+ -47.383277983143444,
+ -22.223230109601506
+ ],
+ [
+ -47.383327437280684,
+ -22.223227364679325
+ ],
+ [
+ -47.38336860361533,
+ -22.223225720102146
+ ],
+ [
+ -47.38340987055332,
+ -22.223225072452596
+ ],
+ [
+ -47.38344866369749,
+ -22.223225059295164
+ ],
+ [
+ -47.38347864532939,
+ -22.223225927923398
+ ],
+ [
+ -47.38351140006384,
+ -22.223228294081338
+ ],
+ [
+ -47.38353605573098,
+ -22.223230632390074
+ ],
+ [
+ -47.38355949352103,
+ -22.223232553050078
+ ],
+ [
+ -47.38357158428057,
+ -22.223233810654065
+ ],
+ [
+ -47.38358092403099,
+ -22.223235037601043
+ ],
+ [
+ -47.38359591657359,
+ -22.22323742404061
+ ],
+ [
+ -47.383612591391994,
+ -22.223240259386
+ ],
+ [
+ -47.38363229411388,
+ -22.223244049125043
+ ],
+ [
+ -47.383658954456074,
+ -22.223249235516203
+ ],
+ [
+ -47.38368574176865,
+ -22.223254404711405
+ ],
+ [
+ -47.38370993305485,
+ -22.223259094103174
+ ],
+ [
+ -47.38373287918257,
+ -22.22326375816082
+ ],
+ [
+ -47.38374922823123,
+ -22.223267180608808
+ ],
+ [
+ -47.383767070445245,
+ -22.22327145852231
+ ],
+ [
+ -47.383783181966606,
+ -22.2232753349246
+ ],
+ [
+ -47.38380671915744,
+ -22.223281801930707
+ ],
+ [
+ -47.38383535135525,
+ -22.22328906866393
+ ],
+ [
+ -47.38385309001633,
+ -22.22329380691304
+ ],
+ [
+ -47.383882896596084,
+ -22.223302404958144
+ ],
+ [
+ -47.383907866343634,
+ -22.223308894627714
+ ],
+ [
+ -47.38392040248908,
+ -22.22331262508499
+ ],
+ [
+ -47.38394482401474,
+ -22.223320137385397
+ ],
+ [
+ -47.38397120106693,
+ -22.22332822458358
+ ],
+ [
+ -47.384000303274334,
+ -22.223337296543317
+ ],
+ [
+ -47.38403152512571,
+ -22.22334650046215
+ ],
+ [
+ -47.384045843776036,
+ -22.22335076782352
+ ],
+ [
+ -47.38406825823718,
+ -22.223358283290697
+ ],
+ [
+ -47.384102667078864,
+ -22.223369067469505
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "146",
+ "Name": "Curvas",
+ "Length": 178.69945662728995,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "146",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38239848704843,
+ -22.22322378492742
+ ],
+ [
+ -47.3827867969669,
+ -22.223229975655574
+ ],
+ [
+ -47.382863382025164,
+ -22.223231931281802
+ ],
+ [
+ -47.382929607124204,
+ -22.22323241476111
+ ],
+ [
+ -47.382999410977654,
+ -22.22323080920348
+ ],
+ [
+ -47.38306181813219,
+ -22.223227879402064
+ ],
+ [
+ -47.38311477574671,
+ -22.223225127472062
+ ],
+ [
+ -47.38316807755697,
+ -22.22322246068251
+ ],
+ [
+ -47.3832230567267,
+ -22.223219485835262
+ ],
+ [
+ -47.3832771330303,
+ -22.22321659136693
+ ],
+ [
+ -47.38332669274906,
+ -22.223213840584894
+ ],
+ [
+ -47.383368169245685,
+ -22.223212183617225
+ ],
+ [
+ -47.383409745335385,
+ -22.22321153111615
+ ],
+ [
+ -47.38344888727756,
+ -22.22321151784075
+ ],
+ [
+ -47.3834794344498,
+ -22.223212402854088
+ ],
+ [
+ -47.383512699690584,
+ -22.223214805890606
+ ],
+ [
+ -47.383537430287426,
+ -22.223217151305803
+ ],
+ [
+ -47.38356093866308,
+ -22.22321907775028
+ ],
+ [
+ -47.383573408006264,
+ -22.22322037473224
+ ],
+ [
+ -47.38358316592893,
+ -22.223221656613873
+ ],
+ [
+ -47.383598448554025,
+ -22.223224089227504
+ ],
+ [
+ -47.38361536945217,
+ -22.22322696641582
+ ],
+ [
+ -47.38363525264014,
+ -22.223230790866957
+ ],
+ [
+ -47.38366191757038,
+ -22.223235978150882
+ ],
+ [
+ -47.383688693416744,
+ -22.22324114513362
+ ],
+ [
+ -47.38371296638485,
+ -22.223245850353713
+ ],
+ [
+ -47.383736025417754,
+ -22.223250537360794
+ ],
+ [
+ -47.38375263771334,
+ -22.22325401491602
+ ],
+ [
+ -47.38377069742118,
+ -22.223258344976767
+ ],
+ [
+ -47.38378706071532,
+ -22.223262281950255
+ ],
+ [
+ -47.38381069027869,
+ -22.223268774336567
+ ],
+ [
+ -47.383839269377546,
+ -22.223276027593677
+ ],
+ [
+ -47.383857247937684,
+ -22.223280829923375
+ ],
+ [
+ -47.383887004687935,
+ -22.223289413594838
+ ],
+ [
+ -47.38391203684164,
+ -22.223295919483967
+ ],
+ [
+ -47.38392489774564,
+ -22.223299746581734
+ ],
+ [
+ -47.3839493865729,
+ -22.22330727958493
+ ],
+ [
+ -47.38397578437566,
+ -22.223315373138586
+ ],
+ [
+ -47.38400480738304,
+ -22.223324420409675
+ ],
+ [
+ -47.38403593710424,
+ -22.223333597169557
+ ],
+ [
+ -47.38405052610495,
+ -22.22333794510305
+ ],
+ [
+ -47.384073042637965,
+ -22.223345494794618
+ ],
+ [
+ -47.38411254574791,
+ -22.223357875582817
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "147",
+ "Name": "Curvas",
+ "Length": 172.25490566535325,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "147",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38243032575988,
+ -22.223264922673646
+ ],
+ [
+ -47.382785825359846,
+ -22.223270590270523
+ ],
+ [
+ -47.3828626127967,
+ -22.223272551062472
+ ],
+ [
+ -47.38292997494391,
+ -22.223273042841065
+ ],
+ [
+ -47.383001048647586,
+ -22.223271408073845
+ ],
+ [
+ -47.38306413247882,
+ -22.223268446503283
+ ],
+ [
+ -47.383117162077845,
+ -22.223265690831308
+ ],
+ [
+ -47.383170513886604,
+ -22.223263021538866
+ ],
+ [
+ -47.38322558812927,
+ -22.223260041545977
+ ],
+ [
+ -47.383279683401945,
+ -22.22325714606881
+ ],
+ [
+ -47.38332892634477,
+ -22.22325441286803
+ ],
+ [
+ -47.38336947235527,
+ -22.22325279307187
+ ],
+ [
+ -47.38341012098967,
+ -22.223252155125362
+ ],
+ [
+ -47.38344821653764,
+ -22.223252142203933
+ ],
+ [
+ -47.38347706708852,
+ -22.22325297806199
+ ],
+ [
+ -47.38350880081001,
+ -22.223255270462747
+ ],
+ [
+ -47.3835333066177,
+ -22.223257594558575
+ ],
+ [
+ -47.383556603236485,
+ -22.22325950364964
+ ],
+ [
+ -47.38356793682852,
+ -22.22326068249767
+ ],
+ [
+ -47.38357644023421,
+ -22.22326179957531
+ ],
+ [
+ -47.383590852611654,
+ -22.223264093666796
+ ],
+ [
+ -47.38360703527044,
+ -22.223266845326307
+ ],
+ [
+ -47.383626377060054,
+ -22.223270565641144
+ ],
+ [
+ -47.383653028226156,
+ -22.2232757502468
+ ],
+ [
+ -47.3836798384712,
+ -22.22328092386688
+ ],
+ [
+ -47.3837038665307,
+ -22.223285581629906
+ ],
+ [
+ -47.38372658671082,
+ -22.223290199760818
+ ],
+ [
+ -47.38374240926548,
+ -22.22329351199428
+ ],
+ [
+ -47.38375981649171,
+ -22.22329768561324
+ ],
+ [
+ -47.383775424637975,
+ -22.223301440919997
+ ],
+ [
+ -47.38379877691308,
+ -22.223307857118854
+ ],
+ [
+ -47.38382751530885,
+ -22.22331515080431
+ ],
+ [
+ -47.38384477417166,
+ -22.223319760892213
+ ],
+ [
+ -47.38387468041046,
+ -22.223328387684607
+ ],
+ [
+ -47.38389952534565,
+ -22.22333484491499
+ ],
+ [
+ -47.38391141197383,
+ -22.22333838209128
+ ],
+ [
+ -47.38393569889623,
+ -22.223345852986103
+ ],
+ [
+ -47.383962034593786,
+ -22.22335392751902
+ ],
+ [
+ -47.383991295054784,
+ -22.223363048810363
+ ],
+ [
+ -47.38402270116655,
+ -22.223372307047125
+ ],
+ [
+ -47.38403647911594,
+ -22.223376413264223
+ ],
+ [
+ -47.384058689433346,
+ -22.223383860282585
+ ],
+ [
+ -47.384082909736144,
+ -22.22339145124144
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "148",
+ "Name": "Curvas",
+ "Length": 175.76872940811222,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "148",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38240644781408,
+ -22.22325099859683
+ ],
+ [
+ -47.3827861492288,
+ -22.223257052065556
+ ],
+ [
+ -47.38286286920611,
+ -22.223259011135607
+ ],
+ [
+ -47.3829298523372,
+ -22.223259500147773
+ ],
+ [
+ -47.38300050275737,
+ -22.223257875117092
+ ],
+ [
+ -47.38306336102968,
+ -22.22325492413625
+ ],
+ [
+ -47.38311636663386,
+ -22.223252169711596
+ ],
+ [
+ -47.38316970177644,
+ -22.223249501253452
+ ],
+ [
+ -47.383224744328125,
+ -22.22324652297578
+ ],
+ [
+ -47.38327883328896,
+ -22.223243627834268
+ ],
+ [
+ -47.38332818181259,
+ -22.22324088877369
+ ],
+ [
+ -47.3833690379852,
+ -22.223239256587004
+ ],
+ [
+ -47.38340999577143,
+ -22.223238613788983
+ ],
+ [
+ -47.383448440117526,
+ -22.22323860074955
+ ],
+ [
+ -47.38347785620896,
+ -22.223239452992697
+ ],
+ [
+ -47.38351010043699,
+ -22.223241782272037
+ ],
+ [
+ -47.38353468117442,
+ -22.223244113474323
+ ],
+ [
+ -47.38355804837883,
+ -22.22324602834985
+ ],
+ [
+ -47.38356976055464,
+ -22.223247246575866
+ ],
+ [
+ -47.38357868213275,
+ -22.223248418588177
+ ],
+ [
+ -47.38359338459282,
+ -22.22325075885372
+ ],
+ [
+ -47.38360981333142,
+ -22.223253552356173
+ ],
+ [
+ -47.38362933558719,
+ -22.223257307383104
+ ],
+ [
+ -47.383655991341335,
+ -22.223262492881524
+ ],
+ [
+ -47.38368279012016,
+ -22.223267664289146
+ ],
+ [
+ -47.383706899865416,
+ -22.22327233788128
+ ],
+ [
+ -47.38372973294693,
+ -22.223276978960854
+ ],
+ [
+ -47.383745818748615,
+ -22.223280346301568
+ ],
+ [
+ -47.38376344346876,
+ -22.22328457206778
+ ],
+ [
+ -47.38377930339498,
+ -22.223288387947694
+ ],
+ [
+ -47.383802748035585,
+ -22.22329482952482
+ ],
+ [
+ -47.383831433332354,
+ -22.223302109734153
+ ],
+ [
+ -47.383848932094324,
+ -22.223306783902668
+ ],
+ [
+ -47.38387878850359,
+ -22.223315396321407
+ ],
+ [
+ -47.38390369584498,
+ -22.22332186977138
+ ],
+ [
+ -47.38391590723181,
+ -22.223325503588168
+ ],
+ [
+ -47.38394026145585,
+ -22.223332995185785
+ ],
+ [
+ -47.38396661790763,
+ -22.223341076075315
+ ],
+ [
+ -47.38399579916492,
+ -22.223350172676867
+ ],
+ [
+ -47.38402711314647,
+ -22.223359403754667
+ ],
+ [
+ -47.384041161446355,
+ -22.22336359054391
+ ],
+ [
+ -47.38406347383565,
+ -22.223371071786676
+ ],
+ [
+ -47.384092788408275,
+ -22.223380259355707
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "149",
+ "Name": "Curvas",
+ "Length": 153.21411098599486,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "149",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38259477048271,
+ -22.22329463119077
+ ],
+ [
+ -47.382785177622175,
+ -22.223297666680416
+ ],
+ [
+ -47.38286209997814,
+ -22.22329963091614
+ ],
+ [
+ -47.38293022015784,
+ -22.22330012822758
+ ],
+ [
+ -47.383002140428744,
+ -22.22329847398729
+ ],
+ [
+ -47.38306567537798,
+ -22.223295491237234
+ ],
+ [
+ -47.38311875296666,
+ -22.223292733070608
+ ],
+ [
+ -47.38317213810783,
+ -22.223290062109577
+ ],
+ [
+ -47.383227275732445,
+ -22.223287078686234
+ ],
+ [
+ -47.38328138366163,
+ -22.22328418253595
+ ],
+ [
+ -47.38333041540993,
+ -22.223281461056636
+ ],
+ [
+ -47.383370341096075,
+ -22.2232798660415
+ ],
+ [
+ -47.383410371426635,
+ -22.22327923779807
+ ],
+ [
+ -47.38344776937815,
+ -22.223279225112634
+ ],
+ [
+ -47.38347548884761,
+ -22.223280028200545
+ ],
+ [
+ -47.38350620155572,
+ -22.223282246844143
+ ],
+ [
+ -47.3835305575039,
+ -22.223284556727037
+ ],
+ [
+ -47.38355371295137,
+ -22.22328645424916
+ ],
+ [
+ -47.3835642893756,
+ -22.22328755434123
+ ],
+ [
+ -47.38357195643623,
+ -22.223288561549598
+ ],
+ [
+ -47.38358578864832,
+ -22.223290763292926
+ ],
+ [
+ -47.383601479147245,
+ -22.22329343126654
+ ],
+ [
+ -47.38362046000451,
+ -22.223297082157167
+ ],
+ [
+ -47.38364710199451,
+ -22.2233022649773
+ ],
+ [
+ -47.38367393517201,
+ -22.223307443022257
+ ],
+ [
+ -47.38369780000475,
+ -22.223312069156524
+ ],
+ [
+ -47.38372029423718,
+ -22.223316641360675
+ ],
+ [
+ -47.38373559029763,
+ -22.22331984337961
+ ],
+ [
+ -47.383752562535925,
+ -22.223323912704036
+ ],
+ [
+ -47.38376766730672,
+ -22.22332754691515
+ ],
+ [
+ -47.38379083466623,
+ -22.223333912306757
+ ],
+ [
+ -47.383819679259986,
+ -22.223341232944453
+ ],
+ [
+ -47.3838364583244,
+ -22.223345714871144
+ ],
+ [
+ -47.383866464222265,
+ -22.223354370410853
+ ],
+ [
+ -47.38389118434503,
+ -22.223360795202048
+ ],
+ [
+ -47.38390242145571,
+ -22.223364139097303
+ ],
+ [
+ -47.38392657377483,
+ -22.22337156858654
+ ],
+ [
+ -47.383952868117696,
+ -22.223379630454176
+ ],
+ [
+ -47.38398228683236,
+ -22.223388801077142
+ ],
+ [
+ -47.38401387720457,
+ -22.22339811363183
+ ],
+ [
+ -47.3840271144529,
+ -22.22340205870463
+ ],
+ [
+ -47.384049120626415,
+ -22.22340943727417
+ ],
+ [
+ -47.38406315238726,
+ -22.22341383501148
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "150",
+ "Name": "Curvas",
+ "Length": 158.4857591121678,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "150",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38255381801973,
+ -22.22328043492308
+ ],
+ [
+ -47.382785501490986,
+ -22.223284128475484
+ ],
+ [
+ -47.382862356387385,
+ -22.22328609098931
+ ],
+ [
+ -47.3829300975508,
+ -22.223286585534332
+ ],
+ [
+ -47.38300159453806,
+ -22.22328494103059
+ ],
+ [
+ -47.38306490392826,
+ -22.223281968870275
+ ],
+ [
+ -47.38311795752211,
+ -22.223279211950974
+ ],
+ [
+ -47.38317132599708,
+ -22.22327654182424
+ ],
+ [
+ -47.38322643193071,
+ -22.223273560116116
+ ],
+ [
+ -47.38328053354881,
+ -22.223270664301438
+ ],
+ [
+ -47.3833296708772,
+ -22.223267936962355
+ ],
+ [
+ -47.38336990672558,
+ -22.223266329556694
+ ],
+ [
+ -47.38341024620808,
+ -22.223265696461738
+ ],
+ [
+ -47.383447992957855,
+ -22.223265683658287
+ ],
+ [
+ -47.38347627796809,
+ -22.223266503131278
+ ],
+ [
+ -47.38350750118294,
+ -22.223268758653447
+ ],
+ [
+ -47.38353193206087,
+ -22.223271075642806
+ ],
+ [
+ -47.383555158094005,
+ -22.22327297894939
+ ],
+ [
+ -47.3835661131022,
+ -22.223274118419457
+ ],
+ [
+ -47.383574198335396,
+ -22.223275180562485
+ ],
+ [
+ -47.38358832063017,
+ -22.223277428479875
+ ],
+ [
+ -47.383604257209036,
+ -22.22328013829645
+ ],
+ [
+ -47.3836234185325,
+ -22.22328382389918
+ ],
+ [
+ -47.38365006511057,
+ -22.223289007612074
+ ],
+ [
+ -47.38367688682184,
+ -22.223294183444573
+ ],
+ [
+ -47.383700833344214,
+ -22.22329882540872
+ ],
+ [
+ -47.38372344047424,
+ -22.223303420560768
+ ],
+ [
+ -47.38373899978181,
+ -22.22330667768697
+ ],
+ [
+ -47.3837561895141,
+ -22.223310799158675
+ ],
+ [
+ -47.38377154607245,
+ -22.223314493945008
+ ],
+ [
+ -47.383794805789975,
+ -22.22332088471282
+ ],
+ [
+ -47.38382359728473,
+ -22.223328191874394
+ ],
+ [
+ -47.38384061624838,
+ -22.22333273788171
+ ],
+ [
+ -47.383870572316695,
+ -22.223341379047767
+ ],
+ [
+ -47.38389535484568,
+ -22.22334782005853
+ ],
+ [
+ -47.383906916715134,
+ -22.223351260594335
+ ],
+ [
+ -47.38393113633592,
+ -22.223358710786368
+ ],
+ [
+ -47.38395745143666,
+ -22.22336677901176
+ ],
+ [
+ -47.38398679094393,
+ -22.223375924943788
+ ],
+ [
+ -47.38401828918591,
+ -22.223385210339504
+ ],
+ [
+ -47.384031796784804,
+ -22.223389235984474
+ ],
+ [
+ -47.38405390503026,
+ -22.223396648778415
+ ],
+ [
+ -47.38407303106248,
+ -22.2234026431267
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "151",
+ "Name": "Curvas",
+ "Length": 140.4818755704061,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "151",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38269793753724,
+ -22.223323362655513
+ ],
+ [
+ -47.38278452988479,
+ -22.22332474309025
+ ],
+ [
+ -47.38286158715995,
+ -22.223326710769765
+ ],
+ [
+ -47.3829304653724,
+ -22.223327213613995
+ ],
+ [
+ -47.38300323221084,
+ -22.22332553990058
+ ],
+ [
+ -47.38306721827823,
+ -22.223322535971043
+ ],
+ [
+ -47.38312034385663,
+ -22.223319775309776
+ ],
+ [
+ -47.38317376233017,
+ -22.22331710268013
+ ],
+ [
+ -47.3832289633368,
+ -22.223314115826373
+ ],
+ [
+ -47.3832830839225,
+ -22.22331121900293
+ ],
+ [
+ -47.383331904476194,
+ -22.22330850924506
+ ],
+ [
+ -47.38337120983774,
+ -22.223306939011024
+ ],
+ [
+ -47.38341062186424,
+ -22.223306320470666
+ ],
+ [
+ -47.38344732221902,
+ -22.22330630802128
+ ],
+ [
+ -47.38347391060656,
+ -22.223307078339076
+ ],
+ [
+ -47.38350360230095,
+ -22.223309223225492
+ ],
+ [
+ -47.38352780838956,
+ -22.223311518895454
+ ],
+ [
+ -47.383550822665626,
+ -22.223313404848632
+ ],
+ [
+ -47.383560641921775,
+ -22.223314426184796
+ ],
+ [
+ -47.38356747263707,
+ -22.223315323523774
+ ],
+ [
+ -47.38358072468353,
+ -22.223317432918986
+ ],
+ [
+ -47.38359592302246,
+ -22.22332001720669
+ ],
+ [
+ -47.38361454294721,
+ -22.223323598673097
+ ],
+ [
+ -47.38364117576111,
+ -22.2233287797077
+ ],
+ [
+ -47.383668031871096,
+ -22.223333962177538
+ ],
+ [
+ -47.38369173347693,
+ -22.223338556683053
+ ],
+ [
+ -47.383714001761675,
+ -22.223343082960422
+ ],
+ [
+ -47.38372877132774,
+ -22.223346174764817
+ ],
+ [
+ -47.383745308577915,
+ -22.223350139794643
+ ],
+ [
+ -47.38375990997278,
+ -22.223353652910045
+ ],
+ [
+ -47.38378289241686,
+ -22.223359967494485
+ ],
+ [
+ -47.383811843208676,
+ -22.223367315084413
+ ],
+ [
+ -47.383828142474485,
+ -22.22337166884985
+ ],
+ [
+ -47.38385824803148,
+ -22.223380353136864
+ ],
+ [
+ -47.38388284334177,
+ -22.223386745488867
+ ],
+ [
+ -47.383893430934734,
+ -22.223389896103033
+ ],
+ [
+ -47.383917448650536,
+ -22.223397284186632
+ ],
+ [
+ -47.3839437016387,
+ -22.223405333389042
+ ],
+ [
+ -47.38397327860707,
+ -22.22341455334365
+ ],
+ [
+ -47.38400505323982,
+ -22.223423920216266
+ ],
+ [
+ -47.38401774978685,
+ -22.2234277041447
+ ],
+ [
+ -47.38403955181644,
+ -22.223435014265416
+ ],
+ [
+ -47.384043395032236,
+ -22.223436218779597
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "152",
+ "Name": "Curvas",
+ "Length": 145.80903596515455,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "152",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.382656445840844,
+ -22.22330915781916
+ ],
+ [
+ -47.382784853753456,
+ -22.223311204885345
+ ],
+ [
+ -47.382861843569025,
+ -22.223313170842967
+ ],
+ [
+ -47.38293034276505,
+ -22.223313670920795
+ ],
+ [
+ -47.38300268631967,
+ -22.223312006943946
+ ],
+ [
+ -47.38306644682796,
+ -22.22330901360416
+ ],
+ [
+ -47.38311954841151,
+ -22.223306254190213
+ ],
+ [
+ -47.38317295021886,
+ -22.22330358239487
+ ],
+ [
+ -47.38322811953448,
+ -22.223300597256337
+ ],
+ [
+ -47.383282233809844,
+ -22.223297700768477
+ ],
+ [
+ -47.38333115994292,
+ -22.22329498515086
+ ],
+ [
+ -47.383370775466794,
+ -22.22329340252628
+ ],
+ [
+ -47.38341049664537,
+ -22.22329277913436
+ ],
+ [
+ -47.383447545798546,
+ -22.223292766566967
+ ],
+ [
+ -47.38347469972708,
+ -22.22329355326983
+ ],
+ [
+ -47.3835049019284,
+ -22.223295735034817
+ ],
+ [
+ -47.3835291829468,
+ -22.223298037811237
+ ],
+ [
+ -47.38355226780858,
+ -22.223299929548876
+ ],
+ [
+ -47.38356246564881,
+ -22.223300990263024
+ ],
+ [
+ -47.383569714536804,
+ -22.223301942536686
+ ],
+ [
+ -47.38358325666611,
+ -22.22330409810598
+ ],
+ [
+ -47.383598701085056,
+ -22.223306724236636
+ ],
+ [
+ -47.383617501476074,
+ -22.223310340415157
+ ],
+ [
+ -47.38364413887803,
+ -22.22331552234252
+ ],
+ [
+ -47.38367098352178,
+ -22.2233207025999
+ ],
+ [
+ -47.383694766821215,
+ -22.223325312936097
+ ],
+ [
+ -47.38371714799966,
+ -22.223329862160572
+ ],
+ [
+ -47.383732180812956,
+ -22.223333009072242
+ ],
+ [
+ -47.3837489355572,
+ -22.22333702624934
+ ],
+ [
+ -47.38376378874779,
+ -22.223340599942233
+ ],
+ [
+ -47.38378686354185,
+ -22.223346939900654
+ ],
+ [
+ -47.38381576123464,
+ -22.223354274014447
+ ],
+ [
+ -47.383832300399774,
+ -22.223358691860533
+ ],
+ [
+ -47.383862356127196,
+ -22.223367361773885
+ ],
+ [
+ -47.38388701384373,
+ -22.223373770345493
+ ],
+ [
+ -47.38389792619557,
+ -22.223377017600203
+ ],
+ [
+ -47.38392201121306,
+ -22.22338442638661
+ ],
+ [
+ -47.383948284962806,
+ -22.22339248194789
+ ],
+ [
+ -47.38397778272008,
+ -22.223401677210436
+ ],
+ [
+ -47.384009465222555,
+ -22.22341101692407
+ ],
+ [
+ -47.384022432120254,
+ -22.2234148814247
+ ],
+ [
+ -47.384044336221805,
+ -22.22342222576983
+ ],
+ [
+ -47.38405327371053,
+ -22.223425026895768
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "153",
+ "Name": "Curvas",
+ "Length": 129.25314909114994,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "153",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38278655076466,
+ -22.22335188764448
+ ],
+ [
+ -47.38286107434203,
+ -22.223353790623317
+ ],
+ [
+ -47.38293071058756,
+ -22.22335429900034
+ ],
+ [
+ -47.383004323993866,
+ -22.223352605813748
+ ],
+ [
+ -47.38306876117963,
+ -22.2233495807047
+ ],
+ [
+ -47.383121934747734,
+ -22.223346817548787
+ ],
+ [
+ -47.38317538655368,
+ -22.22334414325053
+ ],
+ [
+ -47.38323065094233,
+ -22.223341152966338
+ ],
+ [
+ -47.38328478418452,
+ -22.22333825546976
+ ],
+ [
+ -47.38333339354358,
+ -22.22333555743336
+ ],
+ [
+ -47.38337207858029,
+ -22.223334011980413
+ ],
+ [
+ -47.38341087230247,
+ -22.223333403143187
+ ],
+ [
+ -47.38344687506024,
+ -22.223333390929838
+ ],
+ [
+ -47.383472332365486,
+ -22.223334128477557
+ ],
+ [
+ -47.38350100304569,
+ -22.223336199606816
+ ],
+ [
+ -47.38352505927469,
+ -22.223338481063873
+ ],
+ [
+ -47.38354793237933,
+ -22.223340355448094
+ ],
+ [
+ -47.383556994467085,
+ -22.223341298028274
+ ],
+ [
+ -47.38356298883671,
+ -22.223342085497936
+ ],
+ [
+ -47.38357566071734,
+ -22.223344102544978
+ ],
+ [
+ -47.38359036689605,
+ -22.22334660314674
+ ],
+ [
+ -47.383608625888165,
+ -22.22335011518892
+ ],
+ [
+ -47.38363524952598,
+ -22.223355294438015
+ ],
+ [
+ -47.38366212856842,
+ -22.22336048133272
+ ],
+ [
+ -47.38368566694731,
+ -22.223365044209448
+ ],
+ [
+ -47.38370770928429,
+ -22.22336952456005
+ ],
+ [
+ -47.383721952355735,
+ -22.22337250614988
+ ],
+ [
+ -47.38373805461766,
+ -22.223376366885123
+ ],
+ [
+ -47.38375215263612,
+ -22.223379758904674
+ ],
+ [
+ -47.38377495016505,
+ -22.22338602268199
+ ],
+ [
+ -47.38380400715493,
+ -22.223393397224175
+ ],
+ [
+ -47.38381982662195,
+ -22.22339762282831
+ ],
+ [
+ -47.38385003183811,
+ -22.22340633586265
+ ],
+ [
+ -47.383874502335885,
+ -22.223412695775455
+ ],
+ [
+ -47.38388444041089,
+ -22.22341565310849
+ ],
+ [
+ -47.38390832352331,
+ -22.223422999786468
+ ],
+ [
+ -47.383934535156776,
+ -22.223431036323586
+ ],
+ [
+ -47.38396427037891,
+ -22.223440305609856
+ ],
+ [
+ -47.38399622927225,
+ -22.223449726800414
+ ],
+ [
+ -47.38400838511781,
+ -22.223453349584457
+ ],
+ [
+ -47.38402373224076,
+ -22.22345849540469
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "154",
+ "Name": "Curvas",
+ "Length": 134.26869981503359,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "154",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38274805393105,
+ -22.223337358129005
+ ],
+ [
+ -47.38286133075094,
+ -22.223340250696555
+ ],
+ [
+ -47.3829305879799,
+ -22.223340756307184
+ ],
+ [
+ -47.383003778102236,
+ -22.22333907285718
+ ],
+ [
+ -47.3830679897288,
+ -22.223336058337885
+ ],
+ [
+ -47.38312113930205,
+ -22.223333296429303
+ ],
+ [
+ -47.38317457444179,
+ -22.22333062296535
+ ],
+ [
+ -47.38322980713943,
+ -22.22332763439638
+ ],
+ [
+ -47.38328393407202,
+ -22.223324737235323
+ ],
+ [
+ -47.383332649009766,
+ -22.223322033339215
+ ],
+ [
+ -47.383371644208914,
+ -22.22332047549572
+ ],
+ [
+ -47.38341074708329,
+ -22.223319861806928
+ ],
+ [
+ -47.383447098639586,
+ -22.223319849475555
+ ],
+ [
+ -47.38347312148605,
+ -22.223320603408332
+ ],
+ [
+ -47.38350230267337,
+ -22.22332271141616
+ ],
+ [
+ -47.383526433832195,
+ -22.223324999979667
+ ],
+ [
+ -47.38354937752256,
+ -22.223326880148367
+ ],
+ [
+ -47.383558818194565,
+ -22.22332786210654
+ ],
+ [
+ -47.383565230737055,
+ -22.223328704510855
+ ],
+ [
+ -47.38357819270062,
+ -22.223330767731987
+ ],
+ [
+ -47.38359314495946,
+ -22.223333310176734
+ ],
+ [
+ -47.383611584417906,
+ -22.22333685693103
+ ],
+ [
+ -47.38363821264377,
+ -22.223342037072882
+ ],
+ [
+ -47.38366508021998,
+ -22.223347221755134
+ ],
+ [
+ -47.38368870029645,
+ -22.223351800463348
+ ],
+ [
+ -47.383710855523226,
+ -22.223356303760255
+ ],
+ [
+ -47.383725361842,
+ -22.223359340457364
+ ],
+ [
+ -47.383741681598075,
+ -22.2233632533399
+ ],
+ [
+ -47.38375603142095,
+ -22.223366705939302
+ ],
+ [
+ -47.383778921291274,
+ -22.223372995088265
+ ],
+ [
+ -47.38380792518211,
+ -22.223380356154312
+ ],
+ [
+ -47.38382398454854,
+ -22.2233846458391
+ ],
+ [
+ -47.38385413993512,
+ -22.223393344499783
+ ],
+ [
+ -47.383878672839174,
+ -22.223399720632194
+ ],
+ [
+ -47.38388893567317,
+ -22.2234027746058
+ ],
+ [
+ -47.38391288608727,
+ -22.22341014198659
+ ],
+ [
+ -47.38393911848603,
+ -22.22341818488374
+ ],
+ [
+ -47.383968774493354,
+ -22.223427429476786
+ ],
+ [
+ -47.38400064125638,
+ -22.22343682350836
+ ],
+ [
+ -47.3840130674527,
+ -22.223440526864614
+ ],
+ [
+ -47.38403353499796,
+ -22.223447389538784
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "155",
+ "Name": "Curvas",
+ "Length": 120.62851311903769,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "155",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38284988228985,
+ -22.22338079251094
+ ],
+ [
+ -47.38293095580336,
+ -22.223381384386574
+ ],
+ [
+ -47.38300541577787,
+ -22.22337967172678
+ ],
+ [
+ -47.38307030408214,
+ -22.223376625438224
+ ],
+ [
+ -47.383123525639974,
+ -22.223373859787618
+ ],
+ [
+ -47.383177010778354,
+ -22.22337118382079
+ ],
+ [
+ -47.38323233854904,
+ -22.223368190106157
+ ],
+ [
+ -47.38328648444774,
+ -22.22336529193642
+ ],
+ [
+ -47.38333488261203,
+ -22.223362605621507
+ ],
+ [
+ -47.38337294732367,
+ -22.223361084949698
+ ],
+ [
+ -47.38341112274132,
+ -22.223360485815608
+ ],
+ [
+ -47.38344642790181,
+ -22.22336047383833
+ ],
+ [
+ -47.38347075412428,
+ -22.223361178615974
+ ],
+ [
+ -47.38349840378997,
+ -22.223363175988087
+ ],
+ [
+ -47.383522310159286,
+ -22.223365443232236
+ ],
+ [
+ -47.38354504209245,
+ -22.22336730604752
+ ],
+ [
+ -47.38355334701153,
+ -22.223368169871744
+ ],
+ [
+ -47.38355850503512,
+ -22.223368847472
+ ],
+ [
+ -47.38357059674974,
+ -22.223370772170913
+ ],
+ [
+ -47.38358481076807,
+ -22.223373189086708
+ ],
+ [
+ -47.38360270882738,
+ -22.223376631704642
+ ],
+ [
+ -47.38362932328907,
+ -22.223381809168217
+ ],
+ [
+ -47.383656225264026,
+ -22.22338700048782
+ ],
+ [
+ -47.38367960041586,
+ -22.22339153173572
+ ],
+ [
+ -47.38370141680498,
+ -22.223395966159575
+ ],
+ [
+ -47.38371513338167,
+ -22.22339883753479
+ ],
+ [
+ -47.38373080065518,
+ -22.22340259397541
+ ],
+ [
+ -47.38374439529674,
+ -22.223405864898986
+ ],
+ [
+ -47.38376700791072,
+ -22.22341207786929
+ ],
+ [
+ -47.38379617109872,
+ -22.223419479363738
+ ],
+ [
+ -47.38381151076681,
+ -22.223423576806553
+ ],
+ [
+ -47.38384181564214,
+ -22.223432318588216
+ ],
+ [
+ -47.38386616132739,
+ -22.22343864606181
+ ],
+ [
+ -47.38387544988418,
+ -22.223441410113637
+ ],
+ [
+ -47.38389919839317,
+ -22.223448715385985
+ ],
+ [
+ -47.38392536867193,
+ -22.22345673925786
+ ],
+ [
+ -47.3839552621479,
+ -22.22346605787579
+ ],
+ [
+ -47.38398740530187,
+ -22.22347553338432
+ ],
+ [
+ -47.383999020445756,
+ -22.22347899502391
+ ],
+ [
+ -47.3840041267218,
+ -22.223480707135078
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "156",
+ "Name": "Curvas",
+ "Length": 124.78375764366183,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "156",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38281972941069,
+ -22.22336703057102
+ ],
+ [
+ -47.38293083319539,
+ -22.223367841693467
+ ],
+ [
+ -47.38300486988577,
+ -22.223366138770274
+ ],
+ [
+ -47.38306953263075,
+ -22.223363103071488
+ ],
+ [
+ -47.38312273019372,
+ -22.223360338668208
+ ],
+ [
+ -47.38317619866589,
+ -22.22335766353569
+ ],
+ [
+ -47.383231494745544,
+ -22.223354671536274
+ ],
+ [
+ -47.3832856343354,
+ -22.22335177370203
+ ],
+ [
+ -47.38333413807767,
+ -22.223349081527445
+ ],
+ [
+ -47.383372512951865,
+ -22.223347548465064
+ ],
+ [
+ -47.38341099752182,
+ -22.22334694447939
+ ],
+ [
+ -47.38344665148098,
+ -22.223346932384082
+ ],
+ [
+ -47.38347154324489,
+ -22.22334765354677
+ ],
+ [
+ -47.383499703417904,
+ -22.223349687797445
+ ],
+ [
+ -47.383523684717055,
+ -22.223351962148048
+ ],
+ [
+ -47.383546487235975,
+ -22.223353830747804
+ ],
+ [
+ -47.38355517073943,
+ -22.223354733950014
+ ],
+ [
+ -47.38356074693607,
+ -22.223355466484968
+ ],
+ [
+ -47.38357312873372,
+ -22.223357437357958
+ ],
+ [
+ -47.38358758883227,
+ -22.223359896116726
+ ],
+ [
+ -47.383605667358,
+ -22.2233633734468
+ ],
+ [
+ -47.383632286407746,
+ -22.223368551803134
+ ],
+ [
+ -47.38365917691645,
+ -22.223373740910283
+ ],
+ [
+ -47.38368263376993,
+ -22.223378287990506
+ ],
+ [
+ -47.38370456304486,
+ -22.223382745359835
+ ],
+ [
+ -47.38371854286897,
+ -22.223385671842358
+ ],
+ [
+ -47.38373442763671,
+ -22.223389480430292
+ ],
+ [
+ -47.38374827409203,
+ -22.223392811936247
+ ],
+ [
+ -47.3837709790382,
+ -22.223399050275667
+ ],
+ [
+ -47.38380008912713,
+ -22.223406438293974
+ ],
+ [
+ -47.383815668694716,
+ -22.22341059981747
+ ],
+ [
+ -47.38384592374045,
+ -22.22341932722546
+ ],
+ [
+ -47.38387033183198,
+ -22.22342567091866
+ ],
+ [
+ -47.38387994514789,
+ -22.223428531611095
+ ],
+ [
+ -47.38390376095861,
+ -22.223435857586253
+ ],
+ [
+ -47.38392995200635,
+ -22.223443887819325
+ ],
+ [
+ -47.38395976626377,
+ -22.223453181742858
+ ],
+ [
+ -47.38399181728741,
+ -22.2234626300924
+ ],
+ [
+ -47.38400370278215,
+ -22.223466172304224
+ ],
+ [
+ -47.38401392948204,
+ -22.22346960127013
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "157",
+ "Name": "Curvas",
+ "Length": 111.65974965874356,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "157",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38291651340876,
+ -22.223408807599828
+ ],
+ [
+ -47.38300650756282,
+ -22.2234067376397
+ ],
+ [
+ -47.38307184698577,
+ -22.22340367017158
+ ],
+ [
+ -47.38312511653338,
+ -22.223400902026317
+ ],
+ [
+ -47.38317863500416,
+ -22.223398224390888
+ ],
+ [
+ -47.38323402615691,
+ -22.223395227245792
+ ],
+ [
+ -47.38328818471216,
+ -22.223392328402927
+ ],
+ [
+ -47.38333637168161,
+ -22.223389653809487
+ ],
+ [
+ -47.38337381606792,
+ -22.223388157918844
+ ],
+ [
+ -47.383411373180806,
+ -22.223387568487937
+ ],
+ [
+ -47.383445980743765,
+ -22.223387556746747
+ ],
+ [
+ -47.383469175883036,
+ -22.22338822875436
+ ],
+ [
+ -47.383495804533766,
+ -22.223390152369326
+ ],
+ [
+ -47.38351956104335,
+ -22.223392405400553
+ ],
+ [
+ -47.38354215180495,
+ -22.22339425664692
+ ],
+ [
+ -47.3835496995551,
+ -22.22339504171516
+ ],
+ [
+ -47.383554021232364,
+ -22.22339560944603
+ ],
+ [
+ -47.38356553278071,
+ -22.223397441796745
+ ],
+ [
+ -47.383579254638455,
+ -22.223399775026582
+ ],
+ [
+ -47.38359679176486,
+ -22.223403148220264
+ ],
+ [
+ -47.383623397050464,
+ -22.22340832389832
+ ],
+ [
+ -47.38365032195789,
+ -22.223413519642804
+ ],
+ [
+ -47.38367353388259,
+ -22.22341801926192
+ ],
+ [
+ -47.383695124323815,
+ -22.223422407758967
+ ],
+ [
+ -47.38370831440552,
+ -22.22342516891958
+ ],
+ [
+ -47.38372354669044,
+ -22.22342882106555
+ ],
+ [
+ -47.3837366379546,
+ -22.223431970893035
+ ],
+ [
+ -47.3837590656539,
+ -22.22343813305639
+ ],
+ [
+ -47.38378833504007,
+ -22.223445561503095
+ ],
+ [
+ -47.383803194909035,
+ -22.223449530784563
+ ],
+ [
+ -47.383833599443605,
+ -22.22345830131356
+ ],
+ [
+ -47.383857820316244,
+ -22.223464596347927
+ ],
+ [
+ -47.38386645935463,
+ -22.223467167118528
+ ],
+ [
+ -47.38389007326015,
+ -22.223474430985227
+ ],
+ [
+ -47.383916202184125,
+ -22.223482442191823
+ ],
+ [
+ -47.383946253914004,
+ -22.223491810141446
+ ],
+ [
+ -47.383978581328705,
+ -22.223501339967964
+ ],
+ [
+ -47.38398438747384,
+ -22.22350307036258
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "158",
+ "Name": "Curvas",
+ "Length": 115.87713345487423,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "158",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38288583872414,
+ -22.22339596762499
+ ],
+ [
+ -47.383005961670236,
+ -22.223393204683266
+ ],
+ [
+ -47.38307107553382,
+ -22.22339014780492
+ ],
+ [
+ -47.383124321086555,
+ -22.223387380906985
+ ],
+ [
+ -47.383177822891106,
+ -22.22338470410586
+ ],
+ [
+ -47.38323318235283,
+ -22.22338170867599
+ ],
+ [
+ -47.38328733459998,
+ -22.223378810168576
+ ],
+ [
+ -47.38333562714669,
+ -22.223376129715515
+ ],
+ [
+ -47.3833733816957,
+ -22.223374621434274
+ ],
+ [
+ -47.383411247960986,
+ -22.22337402715179
+ ],
+ [
+ -47.38344620432276,
+ -22.223374015292542
+ ],
+ [
+ -47.38346996500368,
+ -22.223374703685185
+ ],
+ [
+ -47.38349710416192,
+ -22.223376664178712
+ ],
+ [
+ -47.383520935601396,
+ -22.22337892431639
+ ],
+ [
+ -47.383543596948776,
+ -22.223380781347224
+ ],
+ [
+ -47.38355152328342,
+ -22.223381605793453
+ ],
+ [
+ -47.38355626313388,
+ -22.223382228459027
+ ],
+ [
+ -47.38356806476539,
+ -22.223384106983826
+ ],
+ [
+ -47.38358203270347,
+ -22.223386482056657
+ ],
+ [
+ -47.38359975029635,
+ -22.223389889962473
+ ],
+ [
+ -47.383626360170005,
+ -22.223395066533286
+ ],
+ [
+ -47.38365327361118,
+ -22.223400260065315
+ ],
+ [
+ -47.38367656724163,
+ -22.223404775517565
+ ],
+ [
+ -47.383698270564636,
+ -22.223409186959287
+ ],
+ [
+ -47.38371172389386,
+ -22.223412003227214
+ ],
+ [
+ -47.383727173673094,
+ -22.223415707520513
+ ],
+ [
+ -47.38374051676105,
+ -22.223418917933156
+ ],
+ [
+ -47.38376303678262,
+ -22.22342510546287
+ ],
+ [
+ -47.383792253069714,
+ -22.223432520433434
+ ],
+ [
+ -47.383807352838254,
+ -22.22343655379559
+ ],
+ [
+ -47.3838377075432,
+ -22.22344530995092
+ ],
+ [
+ -47.38386199082214,
+ -22.223451621204894
+ ],
+ [
+ -47.383870954619766,
+ -22.223454288616118
+ ],
+ [
+ -47.383894635827026,
+ -22.22346157318564
+ ],
+ [
+ -47.38392078552372,
+ -22.22346959075459
+ ],
+ [
+ -47.38395075803132,
+ -22.223478934008654
+ ],
+ [
+ -47.383982993315634,
+ -22.223488436676178
+ ],
+ [
+ -47.38399432359156,
+ -22.22349181341705
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "159",
+ "Name": "Curvas",
+ "Length": 103.73241666807884,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "159",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38297292776922,
+ -22.22343460104182
+ ],
+ [
+ -47.38300759934871,
+ -22.22343380355251
+ ],
+ [
+ -47.38307338989053,
+ -22.223430714904797
+ ],
+ [
+ -47.3831267074279,
+ -22.223427944264877
+ ],
+ [
+ -47.38318025923111,
+ -22.22342526496082
+ ],
+ [
+ -47.38323571376595,
+ -22.223422264385295
+ ],
+ [
+ -47.383289884977735,
+ -22.223419364869276
+ ],
+ [
+ -47.38333786075228,
+ -22.22341670199733
+ ],
+ [
+ -47.38337468481305,
+ -22.22341523088788
+ ],
+ [
+ -47.3834116236209,
+ -22.22341465116018
+ ],
+ [
+ -47.38344553358604,
+ -22.22341463965511
+ ],
+ [
+ -47.3834675976417,
+ -22.22341527889271
+ ],
+ [
+ -47.383493205277084,
+ -22.22341712875055
+ ],
+ [
+ -47.38351681192687,
+ -22.223419367568845
+ ],
+ [
+ -47.38353926151689,
+ -22.223421207246258
+ ],
+ [
+ -47.38354605209779,
+ -22.223421913558543
+ ],
+ [
+ -47.383549537428394,
+ -22.22342237142001
+ ],
+ [
+ -47.38356046881023,
+ -22.223424111422528
+ ],
+ [
+ -47.383573698507256,
+ -22.223426360966425
+ ],
+ [
+ -47.383590874700594,
+ -22.223429664735793
+ ],
+ [
+ -47.38361747081006,
+ -22.223434838628336
+ ],
+ [
+ -47.38364441865003,
+ -22.223440038797694
+ ],
+ [
+ -47.38366746734747,
+ -22.223444506787974
+ ],
+ [
+ -47.38368883184076,
+ -22.223448849358263
+ ],
+ [
+ -47.38370149542728,
+ -22.22345150030423
+ ],
+ [
+ -47.38371629272348,
+ -22.22345504815553
+ ],
+ [
+ -47.3837288806096,
+ -22.223458076886786
+ ],
+ [
+ -47.383751123394596,
+ -22.223464188243295
+ ],
+ [
+ -47.383780498978965,
+ -22.223471643642277
+ ],
+ [
+ -47.38379487904866,
+ -22.22347548476236
+ ],
+ [
+ -47.383825383242474,
+ -22.22348428403869
+ ],
+ [
+ -47.38384947930247,
+ -22.223490546633823
+ ],
+ [
+ -47.383857468822235,
+ -22.223492924123136
+ ],
+ [
+ -47.38388094812421,
+ -22.223500146584175
+ ],
+ [
+ -47.38390703569344,
+ -22.22350814512547
+ ],
+ [
+ -47.38393724567726,
+ -22.223517562406784
+ ],
+ [
+ -47.383964503347016,
+ -22.223525597719007
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "160",
+ "Name": "Curvas",
+ "Length": 107.59242633762001,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "160",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38294573072986,
+ -22.22342168108923
+ ],
+ [
+ -47.38300705345566,
+ -22.22342027059613
+ ],
+ [
+ -47.38307261843802,
+ -22.223417192538207
+ ],
+ [
+ -47.38312591198049,
+ -22.22341442314562
+ ],
+ [
+ -47.38317944711749,
+ -22.22341174467587
+ ],
+ [
+ -47.38323486996129,
+ -22.22340874581557
+ ],
+ [
+ -47.38328903486571,
+ -22.223405846634954
+ ],
+ [
+ -47.383337116216815,
+ -22.22340317790343
+ ],
+ [
+ -47.38337425044039,
+ -22.22340169440337
+ ],
+ [
+ -47.38341149840078,
+ -22.223401109824056
+ ],
+ [
+ -47.38344575716486,
+ -22.223401098200934
+ ],
+ [
+ -47.38346838676239,
+ -22.22340175382355
+ ],
+ [
+ -47.383494504905485,
+ -22.223403640559948
+ ],
+ [
+ -47.383518186485176,
+ -22.223405886484695
+ ],
+ [
+ -47.383540706661,
+ -22.22340773194658
+ ],
+ [
+ -47.38354787582655,
+ -22.223408477636852
+ ],
+ [
+ -47.38355177933051,
+ -22.223408990433033
+ ],
+ [
+ -47.38356300079565,
+ -22.223410776609658
+ ],
+ [
+ -47.38357647657306,
+ -22.223413067996525
+ ],
+ [
+ -47.38359383323295,
+ -22.223416406478037
+ ],
+ [
+ -47.38362043393048,
+ -22.223421581263356
+ ],
+ [
+ -47.38364737030418,
+ -22.22342677922025
+ ],
+ [
+ -47.38367050071155,
+ -22.223431263044528
+ ],
+ [
+ -47.38369197808253,
+ -22.223435628558644
+ ],
+ [
+ -47.38370490491666,
+ -22.22343833461193
+ ],
+ [
+ -47.38371991970724,
+ -22.223441934610552
+ ],
+ [
+ -47.383732759428014,
+ -22.22344502392994
+ ],
+ [
+ -47.38375509452457,
+ -22.223451160649873
+ ],
+ [
+ -47.38378441700983,
+ -22.223458602572713
+ ],
+ [
+ -47.383799036979184,
+ -22.223462507773508
+ ],
+ [
+ -47.38382949134337,
+ -22.223471292676166
+ ],
+ [
+ -47.38385364980968,
+ -22.223477571490907
+ ],
+ [
+ -47.383861964088794,
+ -22.223480045620867
+ ],
+ [
+ -47.38388551069255,
+ -22.22348728878474
+ ],
+ [
+ -47.38391161903821,
+ -22.22349529368956
+ ],
+ [
+ -47.383941749795994,
+ -22.22350468627413
+ ],
+ [
+ -47.38397416934109,
+ -22.223514243259636
+ ],
+ [
+ -47.38397445135458,
+ -22.223514327307598
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "161",
+ "Name": "Curvas",
+ "Length": 96.12225342449268,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "161",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383026237085275,
+ -22.223460045743373
+ ],
+ [
+ -47.3830749327964,
+ -22.22345775963786
+ ],
+ [
+ -47.38312829832355,
+ -22.223454986503288
+ ],
+ [
+ -47.38318188345922,
+ -22.223452305530618
+ ],
+ [
+ -47.3832374013762,
+ -22.22344930152463
+ ],
+ [
+ -47.38329158524448,
+ -22.223446401335483
+ ],
+ [
+ -47.383339349824055,
+ -22.223443750185048
+ ],
+ [
+ -47.38337555355904,
+ -22.22344230385681
+ ],
+ [
+ -47.38341187406165,
+ -22.223441733832335
+ ],
+ [
+ -47.38344508642871,
+ -22.22344172256341
+ ],
+ [
+ -47.38346601940028,
+ -22.22344232903098
+ ],
+ [
+ -47.383490606019926,
+ -22.223444105131723
+ ],
+ [
+ -47.38351406280987,
+ -22.2234463297371
+ ],
+ [
+ -47.383536371228246,
+ -22.22344815784558
+ ],
+ [
+ -47.38354240463958,
+ -22.22344878540185
+ ],
+ [
+ -47.38354505362321,
+ -22.223449133393927
+ ],
+ [
+ -47.38355540483837,
+ -22.223450781048257
+ ],
+ [
+ -47.383568142374436,
+ -22.22345294690614
+ ],
+ [
+ -47.383584957634575,
+ -22.22345618125124
+ ],
+ [
+ -47.38361154456794,
+ -22.223461353358253
+ ],
+ [
+ -47.3836385153404,
+ -22.223466557952484
+ ],
+ [
+ -47.38366140081055,
+ -22.22347099431394
+ ],
+ [
+ -47.383682539355824,
+ -22.223475290957452
+ ],
+ [
+ -47.383694676447,
+ -22.223477831688744
+ ],
+ [
+ -47.38370903875428,
+ -22.22348127524533
+ ],
+ [
+ -47.383721123261786,
+ -22.223484182880206
+ ],
+ [
+ -47.383743181132814,
+ -22.22349024342998
+ ],
+ [
+ -47.38377266291542,
+ -22.22349772578124
+ ],
+ [
+ -47.383786563185645,
+ -22.2235014387399
+ ],
+ [
+ -47.38381716703878,
+ -22.22351026676359
+ ],
+ [
+ -47.383841138286044,
+ -22.223516496919455
+ ],
+ [
+ -47.383848478286914,
+ -22.223518681127477
+ ],
+ [
+ -47.38387182298537,
+ -22.223525862182832
+ ],
+ [
+ -47.383897869199785,
+ -22.223533848058857
+ ],
+ [
+ -47.38392823743763,
+ -22.223543314671858
+ ],
+ [
+ -47.38394460604824,
+ -22.22354813998935
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "162",
+ "Name": "Curvas",
+ "Length": 99.83525508142611,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "162",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3830004927283,
+ -22.223447695767295
+ ],
+ [
+ -47.38307416134333,
+ -22.223444237271345
+ ],
+ [
+ -47.38312750287558,
+ -22.223441465384102
+ ],
+ [
+ -47.383181071345035,
+ -22.223438785245744
+ ],
+ [
+ -47.383236557570946,
+ -22.223435782954994
+ ],
+ [
+ -47.38329073513262,
+ -22.2234328831012
+ ],
+ [
+ -47.38333860528804,
+ -22.223430226091214
+ ],
+ [
+ -47.383375119185956,
+ -22.223428767372354
+ ],
+ [
+ -47.38341174884122,
+ -22.22342819249628
+ ],
+ [
+ -47.38344531000733,
+ -22.223428181109266
+ ],
+ [
+ -47.38346680852099,
+ -22.223428803961838
+ ],
+ [
+ -47.38349190564857,
+ -22.223430616941137
+ ],
+ [
+ -47.383515437368445,
+ -22.22343284865297
+ ],
+ [
+ -47.38353781637264,
+ -22.223434682545914
+ ],
+ [
+ -47.38354422836877,
+ -22.2234353494802
+ ],
+ [
+ -47.38354729552596,
+ -22.22343575240698
+ ],
+ [
+ -47.383557936824495,
+ -22.223437446235415
+ ],
+ [
+ -47.38357092044105,
+ -22.2234396539363
+ ],
+ [
+ -47.383587916167805,
+ -22.223442922993545
+ ],
+ [
+ -47.38361450768922,
+ -22.223448095993316
+ ],
+ [
+ -47.383641466995414,
+ -22.22345329837509
+ ],
+ [
+ -47.38366443417972,
+ -22.22345775057138
+ ],
+ [
+ -47.383685685598536,
+ -22.223462070157886
+ ],
+ [
+ -47.383698085937404,
+ -22.223464665996516
+ ],
+ [
+ -47.383712665739154,
+ -22.22346816170044
+ ],
+ [
+ -47.38372500209303,
+ -22.223471129926654
+ ],
+ [
+ -47.38374715226403,
+ -22.223477215836656
+ ],
+ [
+ -47.38377658094751,
+ -22.223484684711778
+ ],
+ [
+ -47.383790721117485,
+ -22.22348846175116
+ ],
+ [
+ -47.38382127514095,
+ -22.223497275401172
+ ],
+ [
+ -47.38384530879461,
+ -22.223503521776653
+ ],
+ [
+ -47.38385297355494,
+ -22.22350580262535
+ ],
+ [
+ -47.383876385555155,
+ -22.223513004383538
+ ],
+ [
+ -47.383902452549755,
+ -22.22352099662425
+ ],
+ [
+ -47.3839327415578,
+ -22.22353043853936
+ ],
+ [
+ -47.3839545546984,
+ -22.223536868854428
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "163",
+ "Name": "Curvas",
+ "Length": 88.73665800703975,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "163",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38307733351103,
+ -22.223484759795006
+ ],
+ [
+ -47.383129889220356,
+ -22.223482028741536
+ ],
+ [
+ -47.383183507688486,
+ -22.22347934610026
+ ],
+ [
+ -47.38323908898758,
+ -22.22347633866381
+ ],
+ [
+ -47.383293285512416,
+ -22.22347343780153
+ ],
+ [
+ -47.38334083889692,
+ -22.223470798372595
+ ],
+ [
+ -47.38337642230589,
+ -22.223469376825634
+ ],
+ [
+ -47.38341212450299,
+ -22.223468816504397
+ ],
+ [
+ -47.38344463927171,
+ -22.223468805471622
+ ],
+ [
+ -47.38346444115878,
+ -22.223469379169238
+ ],
+ [
+ -47.383488006762306,
+ -22.223471081512884
+ ],
+ [
+ -47.38351131369235,
+ -22.223473291905318
+ ],
+ [
+ -47.38353348093901,
+ -22.223475108444855
+ ],
+ [
+ -47.3835387571805,
+ -22.223475657245153
+ ],
+ [
+ -47.38354056981684,
+ -22.22347589536781
+ ],
+ [
+ -47.38355034086508,
+ -22.2234774506739
+ ],
+ [
+ -47.38356258624,
+ -22.223479532845772
+ ],
+ [
+ -47.38357904056683,
+ -22.223482697766574
+ ],
+ [
+ -47.383605618324054,
+ -22.223487868088053
+ ],
+ [
+ -47.38363261202905,
+ -22.2234930771072
+ ],
+ [
+ -47.383655334271786,
+ -22.223497481839797
+ ],
+ [
+ -47.38367624686902,
+ -22.223501732556517
+ ],
+ [
+ -47.38368785746461,
+ -22.2235041630731
+ ],
+ [
+ -47.38370178478282,
+ -22.223507502334975
+ ],
+ [
+ -47.38371336591101,
+ -22.223510288873307
+ ],
+ [
+ -47.38373523886854,
+ -22.223516298616463
+ ],
+ [
+ -47.38376482684941,
+ -22.223523807919992
+ ],
+ [
+ -47.383778247319995,
+ -22.223527392717205
+ ],
+ [
+ -47.38380895083245,
+ -22.223536249488284
+ ],
+ [
+ -47.38383279726701,
+ -22.223542447204903
+ ],
+ [
+ -47.383839487748794,
+ -22.223544438131505
+ ],
+ [
+ -47.38386269784361,
+ -22.22355157778117
+ ],
+ [
+ -47.38388870270323,
+ -22.22355955099192
+ ],
+ [
+ -47.383919229195165,
+ -22.223569066936662
+ ],
+ [
+ -47.38392470874324,
+ -22.223570682257737
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "164",
+ "Name": "Curvas",
+ "Length": 92.40666511650046,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "164",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38305201338533,
+ -22.223472513092425
+ ],
+ [
+ -47.38312909377182,
+ -22.22346850762243
+ ],
+ [
+ -47.383182695573716,
+ -22.223465825815456
+ ],
+ [
+ -47.383238245181744,
+ -22.223462820094248
+ ],
+ [
+ -47.38329243540072,
+ -22.223459919567283
+ ],
+ [
+ -47.38334009436035,
+ -22.223457274278843
+ ],
+ [
+ -47.383375987932375,
+ -22.223455840341234
+ ],
+ [
+ -47.38341199928224,
+ -22.223455275168362
+ ],
+ [
+ -47.38344486285017,
+ -22.22345526401751
+ ],
+ [
+ -47.383465230279555,
+ -22.22345585410012
+ ],
+ [
+ -47.38348930639118,
+ -22.223457593322312
+ ],
+ [
+ -47.38351268825119,
+ -22.22345981082121
+ ],
+ [
+ -47.38353492608369,
+ -22.22346163314521
+ ],
+ [
+ -47.38354058091017,
+ -22.22346222132352
+ ],
+ [
+ -47.3835428117202,
+ -22.223462514380884
+ ],
+ [
+ -47.383552872851915,
+ -22.223464115861077
+ ],
+ [
+ -47.38356536430743,
+ -22.223466239875975
+ ],
+ [
+ -47.383581999100926,
+ -22.22346943950893
+ ],
+ [
+ -47.38360858144622,
+ -22.22347461072317
+ ],
+ [
+ -47.38363556368494,
+ -22.223479817529856
+ ],
+ [
+ -47.383658367646106,
+ -22.223484238098177
+ ],
+ [
+ -47.38367939311267,
+ -22.223488511757004
+ ],
+ [
+ -47.383691266956056,
+ -22.223490997380935
+ ],
+ [
+ -47.38370541176882,
+ -22.22349438879016
+ ],
+ [
+ -47.3837172447561,
+ -22.223497235923336
+ ],
+ [
+ -47.38373921000099,
+ -22.223503271023247
+ ],
+ [
+ -47.383768744882715,
+ -22.223510766850623
+ ],
+ [
+ -47.38378240525316,
+ -22.22351441572858
+ ],
+ [
+ -47.38381305893593,
+ -22.22352325812597
+ ],
+ [
+ -47.38383696777686,
+ -22.223529472062207
+ ],
+ [
+ -47.38384398301822,
+ -22.223531559629524
+ ],
+ [
+ -47.383867260414846,
+ -22.223538719982024
+ ],
+ [
+ -47.38389328605841,
+ -22.223546699558636
+ ],
+ [
+ -47.38392373331677,
+ -22.2235561908043
+ ],
+ [
+ -47.38393465739652,
+ -22.223559411123784
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "165",
+ "Name": "Curvas",
+ "Length": 83.05795452999759,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "165",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38311189575842,
+ -22.223510088681735
+ ],
+ [
+ -47.38313148011829,
+ -22.223509070979624
+ ],
+ [
+ -47.38318513191889,
+ -22.22350638666974
+ ],
+ [
+ -47.38324077660017,
+ -22.223503375802853
+ ],
+ [
+ -47.38329498578153,
+ -22.223500474267396
+ ],
+ [
+ -47.38334232797089,
+ -22.223497846560008
+ ],
+ [
+ -47.38337729105359,
+ -22.22349644979433
+ ],
+ [
+ -47.38341237494498,
+ -22.22349589917636
+ ],
+ [
+ -47.38344419211508,
+ -22.223495888379794
+ ],
+ [
+ -47.38346286291722,
+ -22.223496429307456
+ ],
+ [
+ -47.3834854075042,
+ -22.223498057893977
+ ],
+ [
+ -47.38350856457427,
+ -22.223500254073507
+ ],
+ [
+ -47.38353059064917,
+ -22.223502059044094
+ ],
+ [
+ -47.38353510972054,
+ -22.223502529088414
+ ],
+ [
+ -47.38353608600928,
+ -22.22350265734162
+ ],
+ [
+ -47.38354527689036,
+ -22.223504120299477
+ ],
+ [
+ -47.38355703010398,
+ -22.223506118785327
+ ],
+ [
+ -47.38357312349733,
+ -22.223509214281805
+ ],
+ [
+ -47.38359969207844,
+ -22.223514382817775
+ ],
+ [
+ -47.38362670871596,
+ -22.223519596261806
+ ],
+ [
+ -47.38364926773121,
+ -22.223523969365537
+ ],
+ [
+ -47.38366995438032,
+ -22.22352817415546
+ ],
+ [
+ -47.38368103848015,
+ -22.223530494457325
+ ],
+ [
+ -47.38369453080914,
+ -22.223533729424453
+ ],
+ [
+ -47.383705608557264,
+ -22.223536394866052
+ ],
+ [
+ -47.383727296601776,
+ -22.223542353802742
+ ],
+ [
+ -47.38375699078097,
+ -22.223549890058575
+ ],
+ [
+ -47.38376993145173,
+ -22.2235533466943
+ ],
+ [
+ -47.383800734623556,
+ -22.22356223221271
+ ],
+ [
+ -47.38382445624535,
+ -22.22356839749008
+ ],
+ [
+ -47.38383049720777,
+ -22.22357019513526
+ ],
+ [
+ -47.383853572698946,
+ -22.223577293379265
+ ],
+ [
+ -47.38387953620374,
+ -22.223585253924696
+ ],
+ [
+ -47.383904874850124,
+ -22.223593152675882
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "166",
+ "Name": "Curvas",
+ "Length": 85.84147558694913,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "166",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383095138143446,
+ -22.223497397035295
+ ],
+ [
+ -47.38313068466918,
+ -22.223495549860594
+ ],
+ [
+ -47.383184319803554,
+ -22.223492866385016
+ ],
+ [
+ -47.38323993279374,
+ -22.223489857233364
+ ],
+ [
+ -47.383294135669985,
+ -22.22348695603318
+ ],
+ [
+ -47.38334158343377,
+ -22.223484322466327
+ ],
+ [
+ -47.38337685667964,
+ -22.223482913309986
+ ],
+ [
+ -47.38341224972392,
+ -22.22348235784037
+ ],
+ [
+ -47.383444415693354,
+ -22.223482346925717
+ ],
+ [
+ -47.383463652038024,
+ -22.22348290423836
+ ],
+ [
+ -47.383486707133315,
+ -22.22348456970342
+ ],
+ [
+ -47.383509939133376,
+ -22.22348677298941
+ ],
+ [
+ -47.383532035794154,
+ -22.22348858374447
+ ],
+ [
+ -47.383536933450614,
+ -22.22348909316678
+ ],
+ [
+ -47.38353832791322,
+ -22.223489276354716
+ ],
+ [
+ -47.38354780887791,
+ -22.223490785486707
+ ],
+ [
+ -47.3835598081722,
+ -22.223492825815562
+ ],
+ [
+ -47.383576082032306,
+ -22.223495956024202
+ ],
+ [
+ -47.38360265520148,
+ -22.22350112545294
+ ],
+ [
+ -47.383629660372726,
+ -22.223506336684512
+ ],
+ [
+ -47.38365230111074,
+ -22.223510725624834
+ ],
+ [
+ -47.38367310062492,
+ -22.22351495335601
+ ],
+ [
+ -47.383684447972655,
+ -22.22351732876524
+ ],
+ [
+ -47.38369815779627,
+ -22.223520615879746
+ ],
+ [
+ -47.38370948741732,
+ -22.22352334191996
+ ],
+ [
+ -47.38373126773547,
+ -22.22352932620963
+ ],
+ [
+ -47.3837609088155,
+ -22.223536848989326
+ ],
+ [
+ -47.38377408938619,
+ -22.223540369705773
+ ],
+ [
+ -47.383804842728324,
+ -22.223549240850513
+ ],
+ [
+ -47.383828626756525,
+ -22.223555422347516
+ ],
+ [
+ -47.38383499247865,
+ -22.223557316633418
+ ],
+ [
+ -47.38385813527165,
+ -22.223564435580265
+ ],
+ [
+ -47.38388411956414,
+ -22.22357240249273
+ ],
+ [
+ -47.38391472507284,
+ -22.22358194306896
+ ],
+ [
+ -47.38391476008838,
+ -22.22358195339122
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "167",
+ "Name": "Curvas",
+ "Length": 77.35910671630607,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "167",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383146691490545,
+ -22.223535431758748
+ ],
+ [
+ -47.38318675615045,
+ -22.223533427239076
+ ],
+ [
+ -47.3832424642139,
+ -22.223530412941717
+ ],
+ [
+ -47.38329668605182,
+ -22.223527510733124
+ ],
+ [
+ -47.383343817045954,
+ -22.22352489474728
+ ],
+ [
+ -47.38337815980215,
+ -22.223523522762925
+ ],
+ [
+ -47.3834126253876,
+ -22.22352298184824
+ ],
+ [
+ -47.38344374495879,
+ -22.22352297128787
+ ],
+ [
+ -47.38346128467555,
+ -22.22352347944561
+ ],
+ [
+ -47.38348280824564,
+ -22.223525034275053
+ ],
+ [
+ -47.38350581545567,
+ -22.22352721624167
+ ],
+ [
+ -47.38352770035878,
+ -22.2235290096433
+ ],
+ [
+ -47.383531462259846,
+ -22.223529400931646
+ ],
+ [
+ -47.38353160220065,
+ -22.223529419315394
+ ],
+ [
+ -47.38354021291421,
+ -22.22353078992498
+ ],
+ [
+ -47.38355147396634,
+ -22.223532704724786
+ ],
+ [
+ -47.38356720642609,
+ -22.22353573079692
+ ],
+ [
+ -47.38359376583107,
+ -22.223540897547377
+ ],
+ [
+ -47.383620805401144,
+ -22.22354611541629
+ ],
+ [
+ -47.383643201188775,
+ -22.223550456891164
+ ],
+ [
+ -47.38366366188976,
+ -22.2235546157543
+ ],
+ [
+ -47.38367421949362,
+ -22.22355682584142
+ ],
+ [
+ -47.38368727683325,
+ -22.223559956513775
+ ],
+ [
+ -47.38369785120044,
+ -22.2235625008584
+ ],
+ [
+ -47.3837193543325,
+ -22.223568408988804
+ ],
+ [
+ -47.38374915471008,
+ -22.22357597219695
+ ],
+ [
+ -47.38376161558087,
+ -22.22357930067114
+ ],
+ [
+ -47.38379251841208,
+ -22.223588214936942
+ ],
+ [
+ -47.38381611522106,
+ -22.223594347775048
+ ],
+ [
+ -47.383821506663935,
+ -22.223595952138727
+ ],
+ [
+ -47.38384444755139,
+ -22.223603008977044
+ ],
+ [
+ -47.38387036970131,
+ -22.223610956857183
+ ],
+ [
+ -47.383885105189975,
+ -22.223615550313646
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "168",
+ "Name": "Curvas",
+ "Length": 80.27530873327673,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "168",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38312864470347,
+ -22.22352277375761
+ ],
+ [
+ -47.38318594403454,
+ -22.22351990695443
+ ],
+ [
+ -47.383241620406885,
+ -22.223516894372306
+ ],
+ [
+ -47.38329583594044,
+ -22.223513992498958
+ ],
+ [
+ -47.38334307250829,
+ -22.223511370653664
+ ],
+ [
+ -47.38337772542777,
+ -22.22350998627864
+ ],
+ [
+ -47.383412500166216,
+ -22.2235094405123
+ ],
+ [
+ -47.38344396853688,
+ -22.22350942983383
+ ],
+ [
+ -47.383462073796395,
+ -22.223509954376535
+ ],
+ [
+ -47.38348410787499,
+ -22.22351154608452
+ ],
+ [
+ -47.383507190015045,
+ -22.223513735157592
+ ],
+ [
+ -47.383529145504056,
+ -22.223515534343694
+ ],
+ [
+ -47.38353328599008,
+ -22.22351596501001
+ ],
+ [
+ -47.3835338441049,
+ -22.22351603832848
+ ],
+ [
+ -47.38354274490247,
+ -22.223517455112248
+ ],
+ [
+ -47.38355425203537,
+ -22.223519411755074
+ ],
+ [
+ -47.38357016496194,
+ -22.22352247253938
+ ],
+ [
+ -47.38359672895498,
+ -22.2235276401826
+ ],
+ [
+ -47.383623757058764,
+ -22.223532855839043
+ ],
+ [
+ -47.38364623457359,
+ -22.2235372131514
+ ],
+ [
+ -47.383666808135295,
+ -22.223541394954903
+ ],
+ [
+ -47.38367762898715,
+ -22.2235436601494
+ ],
+ [
+ -47.383690903821474,
+ -22.22354684296913
+ ],
+ [
+ -47.38370173007676,
+ -22.223549447916533
+ ],
+ [
+ -47.38372332546744,
+ -22.223555381395794
+ ],
+ [
+ -47.383753072745826,
+ -22.223562931127784
+ ],
+ [
+ -47.383765773516636,
+ -22.223566323682732
+ ],
+ [
+ -47.38379662651815,
+ -22.223575223574848
+ ],
+ [
+ -47.38382028573353,
+ -22.22358137263258
+ ],
+ [
+ -47.383826001936235,
+ -22.223583073637027
+ ],
+ [
+ -47.38384901012555,
+ -22.22359015117819
+ ],
+ [
+ -47.383874953066936,
+ -22.223598105426532
+ ],
+ [
+ -47.38389499002082,
+ -22.223604351495002
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "169",
+ "Name": "Curvas",
+ "Length": 70.61313580853698,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "169",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38319164623125,
+ -22.22356029109753
+ ],
+ [
+ -47.383244151828826,
+ -22.223557450080428
+ ],
+ [
+ -47.3832983863233,
+ -22.223554547198688
+ ],
+ [
+ -47.38334530612212,
+ -22.223551942934428
+ ],
+ [
+ -47.38337902855158,
+ -22.223550595731346
+ ],
+ [
+ -47.383412875830814,
+ -22.223550064520005
+ ],
+ [
+ -47.38344329780288,
+ -22.223550054195886
+ ],
+ [
+ -47.383459706433825,
+ -22.223550529583733
+ ],
+ [
+ -47.3834802089866,
+ -22.223552010656075
+ ],
+ [
+ -47.38350306633654,
+ -22.223554178409767
+ ],
+ [
+ -47.38352481006776,
+ -22.22355596024248
+ ],
+ [
+ -47.38352746373981,
+ -22.223556236260034
+ ],
+ [
+ -47.383535148936666,
+ -22.22355745955043
+ ],
+ [
+ -47.38354591782711,
+ -22.223559290664156
+ ],
+ [
+ -47.3835612893531,
+ -22.223562247311953
+ ],
+ [
+ -47.38358783958196,
+ -22.223567412276896
+ ],
+ [
+ -47.383614902084574,
+ -22.223572634570708
+ ],
+ [
+ -47.38363713464453,
+ -22.22357694441668
+ ],
+ [
+ -47.383657369397284,
+ -22.22358105735303
+ ],
+ [
+ -47.383667400505,
+ -22.223583157225356
+ ],
+ [
+ -47.38368002285507,
+ -22.223586183602944
+ ],
+ [
+ -47.383690093840464,
+ -22.22358860685041
+ ],
+ [
+ -47.383711412060784,
+ -22.22359446417467
+ ],
+ [
+ -47.383741318636716,
+ -22.2236020543351
+ ],
+ [
+ -47.38375329970735,
+ -22.223605254647783
+ ],
+ [
+ -47.38378430219803,
+ -22.22361419766093
+ ],
+ [
+ -47.38380777419412,
+ -22.22362029805977
+ ],
+ [
+ -47.38381251611718,
+ -22.22362170914192
+ ],
+ [
+ -47.38383532240091,
+ -22.223628724574507
+ ],
+ [
+ -47.38386120319598,
+ -22.22363665978935
+ ],
+ [
+ -47.38386533552366,
+ -22.22363794794948
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "170",
+ "Name": "Curvas",
+ "Length": 73.97276494359244,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "170",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3831693033684,
+ -22.22354793581167
+ ],
+ [
+ -47.38324330802123,
+ -22.223543931511095
+ ],
+ [
+ -47.383297536212076,
+ -22.223541028964558
+ ],
+ [
+ -47.383344561583904,
+ -22.223538418840874
+ ],
+ [
+ -47.383378594176754,
+ -22.22353705924712
+ ],
+ [
+ -47.383412750609125,
+ -22.223536523184126
+ ],
+ [
+ -47.383443521380805,
+ -22.223536512741877
+ ],
+ [
+ -47.38346049555471,
+ -22.22353700451468
+ ],
+ [
+ -47.38348150861618,
+ -22.223538522465557
+ ],
+ [
+ -47.38350444089618,
+ -22.223540697325706
+ ],
+ [
+ -47.38352625521331,
+ -22.223542484942886
+ ],
+ [
+ -47.38352949827186,
+ -22.223542822264584
+ ],
+ [
+ -47.38353768092562,
+ -22.223544124737714
+ ],
+ [
+ -47.38354869589693,
+ -22.223545997694487
+ ],
+ [
+ -47.38356424788982,
+ -22.223548989054454
+ ],
+ [
+ -47.38359080270674,
+ -22.22355415491216
+ ],
+ [
+ -47.383617853743075,
+ -22.22355937499351
+ ],
+ [
+ -47.38364016803469,
+ -22.223563700677868
+ ],
+ [
+ -47.38366051564375,
+ -22.22356783655369
+ ],
+ [
+ -47.38367080999957,
+ -22.22356999153341
+ ],
+ [
+ -47.38368364984444,
+ -22.22357307005839
+ ],
+ [
+ -47.383693972734534,
+ -22.223575553913175
+ ],
+ [
+ -47.383715383196964,
+ -22.223581436581767
+ ],
+ [
+ -47.38374523667371,
+ -22.22358901326604
+ ],
+ [
+ -47.38375745764444,
+ -22.223592277659503
+ ],
+ [
+ -47.383788410305385,
+ -22.22360120629896
+ ],
+ [
+ -47.38381194470794,
+ -22.223607322917434
+ ],
+ [
+ -47.383817011390924,
+ -22.223608830640377
+ ],
+ [
+ -47.38383988497651,
+ -22.223615866775805
+ ],
+ [
+ -47.383865786566844,
+ -22.223623808360024
+ ],
+ [
+ -47.38387522035759,
+ -22.22362674913179
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "171",
+ "Name": "Curvas",
+ "Length": 63.87662511218065,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "171",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38323648640181,
+ -22.223584993302733
+ ],
+ [
+ -47.383245839444925,
+ -22.223584487218982
+ ],
+ [
+ -47.38330008659596,
+ -22.223581583664092
+ ],
+ [
+ -47.383346795199394,
+ -22.223578991121403
+ ],
+ [
+ -47.3833798973019,
+ -22.223577668699686
+ ],
+ [
+ -47.38341312627468,
+ -22.2235771471917
+ ],
+ [
+ -47.38344285064732,
+ -22.223577137103828
+ ],
+ [
+ -47.38345812819201,
+ -22.223577579721812
+ ],
+ [
+ -47.38347760972707,
+ -22.22357898703707
+ ],
+ [
+ -47.38350031721688,
+ -22.223581140577863
+ ],
+ [
+ -47.383521919776186,
+ -22.22358291084161
+ ],
+ [
+ -47.383523394674846,
+ -22.22358306425087
+ ],
+ [
+ -47.38353008495768,
+ -22.2235841291758
+ ],
+ [
+ -47.38354036168625,
+ -22.223585876603483
+ ],
+ [
+ -47.383555372278394,
+ -22.223588763826918
+ ],
+ [
+ -47.383581913331106,
+ -22.223593927006316
+ ],
+ [
+ -47.38360899876629,
+ -22.223599153725008
+ ],
+ [
+ -47.383631068098445,
+ -22.223603431942088
+ ],
+ [
+ -47.383651076902936,
+ -22.223607498951647
+ ],
+ [
+ -47.3836605815143,
+ -22.223609488609167
+ ],
+ [
+ -47.3836727688747,
+ -22.223612410691942
+ ],
+ [
+ -47.383682336477186,
+ -22.223614712841954
+ ],
+ [
+ -47.383703469786546,
+ -22.22362051936034
+ ],
+ [
+ -47.38373348256091,
+ -22.223628136473096
+ ],
+ [
+ -47.383744983831214,
+ -22.223631208624173
+ ],
+ [
+ -47.383776085981374,
+ -22.223640180384702
+ ],
+ [
+ -47.383799433164555,
+ -22.223646248344277
+ ],
+ [
+ -47.383803525567636,
+ -22.223647466144858
+ ],
+ [
+ -47.38382619724753,
+ -22.223654440171703
+ ],
+ [
+ -47.38384554283373,
+ -22.223660371660536
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "172",
+ "Name": "Curvas",
+ "Length": 67.24800038991036,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "172",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383214040170074,
+ -22.22357264361655
+ ],
+ [
+ -47.38324499563672,
+ -22.22357096864973
+ ],
+ [
+ -47.38329923648489,
+ -22.223568065429994
+ ],
+ [
+ -47.38334605066062,
+ -22.223565467027917
+ ],
+ [
+ -47.38337946292665,
+ -22.22356413221552
+ ],
+ [
+ -47.38341300105268,
+ -22.22356360585587
+ ],
+ [
+ -47.38344307422507,
+ -22.223563595649853
+ ],
+ [
+ -47.383458917312936,
+ -22.223564054652787
+ ],
+ [
+ -47.383478909356896,
+ -22.223565498846575
+ ],
+ [
+ -47.383501691776786,
+ -22.223567659493817
+ ],
+ [
+ -47.38352336492202,
+ -22.223569435542032
+ ],
+ [
+ -47.38352542920743,
+ -22.223569650255445
+ ],
+ [
+ -47.38353261694736,
+ -22.22357079436314
+ ],
+ [
+ -47.38354313975688,
+ -22.223572583633846
+ ],
+ [
+ -47.38355833081598,
+ -22.223575505569467
+ ],
+ [
+ -47.38358487645675,
+ -22.223580669641624
+ ],
+ [
+ -47.38361195042565,
+ -22.223585894147856
+ ],
+ [
+ -47.38363410149402,
+ -22.223590188204266
+ ],
+ [
+ -47.38365422315035,
+ -22.223594278152362
+ ],
+ [
+ -47.383663991009904,
+ -22.22359632291729
+ ],
+ [
+ -47.38367639586518,
+ -22.22359929714746
+ ],
+ [
+ -47.38368621539074,
+ -22.22360165990983
+ ],
+ [
+ -47.38370744092398,
+ -22.223607491767538
+ ],
+ [
+ -47.38373740059913,
+ -22.223615095404128
+ ],
+ [
+ -47.38374914176961,
+ -22.22361823163601
+ ],
+ [
+ -47.38378019409003,
+ -22.223627189022846
+ ],
+ [
+ -47.38380360367967,
+ -22.22363327320206
+ ],
+ [
+ -47.383808020842785,
+ -22.223634587643435
+ ],
+ [
+ -47.383830759824576,
+ -22.22364158237314
+ ],
+ [
+ -47.38385544652734,
+ -22.22364915148063
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "173",
+ "Name": "Curvas",
+ "Length": 56.771571522056014,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "173",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38328489398174,
+ -22.223609524314757
+ ],
+ [
+ -47.38330178686979,
+ -22.223608620129333
+ ],
+ [
+ -47.38334828427774,
+ -22.223606039308226
+ ],
+ [
+ -47.383380766053044,
+ -22.223604741667938
+ ],
+ [
+ -47.383413376719176,
+ -22.223604229863312
+ ],
+ [
+ -47.38344240349212,
+ -22.22360422001171
+ ],
+ [
+ -47.38345654995012,
+ -22.223604629859818
+ ],
+ [
+ -47.38347501046706,
+ -22.223605963418052
+ ],
+ [
+ -47.383497568096686,
+ -22.223608102745906
+ ],
+ [
+ -47.38351902948397,
+ -22.223609861440703
+ ],
+ [
+ -47.38351932560882,
+ -22.223609892241655
+ ],
+ [
+ -47.38352502097729,
+ -22.22361079880111
+ ],
+ [
+ -47.383534805543796,
+ -22.223612462542693
+ ],
+ [
+ -47.38354945520193,
+ -22.223615280341754
+ ],
+ [
+ -47.38357598707851,
+ -22.22362044173563
+ ],
+ [
+ -47.38360309544625,
+ -22.223625672879216
+ ],
+ [
+ -47.38362500155054,
+ -22.223629919467403
+ ],
+ [
+ -47.38364478440672,
+ -22.22363394055013
+ ],
+ [
+ -47.38365376252153,
+ -22.223635819992847
+ ],
+ [
+ -47.38366551489204,
+ -22.223638637780766
+ ],
+ [
+ -47.383674579110505,
+ -22.223640818833037
+ ],
+ [
+ -47.38369552750983,
+ -22.223646574545803
+ ],
+ [
+ -47.38372564648265,
+ -22.223654218610868
+ ],
+ [
+ -47.38373666795249,
+ -22.22365716260033
+ ],
+ [
+ -47.38376786976214,
+ -22.22366616310826
+ ],
+ [
+ -47.38379109213235,
+ -22.223672198628527
+ ],
+ [
+ -47.383794535015184,
+ -22.223673223147486
+ ],
+ [
+ -47.38381707209125,
+ -22.2236801557686
+ ],
+ [
+ -47.38382573544359,
+ -22.22368281201697
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "174",
+ "Name": "Curvas",
+ "Length": 60.38064560574417,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "174",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.3832601415825,
+ -22.223597285438284
+ ],
+ [
+ -47.38330093675887,
+ -22.22359510189528
+ ],
+ [
+ -47.383347539738416,
+ -22.223592515214815
+ ],
+ [
+ -47.383380331677365,
+ -22.223591205183826
+ ],
+ [
+ -47.38341325149686,
+ -22.223590688527505
+ ],
+ [
+ -47.38344262706968,
+ -22.223590678557773
+ ],
+ [
+ -47.38345733907108,
+ -22.223591104790813
+ ],
+ [
+ -47.38347631009713,
+ -22.22359247522757
+ ],
+ [
+ -47.38349894265686,
+ -22.223594621661878
+ ],
+ [
+ -47.383520474630195,
+ -22.22359638614116
+ ],
+ [
+ -47.383521360142,
+ -22.223596478246286
+ ],
+ [
+ -47.383527552967664,
+ -22.223597463988458
+ ],
+ [
+ -47.38353758361524,
+ -22.223599169573106
+ ],
+ [
+ -47.38355241374038,
+ -22.223602022084354
+ ],
+ [
+ -47.38357895020503,
+ -22.223607184370994
+ ],
+ [
+ -47.383606047106476,
+ -22.223612413302117
+ ],
+ [
+ -47.38362803495158,
+ -22.223616675730543
+ ],
+ [
+ -47.38364793065508,
+ -22.2236207197509
+ ],
+ [
+ -47.38365717201819,
+ -22.22362265430104
+ ],
+ [
+ -47.38366914188364,
+ -22.223625524236365
+ ],
+ [
+ -47.38367845804553,
+ -22.22362776590658
+ ],
+ [
+ -47.383699498648504,
+ -22.223633546953103
+ ],
+ [
+ -47.38372956452209,
+ -22.223641177542
+ ],
+ [
+ -47.383740825892204,
+ -22.22364418561228
+ ],
+ [
+ -47.38377197787209,
+ -22.22365317174652
+ ],
+ [
+ -47.383795262648796,
+ -22.22365922348643
+ ],
+ [
+ -47.38379903029178,
+ -22.223660344646206
+ ],
+ [
+ -47.38382163466975,
+ -22.223667297970184
+ ],
+ [
+ -47.38383563913742,
+ -22.22367159184127
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "175",
+ "Name": "Curvas",
+ "Length": 49.41064851769762,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "175",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38333577965009,
+ -22.223633864211962
+ ],
+ [
+ -47.3833497733572,
+ -22.22363308749491
+ ],
+ [
+ -47.38338163480506,
+ -22.223631814636047
+ ],
+ [
+ -47.383413627164295,
+ -22.223631312534813
+ ],
+ [
+ -47.383441956337286,
+ -22.223631302919543
+ ],
+ [
+ -47.38345497170816,
+ -22.22363167999783
+ ],
+ [
+ -47.38347241120662,
+ -22.223632939798964
+ ],
+ [
+ -47.383494818975954,
+ -22.223635064913918
+ ],
+ [
+ -47.383515508743415,
+ -22.22363676037657
+ ],
+ [
+ -47.38351995699547,
+ -22.223637468426354
+ ],
+ [
+ -47.383529249399736,
+ -22.22363904848181
+ ],
+ [
+ -47.38354353812372,
+ -22.223641796856487
+ ],
+ [
+ -47.38357006082418,
+ -22.223646956464865
+ ],
+ [
+ -47.38359719212445,
+ -22.22365219203336
+ ],
+ [
+ -47.38361893500079,
+ -22.223656406992582
+ ],
+ [
+ -47.3836384919086,
+ -22.22366038214854
+ ],
+ [
+ -47.38364694352669,
+ -22.223662151376377
+ ],
+ [
+ -47.38365826090717,
+ -22.22366486486943
+ ],
+ [
+ -47.38366682174021,
+ -22.223666924823593
+ ],
+ [
+ -47.383687585230646,
+ -22.223672629731052
+ ],
+ [
+ -47.38371781040197,
+ -22.223680300748452
+ ],
+ [
+ -47.38372835207113,
+ -22.223683116576268
+ ],
+ [
+ -47.38375965354031,
+ -22.22369214583159
+ ],
+ [
+ -47.383782751097534,
+ -22.223698148912565
+ ],
+ [
+ -47.3837855444599,
+ -22.223698980149823
+ ],
+ [
+ -47.38380592945955,
+ -22.22370525077144
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "176",
+ "Name": "Curvas",
+ "Length": 53.15738402771898,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "176",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38330969489009,
+ -22.223621746617564
+ ],
+ [
+ -47.38334902881734,
+ -22.223619563401574
+ ],
+ [
+ -47.38338120042894,
+ -22.223618278151992
+ ],
+ [
+ -47.38341350194167,
+ -22.22361777119906
+ ],
+ [
+ -47.38344217991466,
+ -22.223617761465636
+ ],
+ [
+ -47.38345576082915,
+ -22.223618154928843
+ ],
+ [
+ -47.38347371083692,
+ -22.223619451608503
+ ],
+ [
+ -47.383496193536395,
+ -22.223621583829907
+ ],
+ [
+ -47.38351737486999,
+ -22.22362331957503
+ ],
+ [
+ -47.38352248898654,
+ -22.223624133613736
+ ],
+ [
+ -47.383532027471965,
+ -22.223625755512266
+ ],
+ [
+ -47.38354649666304,
+ -22.22362853859914
+ ],
+ [
+ -47.38357302395158,
+ -22.22363369910027
+ ],
+ [
+ -47.383600143785564,
+ -22.223638932456307
+ ],
+ [
+ -47.38362196840738,
+ -22.223643163256714
+ ],
+ [
+ -47.38364163815788,
+ -22.223647161349355
+ ],
+ [
+ -47.383650353024365,
+ -22.223648985684616
+ ],
+ [
+ -47.3836618878999,
+ -22.22365175132512
+ ],
+ [
+ -47.383670700699064,
+ -22.223653871903466
+ ],
+ [
+ -47.383691556370565,
+ -22.22365960213845
+ ],
+ [
+ -47.38372172844263,
+ -22.223667259679697
+ ],
+ [
+ -47.383732510012145,
+ -22.22367013958832
+ ],
+ [
+ -47.38376376165155,
+ -22.22367915446996
+ ],
+ [
+ -47.38378692161527,
+ -22.223685173770566
+ ],
+ [
+ -47.38379003973789,
+ -22.223686101648685
+ ],
+ [
+ -47.38381250951199,
+ -22.22369301356691
+ ],
+ [
+ -47.38381583174944,
+ -22.223694032190778
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "177",
+ "Name": "Curvas",
+ "Length": 41.655454958800085,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "177",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38339053004941,
+ -22.22365876163344
+ ],
+ [
+ -47.38341387761002,
+ -22.223658395206247
+ ],
+ [
+ -47.383441509182795,
+ -22.22365838582727
+ ],
+ [
+ -47.383453393466105,
+ -22.223658730135753
+ ],
+ [
+ -47.383469811945645,
+ -22.223659916179866
+ ],
+ [
+ -47.383492069854704,
+ -22.22366202708188
+ ],
+ [
+ -47.383511776489584,
+ -22.223663641979602
+ ],
+ [
+ -47.38351489301223,
+ -22.223664138051507
+ ],
+ [
+ -47.38352369325405,
+ -22.223665634420865
+ ],
+ [
+ -47.383537621043764,
+ -22.223668313371153
+ ],
+ [
+ -47.383564134568076,
+ -22.223673471193987
+ ],
+ [
+ -47.38359128880094,
+ -22.223678711187375
+ ],
+ [
+ -47.38361286844922,
+ -22.223682894517655
+ ],
+ [
+ -47.383632199408616,
+ -22.223686823746785
+ ],
+ [
+ -47.38364012452977,
+ -22.223688482759766
+ ],
+ [
+ -47.383651006920076,
+ -22.223691091957935
+ ],
+ [
+ -47.383659064366135,
+ -22.223693030813585
+ ],
+ [
+ -47.383679642948934,
+ -22.2236986849161
+ ],
+ [
+ -47.38370997431882,
+ -22.22370638288582
+ ],
+ [
+ -47.38372003618713,
+ -22.223709070551955
+ ],
+ [
+ -47.3837514373159,
+ -22.223718128554697
+ ],
+ [
+ -47.38377441006009,
+ -22.22372409919635
+ ],
+ [
+ -47.383776553901725,
+ -22.22372473715188
+ ],
+ [
+ -47.383786129495526,
+ -22.223727682696754
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "178",
+ "Name": "Curvas",
+ "Length": 45.62901273997455,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "178",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38336221425986,
+ -22.22364614432133
+ ],
+ [
+ -47.3833820691814,
+ -22.223645351120066
+ ],
+ [
+ -47.38341375238707,
+ -22.223644853870532
+ ],
+ [
+ -47.38344173276,
+ -22.223644844373403
+ ],
+ [
+ -47.38345418258715,
+ -22.223645205066795
+ ],
+ [
+ -47.383471111576185,
+ -22.223646427989422
+ ],
+ [
+ -47.38349344441541,
+ -22.22364854599789
+ ],
+ [
+ -47.38351364261663,
+ -22.223650201178078
+ ],
+ [
+ -47.38351742500403,
+ -22.22365080323895
+ ],
+ [
+ -47.383526471327094,
+ -22.223652341451363
+ ],
+ [
+ -47.38354057958397,
+ -22.22365505511385
+ ],
+ [
+ -47.38356709769634,
+ -22.223660213829444
+ ],
+ [
+ -47.38359424046292,
+ -22.223665451610373
+ ],
+ [
+ -47.38361590186141,
+ -22.223669650782796
+ ],
+ [
+ -47.383635345658845,
+ -22.223673602947677
+ ],
+ [
+ -47.38364353402849,
+ -22.223675317068082
+ ],
+ [
+ -47.3836546339139,
+ -22.223677978413694
+ ],
+ [
+ -47.383662943351595,
+ -22.22367997790053
+ ],
+ [
+ -47.383683614090096,
+ -22.223685657323603
+ ],
+ [
+ -47.3837138923607,
+ -22.223693341817153
+ ],
+ [
+ -47.38372419412946,
+ -22.223696093564122
+ ],
+ [
+ -47.383755545428436,
+ -22.223705137193175
+ ],
+ [
+ -47.383778580579126,
+ -22.223711124054464
+ ],
+ [
+ -47.38378104918115,
+ -22.223711858650866
+ ],
+ [
+ -47.38379602947831,
+ -22.223716466734334
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "179",
+ "Name": "Curvas",
+ "Length": 31.55362112900919,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "179",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38345210967049,
+ -22.223685801544008
+ ],
+ [
+ -47.38346721268422,
+ -22.223686892560732
+ ],
+ [
+ -47.383489320732906,
+ -22.223688989249833
+ ],
+ [
+ -47.383508044234794,
+ -22.223690523582583
+ ],
+ [
+ -47.38350982902755,
+ -22.223690807676615
+ ],
+ [
+ -47.38351813710678,
+ -22.223692220359847
+ ],
+ [
+ -47.38353170396209,
+ -22.22369482988569
+ ],
+ [
+ -47.38355820831023,
+ -22.223699985923
+ ],
+ [
+ -47.38358538547571,
+ -22.22370523034127
+ ],
+ [
+ -47.3836068018958,
+ -22.22370938204261
+ ],
+ [
+ -47.38362590690674,
+ -22.22371326534491
+ ],
+ [
+ -47.38363330553073,
+ -22.223714814143005
+ ],
+ [
+ -47.38364375293071,
+ -22.223717319046283
+ ],
+ [
+ -47.38365130698794,
+ -22.223719136802938
+ ],
+ [
+ -47.38367170066476,
+ -22.223724740100952
+ ],
+ [
+ -47.38370213823323,
+ -22.22373246502301
+ ],
+ [
+ -47.383711720300504,
+ -22.22373502452743
+ ],
+ [
+ -47.38374322108892,
+ -22.223744111277586
+ ],
+ [
+ -47.38375090994349,
+ -22.22374610961974
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "180",
+ "Name": "Curvas",
+ "Length": 37.53500611927422,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "180",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.383420289197545,
+ -22.223671934408483
+ ],
+ [
+ -47.383441285605684,
+ -22.223671927281107
+ ],
+ [
+ -47.38345260434505,
+ -22.22367225520473
+ ],
+ [
+ -47.383468512315,
+ -22.223673404370306
+ ],
+ [
+ -47.38349069529387,
+ -22.223675508165865
+ ],
+ [
+ -47.38350991036232,
+ -22.22367708278108
+ ],
+ [
+ -47.3835123610201,
+ -22.22367747286407
+ ],
+ [
+ -47.383520915180625,
+ -22.22367892739037
+ ],
+ [
+ -47.38353466250315,
+ -22.22368157162843
+ ],
+ [
+ -47.383561171439375,
+ -22.22368672855851
+ ],
+ [
+ -47.38358833713855,
+ -22.22369197076432
+ ],
+ [
+ -47.38360983531368,
+ -22.22369613830879
+ ],
+ [
+ -47.383629053157925,
+ -22.223700044545854
+ ],
+ [
+ -47.38363671503051,
+ -22.2237016484514
+ ],
+ [
+ -47.38364737992568,
+ -22.22370420550213
+ ],
+ [
+ -47.38365518600333,
+ -22.223706083897866
+ ],
+ [
+ -47.38367567180717,
+ -22.223711712508557
+ ],
+ [
+ -47.38370605627635,
+ -22.22371942395443
+ ],
+ [
+ -47.38371587824415,
+ -22.223722047539734
+ ],
+ [
+ -47.38374732920275,
+ -22.223731119916174
+ ],
+ [
+ -47.38377023954037,
+ -22.223737074338164
+ ],
+ [
+ -47.38377205862157,
+ -22.223737615652816
+ ],
+ [
+ -47.38377622951119,
+ -22.223738898658684
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "181",
+ "Name": "Curvas",
+ "Length": 22.707124932062598,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "181",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38349229276085,
+ -22.22370282652338
+ ],
+ [
+ -47.383506178107176,
+ -22.223703964384054
+ ],
+ [
+ -47.383507297034804,
+ -22.223704142489147
+ ],
+ [
+ -47.383515359032536,
+ -22.22370551332929
+ ],
+ [
+ -47.38352874542058,
+ -22.223708088142946
+ ],
+ [
+ -47.383555245180666,
+ -22.22371324328748
+ ],
+ [
+ -47.38358243381243,
+ -22.223718489918195
+ ],
+ [
+ -47.38360376876419,
+ -22.22372262583467
+ ],
+ [
+ -47.38362276065509,
+ -22.22372648614397
+ ],
+ [
+ -47.38362989603048,
+ -22.223727979834592
+ ],
+ [
+ -47.38364012593524,
+ -22.22373043259041
+ ],
+ [
+ -47.383647428654676,
+ -22.22373218989554
+ ],
+ [
+ -47.38366772952175,
+ -22.22373776769329
+ ],
+ [
+ -47.3836982201895,
+ -22.223745506091525
+ ],
+ [
+ -47.38370719316844,
+ -22.22374790289985
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "182",
+ "Name": "Curvas",
+ "Length": 190.03713505833753,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "182",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38270882542799,
+ -22.22267345451081
+ ],
+ [
+ -47.38280007565945,
+ -22.22267490923695
+ ],
+ [
+ -47.38287389488893,
+ -22.222676794264583
+ ],
+ [
+ -47.38292458039544,
+ -22.222677164314636
+ ],
+ [
+ -47.38297702970207,
+ -22.222675957946578
+ ],
+ [
+ -47.3830301889806,
+ -22.2226734623185
+ ],
+ [
+ -47.38308216281126,
+ -22.222670761528214
+ ],
+ [
+ -47.38313478131096,
+ -22.22266812894445
+ ],
+ [
+ -47.38318846115631,
+ -22.222665224420183
+ ],
+ [
+ -47.3832422779872,
+ -22.222662343751935
+ ],
+ [
+ -47.38329616718892,
+ -22.22265935268226
+ ],
+ [
+ -47.38335036027583,
+ -22.222657187710723
+ ],
+ [
+ -47.38340461153455,
+ -22.222656336303007
+ ],
+ [
+ -47.38345805413695,
+ -22.22265631819523
+ ],
+ [
+ -47.38351178836907,
+ -22.222657875002593
+ ],
+ [
+ -47.38356598428465,
+ -22.222661790063242
+ ],
+ [
+ -47.38359378698677,
+ -22.22266442684338
+ ],
+ [
+ -47.38362018936091,
+ -22.222666590451134
+ ],
+ [
+ -47.383648180570624,
+ -22.22266950192886
+ ],
+ [
+ -47.38367508348616,
+ -22.22267303612828
+ ],
+ [
+ -47.38370225944609,
+ -22.22267736187469
+ ],
+ [
+ -47.38372926957387,
+ -22.22268195461998
+ ],
+ [
+ -47.38375655184153,
+ -22.222687202264005
+ ],
+ [
+ -47.383783404880866,
+ -22.222692426150964
+ ],
+ [
+ -47.383809710613946,
+ -22.222697502423866
+ ],
+ [
+ -47.383837329641395,
+ -22.222702856016806
+ ],
+ [
+ -47.383865020654476,
+ -22.222708484535097
+ ],
+ [
+ -47.38389242603204,
+ -22.222714221481603
+ ],
+ [
+ -47.38391940295261,
+ -22.222720689574786
+ ],
+ [
+ -47.383946085277415,
+ -22.222727108967973
+ ],
+ [
+ -47.383973505714586,
+ -22.222734642932647
+ ],
+ [
+ -47.383999907763894,
+ -22.222741343670684
+ ],
+ [
+ -47.38402772214859,
+ -22.222748773297244
+ ],
+ [
+ -47.3840554358965,
+ -22.222756767650726
+ ],
+ [
+ -47.38408302669365,
+ -22.222763938540982
+ ],
+ [
+ -47.38410920264887,
+ -22.222771727887658
+ ],
+ [
+ -47.38413645083169,
+ -22.22278010970301
+ ],
+ [
+ -47.384163696326894,
+ -22.222788462870195
+ ],
+ [
+ -47.384189475222875,
+ -22.222796498869553
+ ],
+ [
+ -47.38421682762095,
+ -22.222804562115627
+ ],
+ [
+ -47.38424250094676,
+ -22.222812213496464
+ ],
+ [
+ -47.3842692024112,
+ -22.222821166384353
+ ],
+ [
+ -47.38429692223516,
+ -22.222829854144546
+ ],
+ [
+ -47.38432188986839,
+ -22.22283708974972
+ ],
+ [
+ -47.38434969371895,
+ -22.222846006571572
+ ],
+ [
+ -47.38437484523948,
+ -22.22285312140816
+ ],
+ [
+ -47.38440058137734,
+ -22.22286123910232
+ ],
+ [
+ -47.38442557096449,
+ -22.22286869136006
+ ],
+ [
+ -47.38445033288774,
+ -22.22287740623056
+ ],
+ [
+ -47.384472949967595,
+ -22.222884189037362
+ ],
+ [
+ -47.3844927059271,
+ -22.222891112265145
+ ],
+ [
+ -47.38450839208783,
+ -22.222896545150466
+ ],
+ [
+ -47.3845175827474,
+ -22.222898993209157
+ ]
+ ]
+ }
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "Id": "183",
+ "Name": "Curvas",
+ "Length": 190.32475353631446,
+ "Dist1": 0.0,
+ "Dist2": 0.0
+ },
+ "geometry": {
+ "id": "183",
+ "type": "LineString",
+ "coordinates": [
+ [
+ -47.38271639462843,
+ -22.22266003181257
+ ],
+ [
+ -47.38280039953148,
+ -22.22266137103129
+ ],
+ [
+ -47.382874151302,
+ -22.22266325433699
+ ],
+ [
+ -47.38292445779558,
+ -22.22266362162034
+ ],
+ [
+ -47.38297648382228,
+ -22.22266242498843
+ ],
+ [
+ -47.38302941754375,
+ -22.222659939949832
+ ],
+ [
+ -47.38308136737978,
+ -22.222657240406836
+ ],
+ [
+ -47.38313396921344,
+ -22.222654608657347
+ ],
+ [
+ -47.38318761736808,
+ -22.222651705848268
+ ],
+ [
+ -47.38324142787058,
+ -22.222648825516583
+ ],
+ [
+ -47.38329542266884,
+ -22.222645828586312
+ ],
+ [
+ -47.38334992591524,
+ -22.222643651224576
+ ],
+ [
+ -47.383404486323194,
+ -22.22264279496561
+ ],
+ [
+ -47.38345827772078,
+ -22.2226427767401
+ ],
+ [
+ -47.383512577488645,
+ -22.222644349932818
+ ],
+ [
+ -47.383567283906416,
+ -22.22264830187214
+ ],
+ [
+ -47.38359516153763,
+ -22.222650945758737
+ ],
+ [
+ -47.383621634496805,
+ -22.222653115150962
+ ],
+ [
+ -47.3836500042871,
+ -22.22265606600661
+ ],
+ [
+ -47.383677325371515,
+ -22.222659655140554
+ ],
+ [
+ -47.38370479141162,
+ -22.22266402706086
+ ],
+ [
+ -47.38373204761718,
+ -22.22266866164891
+ ],
+ [
+ -47.38375951034949,
+ -22.222673944004892
+ ],
+ [
+ -47.38378636797683,
+ -22.22267916878461
+ ],
+ [
+ -47.383812662243784,
+ -22.222684242845062
+ ],
+ [
+ -47.38384036288297,
+ -22.22268961225212
+ ],
+ [
+ -47.38386816686989,
+ -22.222695263733875
+ ],
+ [
+ -47.383895835492325,
+ -22.222701055787358
+ ],
+ [
+ -47.383923029905056,
+ -22.22270757602755
+ ],
+ [
+ -47.38394996391362,
+ -22.22271405596769
+ ],
+ [
+ -47.38397747680972,
+ -22.22272161533635
+ ],
+ [
+ -47.38400382576046,
+ -22.22272830259834
+ ],
+ [
+ -47.38403188004241,
+ -22.22273579630515
+ ],
+ [
+ -47.384059543961186,
+ -22.222743776285064
+ ],
+ [
+ -47.384087197164035,
+ -22.22275096339479
+ ],
+ [
+ -47.38411369787541,
+ -22.222758849381442
+ ],
+ [
+ -47.38414101335933,
+ -22.222767251899477
+ ],
+ [
+ -47.38416827953078,
+ -22.222775611398962
+ ],
+ [
+ -47.384193979301486,
+ -22.222783622732944
+ ],
+ [
+ -47.384221239570074,
+ -22.22279165882021
+ ],
+ [
+ -47.384247183244284,
+ -22.222799390772707
+ ],
+ [
+ -47.384273986779846,
+ -22.222808377884803
+ ],
+ [
+ -47.38430140395588,
+ -22.222816970791307
+ ],
+ [
+ -47.38432642032267,
+ -22.22282422051956
+ ],
+ [
+ -47.38435417747211,
+ -22.22283312236435
+ ],
+ [
+ -47.38437929361829,
+ -22.222840227194418
+ ],
+ [
+ -47.38440513314708,
+ -22.22284837750033
+ ],
+ [
+ -47.384430363559915,
+ -22.22285590157591
+ ],
+ [
+ -47.38445513663669,
+ -22.222864620372064
+ ],
+ [
+ -47.384477743890095,
+ -22.22287140023202
+ ],
+ [
+ -47.38449780293064,
+ -22.22287842967088
+ ],
+ [
+ -47.384512934436614,
+ -22.22288367045222
+ ],
+ [
+ -47.384527648163136,
+ -22.22288758965557
+ ]
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Python/OAK/datasets/oak-fcc-3/_10_export_onnx.py b/Python/OAK/datasets/oak-fcc-3/_10_export_onnx.py
index f0de57b22..c6c419b6a 100644
--- a/Python/OAK/datasets/oak-fcc-3/_10_export_onnx.py
+++ b/Python/OAK/datasets/oak-fcc-3/_10_export_onnx.py
@@ -8,8 +8,10 @@ Exporta o checkpoint PyTorch do SegFormer Multi-Head OAK-FCC-3 para ONNX.
Exemplo:
-python .\_10_export_onnx.py --config config.json --checkpoint backup/segformer_b1/2026_08_17/stacked_raw5_ndvi_ndre/best_score.pt --out backup/segformer_b1/2026_08_17/stacked_raw5_ndvi_ndre/best_score.onnx --include-norm --postprocess argmax_fullres
-python .\_10_export_onnx.py --config .\config.json --train-script .\_8_train_multihead_v2.py --opset 17 --device cuda --include-norm --postprocess argmax_fullres
+python .\_10_export_onnx.py --config .\config.json --train-script .\_8_train_multihead_v2.py --checkpoint .\backup\segformer_b1\2026_09_18\stacked_raw5\best_score.pt --out .\backup\segformer_b1\2026_09_18\stacked_raw5\best_score_audit.onnx --opset 17 --device cuda --include-norm --norm-stats .\backup\segformer_b1\2026_09_18\stacked_raw5\norm_stats.json --postprocess none
+
+python .\_10_export_onnx.py --config .\config.json --train-script .\_8_train_multihead_v2.py --checkpoint .\backup\segformer_b1\2026_09_18\stacked_raw5\best_operational.pt --out .\backup\segformer_b1\2026_09_18\stacked_raw5\best_operation.onnx --opset 17 --device cuda --include-norm --norm-stats .\backup\segformer_b1\2026_09_18\stacked_raw5\norm_stats.json --postprocess argmax_fullres
+
"""
from __future__ import annotations
diff --git a/Python/OAK/datasets/oak-fcc-3/_1_weeds_pair_sorter.py b/Python/OAK/datasets/oak-fcc-3/_1_weeds_pair_sorter.py
index c94cd3f0f..4b376d14a 100644
--- a/Python/OAK/datasets/oak-fcc-3/_1_weeds_pair_sorter.py
+++ b/Python/OAK/datasets/oak-fcc-3/_1_weeds_pair_sorter.py
@@ -5,8 +5,9 @@ weed_pair_sorter.py
-------------------------------------------------
Classificador manual para amostras multiespectrais do Agrobotics/OAK-FFC-3.
-Agora, além do preview RGB salvo em .png, ele pode mostrar também os previews
-reconstruídos diretamente dos .bin das 3 câmeras:
+O PNG de entrada agora é opcional. A ferramenta reconstrói o preview RGB canônico
+sob demanda a partir dos .bin + meta + module_params usando RawProcessorPreview,
+e também pode mostrar os 3 sensores nativos:
CAM_A = RGB
CAM_B = RE
@@ -14,8 +15,10 @@ reconstruídos diretamente dos .bin das 3 câmeras:
Fluxo:
- Entrada: uma ou mais pastas-raiz contendo amostras em subpastas.
-- O script mostra o preview salvo (.png).
-- Se a opção estiver marcada, reconstrói CAM_A/CAM_B/CAM_C direto dos .bin.
+- O script aceita meta + tripleta CAM_A/B/C mesmo sem PNG.
+- Reconstrói CAM_A com RawProcessorPreview e aplica camera_orientation canônica.
+- Ao classificar, salva o PNG derivado em previews/ e registra o contrato no meta.
+- Opcionalmente mostra CAM_A/CAM_B/CAM_C nativos direto dos .bin.
- Você usa teclas 1..9/0 para enviar o conjunto da amostra para uma label.
Estrutura de saída:
@@ -42,6 +45,7 @@ import argparse
import csv
import json
import math
+import hashlib
import re
import shutil
import sys
@@ -89,12 +93,40 @@ OLD_CAM_TO_CAMERA = {
2: "CAM_C",
}
CAM_ORDER = {"CAM_A": 0, "CAM_B": 1, "CAM_C": 2}
+REQUIRED_CAMERAS = ("CAM_A", "CAM_B", "CAM_C")
+GENERATED_PREVIEW_VERSION = "weed_pair_sorter_canonical_preview_v4_2026_09_14_bayer_explicit"
+ANNOTATION_PREVIEW_CONFIG = {
+ "schema": "rgb_raw_annotation_preview_v2",
+ "version": GENERATED_PREVIEW_VERSION,
+ "purpose": "human_annotation_only",
+ "implementation": "core.raw_processor_preview.RawProcessorPreview",
+ "levels": {
+ "mode": "robust_percentile",
+ "black_percentile": 0.20,
+ "white_percentile": 99.80,
+ },
+ "gamma": 2.2,
+ "demosaic": {
+ "algorithm": "opencv_edge_aware",
+ "output_color_order": "BGR",
+ },
+ "white_balance": {
+ "method": "neutral_bright_with_gray_world_fallback",
+ "strength": 0.65,
+ "gain_range": [0.60, 1.70],
+ },
+ "clahe": {"clip_limit": 1.55, "tile_grid_size": 8},
+ "saturation_factor": 1.04,
+ "contrast": {"alpha": 1.04, "beta": 0.0},
+ "sharpen": {"sigma": 0.85, "amount": 0.55, "threshold": 2.0},
+ "output_format": "PNG_BGR_U8",
+}
@dataclass
class SampleBundle:
sample_dir: Path
- preview_path: Path
+ preview_path: Optional[Path]
meta_path: Path
bin_paths: List[Path]
sample_id: str
@@ -203,23 +235,44 @@ def build_bin_map_from_meta(meta_path: Path, available_bins: List[Path]) -> Dict
# Busca de amostras
# ============================================================
+def _bundle_is_complete(bin_by_camera: Dict[str, Path]) -> bool:
+ return all(cam in bin_by_camera and Path(bin_by_camera[cam]).is_file() for cam in REQUIRED_CAMERAS)
+
+
+def _find_saved_preview_near(meta_path: Path, base: str, search_dirs: List[Path]) -> Optional[Path]:
+ meta = safe_load_json(meta_path)
+ saved = meta.get("saved_preview_path")
+ if saved:
+ saved_name = Path(str(saved)).name
+ for d in search_dirs:
+ p = d / saved_name
+ if p.is_file():
+ return p
+ for d in search_dirs:
+ for ext in PREVIEW_EXTS:
+ p = d / f"{base}{ext}"
+ if p.is_file():
+ return p
+ return None
+
+
def find_sample_bundles_in_folder(folder: Path) -> List[SampleBundle]:
"""
- Procura amostras em formatos antigos e atuais.
+ Procura amostras RAW multiespectrais em formatos antigos e atuais.
- Suporta:
- - .png + .json + _cam0.bin / _cam1.bin / _cam2.bin
- - preview.png + meta.json + CAM_A.bin / CAM_B.bin / CAM_C.bin
- - .png + .json + _CAM_A.bin / _CAM_B.bin / _CAM_C.bin
- - .png + .json + _rgb.bin / _re.bin / _nir.bin
- - layout dataset: root/previews, root/metas, root/bins
+ O preview salvo deixou de ser obrigatório. O contrato mínimo atual é:
+ - .json
+ - _CAM_A.bin
+ - _CAM_B.bin
+ - _CAM_C.bin
+
+ Se existir PNG/JPG legado ele é preservado como fallback. O preview principal
+ canônico é reconstruído sob demanda pelo sorter a partir da CAM_A RAW.
"""
if not folder.is_dir():
return []
bundles: List[SampleBundle] = []
-
- # Caso dataset já organizado em previews/metas/bins
dataset_bundles = find_dataset_layout_bundles(folder)
if dataset_bundles:
bundles.extend(dataset_bundles)
@@ -230,218 +283,183 @@ def find_sample_bundles_in_folder(folder: Path) -> List[SampleBundle]:
old_cam_re = re.compile(r"^(?P.+)_cam(?P\d+)\.bin$", re.IGNORECASE)
oak_cam_re = re.compile(r"^(?:(?P.+)_)?(?PCAM_[ABC])\.bin$", re.IGNORECASE)
role_re = re.compile(r"^(?P.+)_(?Prgb|re|nir)\.bin$", re.IGNORECASE)
-
- role_order = {
- "CAM_A": 0,
- "CAM_B": 1,
- "CAM_C": 2,
- "RGB": 0,
- "RE": 1,
- "NIR": 2,
- }
-
- generic_preview_names = {"preview.png", "preview.jpg", "preview.jpeg"}
+ role_order = {"CAM_A": 0, "CAM_B": 1, "CAM_C": 2, "RGB": 0, "RE": 1, "NIR": 2}
generic_meta_names = {"meta.json", "metadata.json"}
+ generic_preview_names = {"preview.png", "preview.jpg", "preview.jpeg"}
for d in candidate_dirs:
- if not d.is_dir():
+ try:
+ files = [p for p in d.iterdir() if p.is_file()]
+ except Exception:
continue
-
- files = [p for p in d.iterdir() if p.is_file()]
if not files:
continue
- pngs: Dict[str, Path] = {}
+ previews: Dict[str, Path] = {}
jsons: Dict[str, Path] = {}
bins_by_base: Dict[str, List[Tuple[int, Path]]] = {}
-
- generic_preview = None
generic_meta = None
+ generic_preview = None
generic_bins: List[Tuple[int, Path]] = []
for p in files:
name_lower = p.name.lower()
suffix = p.suffix.lower()
-
if suffix in PREVIEW_EXTS:
if name_lower in generic_preview_names:
generic_preview = p
else:
- pngs[p.stem] = p
+ previews[p.stem] = p
continue
-
if suffix == META_EXT:
if name_lower in generic_meta_names:
generic_meta = p
else:
jsons[p.stem] = p
continue
-
if suffix != ".bin":
continue
m = old_cam_re.match(p.name)
if m:
base = m.group("base")
- cam_idx = int(m.group("cam"))
- bins_by_base.setdefault(base, []).append((cam_idx, p))
+ bins_by_base.setdefault(base, []).append((int(m.group("cam")), p))
continue
-
m = oak_cam_re.match(p.name)
if m:
base = m.group("base") or d.name
cam = m.group("cam").upper()
- order = role_order.get(cam, 99)
- bins_by_base.setdefault(base, []).append((order, p))
- generic_bins.append((order, p))
+ item = (role_order.get(cam, 99), p)
+ bins_by_base.setdefault(base, []).append(item)
+ generic_bins.append(item)
continue
-
m = role_re.match(p.name)
if m:
base = m.group("base")
role = m.group("role").upper()
- order = role_order.get(role, 99)
- bins_by_base.setdefault(base, []).append((order, p))
- continue
+ bins_by_base.setdefault(base, []).append((role_order.get(role, 99), p))
- if generic_preview and generic_meta and generic_bins:
- sorted_bins = [p for _, p in sorted(generic_bins, key=lambda x: x[0])]
+ # Layout unitário: meta.json + CAM_A/B/C.bin, preview opcional.
+ if generic_meta and generic_bins:
+ sorted_bins = [p for _, p in sorted(set(generic_bins), key=lambda x: x[0])]
bin_by_camera = build_bin_map_from_meta(generic_meta, sorted_bins)
- bundles.append(
- SampleBundle(
+ if _bundle_is_complete(bin_by_camera):
+ bundles.append(SampleBundle(
sample_dir=d,
preview_path=generic_preview,
meta_path=generic_meta,
- bin_paths=sorted_bins,
+ bin_paths=[bin_by_camera[c] for c in REQUIRED_CAMERAS],
sample_id=d.name,
bin_by_camera=bin_by_camera,
- )
- )
- continue
+ ))
- valid_bases = sorted(set(pngs.keys()) & set(jsons.keys()) & set(bins_by_base.keys()))
+ # Layout por stem: JSON + tripleta BIN; PNG é opcional.
+ valid_bases = sorted(set(jsons.keys()) & set(bins_by_base.keys()))
for base in valid_bases:
sorted_bins = [p for _, p in sorted(bins_by_base[base], key=lambda x: x[0])]
- if not sorted_bins:
- continue
bin_by_camera = build_bin_map_from_meta(jsons[base], sorted_bins)
- bundles.append(
- SampleBundle(
- sample_dir=d,
- preview_path=pngs[base],
- meta_path=jsons[base],
- bin_paths=sorted_bins,
- sample_id=base,
- bin_by_camera=bin_by_camera,
- )
- )
+ if not _bundle_is_complete(bin_by_camera):
+ continue
+ preview = previews.get(base)
+ if preview is None:
+ preview = _find_saved_preview_near(jsons[base], base, [d])
+ bundles.append(SampleBundle(
+ sample_dir=d,
+ preview_path=preview,
+ meta_path=jsons[base],
+ bin_paths=[bin_by_camera[c] for c in REQUIRED_CAMERAS],
+ sample_id=base,
+ bin_by_camera=bin_by_camera,
+ ))
- if generic_preview and generic_meta and bins_by_base and not generic_bins:
- for base, bin_items in sorted(bins_by_base.items()):
- sorted_bins = [p for _, p in sorted(bin_items, key=lambda x: x[0])]
- if not sorted_bins:
- continue
- bin_by_camera = build_bin_map_from_meta(generic_meta, sorted_bins)
- bundles.append(
- SampleBundle(
- sample_dir=d,
- preview_path=generic_preview,
- meta_path=generic_meta,
- bin_paths=sorted_bins,
- sample_id=base,
- bin_by_camera=bin_by_camera,
- )
- )
-
- # Remove duplicados sem esmagar amostras com mesmo nome em pastas diferentes
dedup: Dict[str, SampleBundle] = {}
for b in bundles:
key = str((b.meta_path.resolve(), tuple(p.resolve() for p in b.bin_paths)))
dedup.setdefault(key, b)
-
out = list(dedup.values())
out.sort(key=lambda x: (str(x.sample_dir), x.sample_id))
return out
-
def find_dataset_layout_bundles(root: Path) -> List[SampleBundle]:
"""
- Detecta layout:
+ Detecta layout organizado:
root/metas/*.json
- root/previews/*.png
root/bins/*.bin
- Também aceita quando o usuário aponta para root/metas, root/previews ou root/bins.
+ root/previews/* (opcional)
+
+ O preview não é mais requisito de descoberta.
"""
candidates = []
p = root.resolve()
- candidates.append(p)
- candidates.append(p.parent)
-
+ candidates.extend([p, p.parent])
if p.name.lower() in ("metas", "metadata", "jsons", "previews", "bins", "masks"):
candidates.insert(0, p.parent)
+ seen_candidates = set()
for cand in candidates:
+ try:
+ key = str(cand.resolve())
+ except Exception:
+ key = str(cand)
+ if key in seen_candidates:
+ continue
+ seen_candidates.add(key)
+
metas = cand / "metas"
- previews = cand / "previews"
bins = cand / "bins"
- if not (metas.is_dir() and previews.is_dir() and bins.is_dir()):
+ previews = cand / "previews"
+ if not (metas.is_dir() and bins.is_dir()):
continue
bundles: List[SampleBundle] = []
for meta_path in sorted(metas.glob("*.json")):
base = meta_path.stem
- preview_path = None
- for ext in PREVIEW_EXTS:
- test = previews / f"{base}{ext}"
- if test.exists():
- preview_path = test
- break
- if preview_path is None:
- continue
-
meta = safe_load_json(meta_path)
- bin_paths: List[Path] = []
saved_paths = meta.get("saved_payload_paths") or {}
+ bin_paths: List[Path] = []
+
if isinstance(saved_paths, dict):
- for cam in ("CAM_A", "CAM_B", "CAM_C"):
+ for cam in REQUIRED_CAMERAS:
fname = saved_paths.get(cam)
- if not fname:
- continue
- candidates_bin = [
- bins / Path(str(fname)).name,
- meta_path.parent / str(fname),
- cand / str(fname),
+ candidates_bin = []
+ if fname:
+ candidates_bin.extend([
+ bins / Path(str(fname)).name,
+ meta_path.parent / str(fname),
+ cand / str(fname),
+ ])
+ candidates_bin.extend([
bins / f"{base}_{cam}.bin",
- ]
+ bins / f"{base}_{cam.lower()}.bin",
+ ])
for c in candidates_bin:
- if c.exists():
+ if c.is_file():
bin_paths.append(c)
break
- else:
- bin_paths.extend(sorted(bins.glob(f"{base}_*.bin")))
-
if not bin_paths:
bin_paths.extend(sorted(bins.glob(f"{base}*.bin")))
-
if not bin_paths:
continue
bin_by_camera = build_bin_map_from_meta(meta_path, bin_paths)
- bundles.append(
- SampleBundle(
- sample_dir=cand,
- preview_path=preview_path,
- meta_path=meta_path,
- bin_paths=sorted(set(bin_paths), key=lambda x: x.name.lower()),
- sample_id=base,
- bin_by_camera=bin_by_camera,
- )
- )
+ if not _bundle_is_complete(bin_by_camera):
+ continue
+
+ preview_path = None
+ search_dirs = [previews, meta_path.parent, cand]
+ preview_path = _find_saved_preview_near(meta_path, base, [d for d in search_dirs if d.is_dir()])
+
+ bundles.append(SampleBundle(
+ sample_dir=cand,
+ preview_path=preview_path,
+ meta_path=meta_path,
+ bin_paths=[bin_by_camera[c] for c in REQUIRED_CAMERAS],
+ sample_id=base,
+ bin_by_camera=bin_by_camera,
+ ))
return bundles
-
return []
-
def collect_all_bundles(folders: List[Path]) -> List[SampleBundle]:
all_bundles: List[SampleBundle] = []
seen = set()
@@ -456,6 +474,357 @@ def collect_all_bundles(folders: List[Path]) -> List[SampleBundle]:
return all_bundles
+# ============================================================
+# Preview canônico de anotação, reconstruído sob demanda
+# ============================================================
+
+def _sha1_text(value: str) -> str:
+ return hashlib.sha1(value.encode("utf-8", errors="ignore")).hexdigest()
+
+
+def _import_raw_processor_preview():
+ """Importa a implementação oficial, procurando também em pais do script."""
+ try:
+ from core.raw_processor_preview import RawProcessorPreview
+ return RawProcessorPreview
+ except Exception as first_exc:
+ here = Path(__file__).resolve()
+ for parent in [here.parent, *here.parents]:
+ if (parent / "core" / "raw_processor_preview.py").is_file():
+ if str(parent) not in sys.path:
+ sys.path.insert(0, str(parent))
+ try:
+ from core.raw_processor_preview import RawProcessorPreview
+ return RawProcessorPreview
+ except Exception:
+ pass
+ raise RuntimeError(
+ "Não consegui importar core.raw_processor_preview.RawProcessorPreview. "
+ "Execute o sorter dentro do projeto oak-fcc-3 ou ajuste o PYTHONPATH. "
+ f"Erro original: {first_exc}"
+ ) from first_exc
+
+
+def _candidate_path(value, meta_path: Path) -> List[Path]:
+ if not value:
+ return []
+ raw = Path(str(value)).expanduser()
+ candidates = [raw]
+ if not raw.is_absolute():
+ candidates.extend([
+ meta_path.parent / raw,
+ Path.cwd() / raw,
+ ])
+ for parent in meta_path.resolve().parents:
+ candidates.append(parent / raw)
+ candidates.append(parent / raw.name)
+ return candidates
+
+
+def resolve_module_params_path(meta_path: Path, meta: dict, override: Optional[Path] = None) -> Path:
+ candidates: List[Path] = []
+ if override:
+ candidates.append(Path(override).expanduser())
+
+ mp_contract = meta.get("module_params_contract") or {}
+ candidates.extend(_candidate_path(mp_contract.get("path"), meta_path))
+ for key in ("module_calibration_json", "camera_params_json", "module_params_json"):
+ candidates.extend(_candidate_path(meta.get(key), meta_path))
+
+ stream_meta = meta.get("stream_meta") or {}
+ for key in ("module_calibration_json", "camera_params_json", "module_params_json"):
+ candidates.extend(_candidate_path(stream_meta.get(key), meta_path))
+
+ # Convenções locais úteis, sem adivinhar um modelmp arbitrário.
+ for parent in [meta_path.parent, *meta_path.resolve().parents[:5]]:
+ candidates.extend([
+ parent / "module_params.json",
+ parent / "calibration" / "module_params.json",
+ ])
+
+ seen = set()
+ for p in candidates:
+ try:
+ rp = p.resolve()
+ except Exception:
+ rp = p
+ key = str(rp).lower()
+ if key in seen:
+ continue
+ seen.add(key)
+ if p.is_file():
+ return p.resolve()
+
+ declared = meta.get("module_calibration_json") or mp_contract.get("path") or meta.get("camera_params_json")
+ raise FileNotFoundError(
+ "module_params não encontrado para reconstruir o preview canônico. "
+ f"Declarado no meta={declared!r}. Use o campo 'Module params fallback/override' na tela inicial."
+ )
+
+
+def resolve_rgb_annotation_orientation(module_params: dict, expected_native_size: Tuple[int, int]) -> dict:
+ root = module_params.get("camera_orientation")
+ if not isinstance(root, dict):
+ raise RuntimeError("module_params sem camera_orientation.")
+ by_role = root.get("by_role")
+ if not isinstance(by_role, dict) or not isinstance(by_role.get("rgb"), dict):
+ raise RuntimeError("camera_orientation.by_role.rgb ausente no module_params.")
+
+ cfg = by_role["rgb"]
+ rotate_deg = int(cfg.get("rotate_deg", 0)) % 360
+ if rotate_deg not in (0, 90, 180, 270):
+ raise RuntimeError(f"camera_orientation RGB rotate_deg inválido: {rotate_deg}")
+ flip_h = cfg.get("flip_horizontal", False)
+ flip_v = cfg.get("flip_vertical", False)
+ if not isinstance(flip_h, bool) or not isinstance(flip_v, bool):
+ raise RuntimeError("camera_orientation RGB flips devem ser bool.")
+ enabled = root.get("enabled", False)
+ if not isinstance(enabled, bool):
+ raise RuntimeError("camera_orientation.enabled deve ser bool.")
+ if (rotate_deg != 0 or flip_h or flip_v) and not enabled:
+ raise RuntimeError("camera_orientation RGB declara transformação, mas enabled=false.")
+
+ native_w, native_h = map(int, expected_native_size)
+ oriented_size = [native_h, native_w] if enabled and rotate_deg in (90, 270) else [native_w, native_h]
+ return {
+ "enabled": enabled,
+ "rotate_deg": rotate_deg if enabled else 0,
+ "flip_horizontal": flip_h if enabled else False,
+ "flip_vertical": flip_v if enabled else False,
+ "native_size": [native_w, native_h],
+ "oriented_size": oriented_size,
+ "input_space": str(root.get("input_space") or "native_stream_no_external_undistort"),
+ "output_space": str(root.get("output_space") or "canonical_oriented_stream_no_external_undistort"),
+ "apply_stage": str(root.get("apply_stage") or "after_native_flat_before_fusion"),
+ }
+
+
+def apply_rgb_annotation_orientation_bgr(image_bgr: np.ndarray, orientation: dict) -> np.ndarray:
+ if cv2 is None:
+ raise RuntimeError("OpenCV é obrigatório para aplicar a orientação canônica.")
+ out = np.asarray(image_bgr)
+ rotate_deg = int(orientation.get("rotate_deg", 0)) % 360
+ if rotate_deg == 90:
+ out = cv2.rotate(out, cv2.ROTATE_90_CLOCKWISE)
+ elif rotate_deg == 180:
+ out = cv2.rotate(out, cv2.ROTATE_180)
+ elif rotate_deg == 270:
+ out = cv2.rotate(out, cv2.ROTATE_90_COUNTERCLOCKWISE)
+ if bool(orientation.get("flip_horizontal", False)):
+ out = cv2.flip(out, 1)
+ if bool(orientation.get("flip_vertical", False)):
+ out = cv2.flip(out, 0)
+ return np.ascontiguousarray(out)
+
+
+def _rgb_native_size(meta: dict) -> Tuple[int, int]:
+ by_role = meta.get("sensor_size_by_role") or {}
+ if isinstance(by_role.get("rgb"), (list, tuple)) and len(by_role["rgb"]) == 2:
+ return int(by_role["rgb"][0]), int(by_role["rgb"][1])
+ cam_info = (((meta.get("stream_meta") or {}).get("camera_info") or {}).get("CAM_A") or {})
+ w = int(cam_info.get("width") or meta.get("sensor_width") or 1280)
+ h = int(cam_info.get("height") or meta.get("sensor_height") or 800)
+ return w, h
+
+
+def _preview_cache_path(bundle: SampleBundle, cache_root: Path, module_params_path: Path) -> Path:
+ cam_a = bundle.bin_by_camera["CAM_A"]
+ def stat_sig(p: Path) -> str:
+ try:
+ st = p.stat()
+ return f"{p.resolve()}|{st.st_size}|{st.st_mtime_ns}"
+ except Exception:
+ return str(p)
+ sig = "||".join([
+ GENERATED_PREVIEW_VERSION,
+ stat_sig(bundle.meta_path),
+ stat_sig(cam_a),
+ stat_sig(module_params_path),
+ ])
+ token = _sha1_text(sig)[:16]
+ return cache_root / f"{bundle.sample_id}__{token}.png"
+
+
+def _explicit_bayer_bgr_code(pattern: str, edge_aware: bool = True) -> int:
+ """Retorna código OpenCV pelo nome COMPLETO do mosaico.
+
+ Não usar os aliases curtos COLOR_BayerGB2BGR/GR2BGR/RG2BGR/BG2BGR:
+ no OpenCV eles são aliases históricos cujo nome não corresponde literalmente
+ ao mosaico completo e podem trocar R/B quando usados como mapeamento direto.
+ """
+ if cv2 is None:
+ raise RuntimeError("OpenCV é obrigatório para demosaico Bayer.")
+ p = str(pattern or "").upper()
+ if p not in ("RGGB", "BGGR", "GRBG", "GBRG"):
+ raise RuntimeError(f"Bayer pattern inválido: {pattern!r}")
+
+ suffix = "2BGR_EA" if edge_aware else "2BGR"
+ attr = f"COLOR_Bayer{p}{suffix}"
+ code = getattr(cv2, attr, None)
+ if code is not None:
+ return int(code)
+
+ # Fallback para OpenCV antigo sem aliases de quatro letras. Os aliases
+ # históricos são cruzados; estes pares reproduzem os códigos explícitos.
+ fallback = {
+ "RGGB": "COLOR_BayerBG2BGR_EA" if edge_aware else "COLOR_BayerBG2BGR",
+ "BGGR": "COLOR_BayerRG2BGR_EA" if edge_aware else "COLOR_BayerRG2BGR",
+ "GRBG": "COLOR_BayerGB2BGR_EA" if edge_aware else "COLOR_BayerGB2BGR",
+ "GBRG": "COLOR_BayerGR2BGR_EA" if edge_aware else "COLOR_BayerGR2BGR",
+ }[p]
+ return int(getattr(cv2, fallback))
+
+
+def _authoritative_rgb_bayer(meta: dict, module_params: dict) -> Tuple[str, List[str]]:
+ """Module params é a autoridade científica; meta antigo serve só para auditoria."""
+ mp_bayer = str(module_params.get("bayer_pattern") or "").upper().strip()
+ if mp_bayer not in ("RGGB", "BGGR", "GRBG", "GBRG"):
+ raise RuntimeError(f"module_params.bayer_pattern inválido/ausente: {mp_bayer!r}")
+
+ stream_meta = meta.get("stream_meta") or {}
+ cam_info = ((stream_meta.get("camera_info") or {}).get("CAM_A") or {})
+ declared = []
+ for source, value in (
+ ("meta.bayer_pattern", meta.get("bayer_pattern")),
+ ("stream_meta.bayer_pattern", stream_meta.get("bayer_pattern")),
+ ("stream_meta.camera_info.CAM_A.bayer_pattern", cam_info.get("bayer_pattern") or cam_info.get("bayer")),
+ ):
+ if value:
+ v = str(value).upper().strip()
+ if v != mp_bayer:
+ declared.append(f"{source}={v} != module_params={mp_bayer}")
+ return mp_bayer, declared
+
+
+def build_canonical_preview_bgr(bundle: SampleBundle, module_params_override: Optional[Path] = None) -> Tuple[np.ndarray, dict]:
+ if "CAM_A" not in bundle.bin_by_camera:
+ raise RuntimeError("CAM_A ausente no bundle.")
+ if cv2 is None:
+ raise RuntimeError("opencv-python é obrigatório para o preview canônico.")
+
+ meta = load_json(bundle.meta_path)
+ module_params_path = resolve_module_params_path(bundle.meta_path, meta, module_params_override)
+ module_params = load_json(module_params_path)
+
+ arr = load_camera_payload(meta, bundle.bin_by_camera["CAM_A"], "CAM_A")
+ rgb_w, rgb_h = _rgb_native_size(meta)
+ bayer, bayer_conflicts = _authoritative_rgb_bayer(meta, module_params)
+
+ RawProcessorPreview = _import_raw_processor_preview()
+ preview_processor = RawProcessorPreview(sensor_width=rgb_w, sensor_height=rgb_h, bayer_pattern=bayer)
+
+ # Mantemos TODO o mini-ISP do RawProcessorPreview, trocando apenas a escolha
+ # do código de demosaico por constantes explícitas de quatro letras. Isso
+ # corrige a armadilha dos aliases curtos do OpenCV sem duplicar o pipeline.
+ preview_processor._debayer_code = lambda: _explicit_bayer_bgr_code(bayer, edge_aware=True)
+ preview_bgr = preview_processor.packed_raw10_to_preview_bgr(arr)
+ preview_bgr = np.asarray(preview_bgr)
+ if preview_bgr.shape[:2] != (rgb_h, rgb_w) or preview_bgr.ndim != 3 or preview_bgr.shape[2] != 3:
+ raise RuntimeError(f"RawProcessorPreview retornou raster inesperado: {preview_bgr.shape}, esperado {(rgb_h, rgb_w, 3)}")
+
+ orientation = resolve_rgb_annotation_orientation(module_params, (rgb_w, rgb_h))
+ preview_bgr = apply_rgb_annotation_orientation_bgr(preview_bgr, orientation)
+ oriented_w, oriented_h = orientation["oriented_size"]
+ if preview_bgr.shape[:2] != (oriented_h, oriented_w):
+ raise RuntimeError(f"Orientação produziu {preview_bgr.shape[:2]}, esperado {(oriented_h, oriented_w)}")
+
+ transformed = bool(orientation["rotate_deg"] or orientation["flip_horizontal"] or orientation["flip_vertical"])
+ report = {
+ **ANNOTATION_PREVIEW_CONFIG,
+ "camera_id": "CAM_A",
+ "bayer_pattern": bayer,
+ "bayer_pattern_source": "module_params_authoritative",
+ "bayer_metadata_conflicts": bayer_conflicts,
+ "geometry": "rgb_canonical_oriented_no_external_undistort",
+ "source_space": orientation["input_space"],
+ "coordinate_space": orientation["output_space"],
+ "source_image_size": [rgb_w, rgb_h],
+ "image_size": [oriented_w, oriented_h],
+ "orientation_applied": {
+ "rotate_deg": int(orientation["rotate_deg"]),
+ "flip_horizontal": bool(orientation["flip_horizontal"]),
+ "flip_vertical": bool(orientation["flip_vertical"]),
+ },
+ "orientation_apply_stage": orientation["apply_stage"],
+ "pixel_correspondence": "deterministic_orientation_of_rgb_sensor_raster",
+ "calibrations_applied": ["camera_orientation"] if transformed else [],
+ "module_params_path_used": str(module_params_path),
+ "mask_contract": {
+ "coordinate_space": orientation["output_space"],
+ "already_oriented": True,
+ "normalize_must_not_reapply_camera_orientation": True,
+ "downstream_geometry": ["common_crop", "final_resize_nearest"],
+ },
+ }
+ return np.ascontiguousarray(preview_bgr), report
+
+
+def ensure_canonical_preview(bundle: SampleBundle, cache_root: Path, module_params_override: Optional[Path] = None) -> Tuple[Path, dict, str]:
+ meta = load_json(bundle.meta_path)
+ try:
+ mp_path = resolve_module_params_path(bundle.meta_path, meta, module_params_override)
+ cache_path = _preview_cache_path(bundle, cache_root, mp_path)
+ report_path = cache_path.with_suffix(".preview.json")
+ if cache_path.is_file() and report_path.is_file():
+ return cache_path, load_json(report_path), "cache"
+
+ preview_bgr, report = build_canonical_preview_bgr(bundle, module_params_override)
+ cache_root.mkdir(parents=True, exist_ok=True)
+ tmp = cache_path.with_name(cache_path.stem + ".tmp.png")
+ if not cv2.imwrite(str(tmp), preview_bgr):
+ raise RuntimeError(f"Falha ao salvar cache de preview: {tmp}")
+ tmp.replace(cache_path)
+ report_path.write_text(json.dumps(report, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
+ return cache_path, report, "raw_reconstructed"
+ except Exception:
+ # Compatibilidade: um PNG antigo ainda pode permitir triagem, mas sem
+ # fingir que ele tem o contrato canônico novo.
+ if bundle.preview_path is not None and bundle.preview_path.is_file():
+ report = {
+ "schema": "legacy_saved_preview_fallback",
+ "version": GENERATED_PREVIEW_VERSION,
+ "purpose": "human_annotation_only",
+ "coordinate_space": "unknown_legacy_saved_preview",
+ "mask_contract": {"normalize_must_not_reapply_camera_orientation": None},
+ }
+ return bundle.preview_path, report, "legacy_saved_fallback"
+ raise
+
+
+def choose_unique_output_base(label_root: Path, desired_base: str) -> str:
+ """Escolhe um stem único e coerente para preview/meta/bins da amostra."""
+ k = 0
+ while True:
+ base = desired_base if k == 0 else f"{desired_base}__{k}"
+ candidates = [
+ label_root / "previews" / f"{base}.png",
+ label_root / "metas" / f"{base}.json",
+ *[label_root / "bins" / f"{base}_{cam}.bin" for cam in REQUIRED_CAMERAS],
+ ]
+ if not any(c.exists() for c in candidates):
+ return base
+ k += 1
+
+
+def write_destination_meta(src_meta_path: Path, dst_meta_path: Path, dst_preview_name: str, preview_report: dict, preview_origin: str, payload_files: Optional[Dict[str, str]] = None):
+ meta = load_json(src_meta_path)
+ meta["saved_preview_path"] = dst_preview_name
+ meta["saved_preview_method"] = "raw_processor_preview_rgb_beauty_canonical_sorter"
+ meta["raw_preview_reference_camera"] = "CAM_A"
+ if payload_files:
+ meta["saved_payload_type"] = "raw_native_multi"
+ meta["saved_payload_paths"] = dict(payload_files)
+ meta["annotation_preview"] = preview_report
+ meta["sorting_preview_origin"] = preview_origin
+ meta["sorting_preview_version"] = GENERATED_PREVIEW_VERSION
+ tmp = dst_meta_path.with_suffix(dst_meta_path.suffix + ".tmp")
+ tmp.parent.mkdir(parents=True, exist_ok=True)
+ with tmp.open("w", encoding="utf-8") as f:
+ json.dump(meta, f, ensure_ascii=False, indent=2)
+ f.write("\n")
+ tmp.replace(dst_meta_path)
+
+
# ============================================================
# Reconstrução de preview diretamente do .bin
# ============================================================
@@ -556,13 +925,19 @@ def bayer_to_rgb(raw16: np.ndarray, bayer_pattern: str, bit_depth: int) -> Image
if cv2 is not None:
pattern = (bayer_pattern or "BGGR").upper()
- code_map = {
- "BGGR": cv2.COLOR_BAYER_BG2RGB,
- "RGGB": cv2.COLOR_BAYER_RG2RGB,
- "GBRG": cv2.COLOR_BAYER_GB2RGB,
- "GRBG": cv2.COLOR_BAYER_GR2RGB,
- }
- code = code_map.get(pattern, cv2.COLOR_BAYER_BG2RGB)
+ # Use nomes completos. Os aliases curtos do OpenCV são históricos e
+ # podem representar o mosaico oposto, trocando R/B.
+ attr = f"COLOR_Bayer{pattern}2RGB"
+ code = getattr(cv2, attr, None)
+ if code is None:
+ # fallback equivalente para OpenCV antigo
+ alias = {
+ "RGGB": cv2.COLOR_BAYER_BG2RGB,
+ "BGGR": cv2.COLOR_BAYER_RG2RGB,
+ "GRBG": cv2.COLOR_BAYER_GB2RGB,
+ "GBRG": cv2.COLOR_BAYER_GR2RGB,
+ }
+ code = alias.get(pattern, alias["RGGB"])
rgb = cv2.cvtColor(raw8, code)
return Image.fromarray(rgb)
@@ -578,7 +953,7 @@ def mono_to_rgb(raw16_or_u8: np.ndarray, bit_depth: int = 10) -> Image.Image:
return Image.fromarray(gray, mode="L").convert("RGB")
-def build_bin_preview_image(bundle: SampleBundle, cam_id: str) -> Tuple[Image.Image, str]:
+def build_bin_preview_image(bundle: SampleBundle, cam_id: str, module_params_override: Optional[Path] = None) -> Tuple[Image.Image, str]:
if cam_id not in bundle.bin_by_camera:
raise RuntimeError(f"{cam_id} não encontrado nos .bin desta amostra")
@@ -594,7 +969,15 @@ def build_bin_preview_image(bundle: SampleBundle, cam_id: str) -> Tuple[Image.Im
raw_format = str(camera_info.get("raw_format") or "").upper()
bit_depth = int(camera_info.get("bit_depth", 10) or 10)
sensor_width = int(camera_info.get("width") or meta.get("sensor_width", 1280) or 1280)
- bayer = str(camera_info.get("bayer_pattern") or meta.get("bayer_pattern", "BGGR"))
+ if cam_id == "CAM_A":
+ try:
+ mp_path = resolve_module_params_path(bundle.meta_path, meta, module_params_override)
+ mp = load_json(mp_path)
+ bayer, _ = _authoritative_rgb_bayer(meta, mp)
+ except Exception:
+ bayer = str(camera_info.get("bayer_pattern") or meta.get("bayer_pattern", "BGGR"))
+ else:
+ bayer = str(camera_info.get("bayer_pattern") or meta.get("bayer_pattern", "BGGR"))
# USB/RGB pronto em HWC
if arr.ndim == 3 and arr.shape[-1] == 3 and arr.dtype == np.uint8:
@@ -636,8 +1019,8 @@ def build_bin_preview_image(bundle: SampleBundle, cam_id: str) -> Tuple[Image.Im
def add_label_to_image(img: Image.Image, title: str, subtitle: str = "") -> Image.Image:
- out = img.convert("RGB").copy()
- draw = ImageDraw.Draw(out)
+ """Adiciona cabeçalho FORA do raster, sem esconder nenhum pixel da imagem."""
+ src = img.convert("RGB")
try:
font_title = ImageFont.truetype("arial.ttf", 22)
font_sub = ImageFont.truetype("arial.ttf", 15)
@@ -645,10 +1028,10 @@ def add_label_to_image(img: Image.Image, title: str, subtitle: str = "") -> Imag
font_title = ImageFont.load_default()
font_sub = ImageFont.load_default()
- # caixa translúcida fake: retângulo sólido escuro para legibilidade
- max_w = out.size[0]
box_h = 58 if subtitle else 34
- draw.rectangle((0, 0, max_w, box_h), fill=(0, 0, 0))
+ out = Image.new("RGB", (src.size[0], src.size[1] + box_h), (0, 0, 0))
+ out.paste(src, (0, box_h))
+ draw = ImageDraw.Draw(out)
draw.text((10, 7), title, fill=(255, 230, 80), font=font_title)
if subtitle:
short = subtitle if len(subtitle) <= 115 else subtitle[:112] + "..."
@@ -717,30 +1100,49 @@ def compose_preview_grid(panels: List[Tuple[str, Image.Image, str]], display_hei
return canvas
-def build_display_image(bundle: SampleBundle, show_bin_previews: bool, display_height: int) -> Tuple[ImageTk.PhotoImage, str]:
+def build_display_image(
+ bundle: SampleBundle,
+ show_bin_previews: bool,
+ display_height: int,
+ cache_root: Path,
+ module_params_override: Optional[Path] = None,
+) -> Tuple[ImageTk.PhotoImage, str, Path, dict, str]:
panels: List[Tuple[str, Image.Image, str]] = []
- saved = Image.open(bundle.preview_path).convert("RGB")
- panels.append(("Preview salvo RGB", saved, bundle.preview_path.name))
+ primary_path, preview_report, preview_origin = ensure_canonical_preview(
+ bundle,
+ cache_root=cache_root,
+ module_params_override=module_params_override,
+ )
+ saved = Image.open(primary_path).convert("RGB")
+ bayer_info = str(preview_report.get("bayer_pattern") or "?")
+ origin_text = f"RAW CAM_A → RawProcessorPreview → orientação canônica | Bayer={bayer_info}"
+ conflicts = preview_report.get("bayer_metadata_conflicts") or []
+ if conflicts:
+ origin_text += " | MP prevaleceu sobre meta"
+ if preview_origin == "cache":
+ origin_text += " (cache)"
+ elif preview_origin == "legacy_saved_fallback":
+ origin_text = "PNG legado salvo (fallback; espaço não garantido)"
+ panels.append(("Preview RGB para anotação", saved, origin_text))
- status_extra = ""
+ status_extra = f"preview={preview_origin}"
if show_bin_previews:
errors = []
- for cam_id in ("CAM_A", "CAM_B", "CAM_C"):
+ for cam_id in REQUIRED_CAMERAS:
try:
- img, desc = build_bin_preview_image(bundle, cam_id)
+ img, desc = build_bin_preview_image(bundle, cam_id, module_params_override=module_params_override)
role = CAMERA_ROLE.get(cam_id, cam_id)
- panels.append((f"{cam_id} - {role} (.bin)", img, desc))
+ panels.append((f"{cam_id} - {role} (.bin nativo)", img, desc))
except Exception as e:
errors.append(f"{cam_id}: {e}")
-
if errors:
- status_extra = " | avisos: " + " ; ".join(errors[:2])
+ status_extra += " | avisos: " + " ; ".join(errors[:2])
if len(errors) > 2:
status_extra += f" ; +{len(errors)-2}"
composed = compose_preview_grid(panels, display_height=display_height)
- return ImageTk.PhotoImage(composed), status_extra
+ return ImageTk.PhotoImage(composed), status_extra, primary_path, preview_report, preview_origin
# ============================================================
@@ -772,7 +1174,7 @@ class ActionLogger:
self,
action: str,
sample_dir: Path,
- preview_path: Path,
+ preview_path: Optional[Path],
meta_path: Path,
bin_paths: List[Path],
label: Optional[str] = None,
@@ -801,7 +1203,7 @@ class ActionLogger:
action,
label or "",
sample_dir_str,
- str(preview_path.resolve()),
+ str(preview_path.resolve()) if preview_path else "",
meta_key_str,
json.dumps(bin_paths_str, ensure_ascii=False),
str(dest_sample_dir.resolve()) if dest_sample_dir else "",
@@ -813,7 +1215,7 @@ class ActionLogger:
"action": action,
"label": label,
"sample_dir": sample_dir_str,
- "preview_path": str(preview_path.resolve()),
+ "preview_path": str(preview_path.resolve()) if preview_path else None,
"meta_path": meta_key_str,
"bin_paths": bin_paths_str,
"dest_sample_dir": str(dest_sample_dir.resolve()) if dest_sample_dir else None,
@@ -833,6 +1235,7 @@ class SampleBundleSorterApp:
resume: bool,
display_height: int = 720,
show_bin_previews: bool = False,
+ module_params_override: Optional[Path] = None,
):
self.all_bundles = bundles
self.labels = labels
@@ -840,6 +1243,11 @@ class SampleBundleSorterApp:
self.move = move
self.display_height = display_height
self.show_bin_previews_var_value = show_bin_previews
+ self.module_params_override = Path(module_params_override) if module_params_override else None
+ self.preview_cache_root = out_root / ".weeds_pair_sorter_cache" / "previews"
+ self.current_primary_preview_path: Optional[Path] = None
+ self.current_preview_report: Optional[dict] = None
+ self.current_preview_origin: Optional[str] = None
self.logger = ActionLogger(out_root)
if resume:
@@ -917,11 +1325,16 @@ class SampleBundleSorterApp:
bundle = self.all_bundles[self.idx]
try:
- tk_img, status_extra = build_display_image(
+ tk_img, status_extra, primary_path, preview_report, preview_origin = build_display_image(
bundle,
show_bin_previews=self.show_bin_previews_var.get() if hasattr(self, "show_bin_previews_var") else self.show_bin_previews_var_value,
display_height=self.display_height,
+ cache_root=self.preview_cache_root,
+ module_params_override=self.module_params_override,
)
+ self.current_primary_preview_path = primary_path
+ self.current_preview_report = preview_report
+ self.current_preview_origin = preview_origin
self.preview_tk = tk_img
self.preview_label.configure(image=self.preview_tk)
except Exception as e:
@@ -935,6 +1348,7 @@ class SampleBundleSorterApp:
text=(
f"{self.idx + 1}/{len(self.all_bundles)} | "
f"sample='{bundle.sample_id}' | "
+ f"png_src={'sim' if bundle.preview_path and bundle.preview_path.is_file() else 'não'} | "
f"bins={len(bundle.bin_paths)} [{bins_text}] | "
f"mapa: {mapped_text or 'n/a'}"
)
@@ -948,30 +1362,44 @@ class SampleBundleSorterApp:
label = self.labels[label_index]
bundle = self.all_bundles[self.idx]
-
label_root = self.out_root / label
- dst_preview = unique_file(label_root / "previews" / bundle.preview_path.name)
- dst_meta = unique_file(label_root / "metas" / bundle.meta_path.name)
- dst_bins = [unique_file(label_root / "bins" / p.name) for p in bundle.bin_paths]
try:
+ primary_path, preview_report, preview_origin = ensure_canonical_preview(
+ bundle,
+ cache_root=self.preview_cache_root,
+ module_params_override=self.module_params_override,
+ )
+
+ out_base = choose_unique_output_base(label_root, bundle.sample_id)
+ dst_preview = label_root / "previews" / f"{out_base}.png"
+ dst_meta = label_root / "metas" / f"{out_base}.json"
+ dst_by_camera = {cam: label_root / "bins" / f"{out_base}_{cam}.bin" for cam in REQUIRED_CAMERAS}
+ dst_bins = [dst_by_camera[cam] for cam in REQUIRED_CAMERAS]
+ src_bins = [bundle.bin_by_camera[cam] for cam in REQUIRED_CAMERAS]
+ payload_files = {cam: dst_by_camera[cam].name for cam in REQUIRED_CAMERAS}
+
+ # Preview é artefato derivado. Sempre copiamos a versão canônica gerada,
+ # mesmo quando os RAW/meta são movidos.
+ shutil.copy2(primary_path, dst_preview)
+
if self.move:
- shutil.move(str(bundle.preview_path), str(dst_preview))
shutil.move(str(bundle.meta_path), str(dst_meta))
- for src_bin, dst_bin in zip(bundle.bin_paths, dst_bins):
+ for src_bin, dst_bin in zip(src_bins, dst_bins):
shutil.move(str(src_bin), str(dst_bin))
+ # Reescreve o meta já no destino com o contrato do preview.
+ write_destination_meta(dst_meta, dst_meta, dst_preview.name, preview_report, preview_origin, payload_files)
else:
- shutil.copy2(bundle.preview_path, dst_preview)
- shutil.copy2(bundle.meta_path, dst_meta)
- for src_bin, dst_bin in zip(bundle.bin_paths, dst_bins):
+ write_destination_meta(bundle.meta_path, dst_meta, dst_preview.name, preview_report, preview_origin, payload_files)
+ for src_bin, dst_bin in zip(src_bins, dst_bins):
shutil.copy2(src_bin, dst_bin)
self.logger.log(
action="assign",
sample_dir=bundle.sample_dir,
- preview_path=bundle.preview_path,
- meta_path=bundle.meta_path,
- bin_paths=bundle.bin_paths,
+ preview_path=primary_path,
+ meta_path=bundle.meta_path if not self.move else dst_meta,
+ bin_paths=src_bins if not self.move else dst_bins,
label=label,
dest_sample_dir=label_root,
)
@@ -980,9 +1408,9 @@ class SampleBundleSorterApp:
"action": "assign",
"label": label,
"sample_src": bundle.sample_dir,
- "preview_src": bundle.preview_path,
+ "source_preview_src": bundle.preview_path,
"meta_src": bundle.meta_path,
- "bin_srcs": list(bundle.bin_paths),
+ "bin_srcs": list(src_bins),
"preview_dst": dst_preview,
"meta_dst": dst_meta,
"bin_dsts": dst_bins,
@@ -990,7 +1418,7 @@ class SampleBundleSorterApp:
"index": self.idx,
})
- self.status_var.set(f"{'Movido' if self.move else 'Copiado'} → '{label}': {bundle.sample_id}")
+ self.status_var.set(f"{'Movido' if self.move else 'Copiado'} → '{label}': {bundle.sample_id} | preview canônico")
self.idx += 1
if self.idx >= len(self.all_bundles):
messagebox.showinfo("Concluído", "Você chegou ao final da fila!")
@@ -1005,13 +1433,11 @@ class SampleBundleSorterApp:
def undo(self):
if not self.history:
return
-
last = self.history.pop()
if last["action"] != "assign":
return
try:
- preview_src = Path(last["preview_src"])
meta_src = Path(last["meta_src"])
bin_srcs = [Path(p) for p in last["bin_srcs"]]
preview_dst = Path(last["preview_dst"])
@@ -1019,23 +1445,29 @@ class SampleBundleSorterApp:
bin_dsts = [Path(p) for p in last["bin_dsts"]]
if last["moved"]:
- shutil.move(str(preview_dst), str(preview_src))
- shutil.move(str(meta_dst), str(meta_src))
+ # O meta de destino foi enriquecido pelo sorter. Ao desfazer, ele volta
+ # enriquecido, o que é seguro e preserva provenance do preview.
+ if meta_dst.exists():
+ meta_src.parent.mkdir(parents=True, exist_ok=True)
+ shutil.move(str(meta_dst), str(meta_src))
for dst_bin, src_bin in zip(bin_dsts, bin_srcs):
- shutil.move(str(dst_bin), str(src_bin))
+ if dst_bin.exists():
+ src_bin.parent.mkdir(parents=True, exist_ok=True)
+ shutil.move(str(dst_bin), str(src_bin))
else:
- if preview_dst.exists():
- preview_dst.unlink()
if meta_dst.exists():
meta_dst.unlink()
for dst_bin in bin_dsts:
if dst_bin.exists():
dst_bin.unlink()
+ if preview_dst.exists():
+ preview_dst.unlink()
+
self.logger.log(
action="undo",
sample_dir=Path(last["sample_src"]),
- preview_path=preview_src,
+ preview_path=Path(last["source_preview_src"]) if last.get("source_preview_src") else None,
meta_path=meta_src,
bin_paths=bin_srcs,
label=last["label"],
@@ -1043,9 +1475,8 @@ class SampleBundleSorterApp:
)
self.idx = max(0, min(last.get("index", self.idx), len(self.all_bundles) - 1))
- self.status_var.set(f"Desfeito ← '{last['label']}': {preview_src.stem}")
+ self.status_var.set(f"Desfeito ← '{last['label']}': {meta_src.stem}")
self.render()
-
except Exception as e:
messagebox.showerror("Erro", f"Falha no undo: {e}")
self.status_var.set(f"ERRO: {e}")
@@ -1109,7 +1540,7 @@ class SetupWindow:
def __init__(self):
self.root = tk.Tk()
self.root.title("Configurar - Weed Pair Sorter")
- self.root.geometry("780x590")
+ self.root.geometry("820x670")
frm_in = tk.LabelFrame(self.root, text="Pastas de entrada (raízes com subpastas de amostras)")
frm_in.pack(fill=tk.BOTH, expand=False, padx=10, pady=8)
@@ -1129,6 +1560,12 @@ class SetupWindow:
tk.Entry(frm_out, textvariable=self.out_root_var).pack(side=tk.LEFT, fill=tk.X, expand=True, padx=6, pady=6)
tk.Button(frm_out, text="Escolher...", command=self.choose_out_root).pack(side=tk.RIGHT, padx=6, pady=6)
+ frm_mp = tk.LabelFrame(self.root, text="Module params fallback/override (opcional)")
+ frm_mp.pack(fill=tk.X, expand=False, padx=10, pady=8)
+ self.module_params_var = tk.StringVar(value="")
+ tk.Entry(frm_mp, textvariable=self.module_params_var).pack(side=tk.LEFT, fill=tk.X, expand=True, padx=6, pady=6)
+ tk.Button(frm_mp, text="Escolher JSON...", command=self.choose_module_params).pack(side=tk.RIGHT, padx=6, pady=6)
+
frm_labels = tk.LabelFrame(self.root, text="Labels (classes) separadas por vírgula")
frm_labels.pack(fill=tk.X, expand=False, padx=10, pady=8)
self.labels_var = tk.StringVar(value="chao,chao_cana,chao_erva,chao_cana_erva,cana,cana_erva,erva")
@@ -1182,6 +1619,14 @@ class SetupWindow:
if p:
self.out_root_var.set(p)
+ def choose_module_params(self):
+ p = filedialog.askopenfilename(
+ title="Selecione o module_params/modelmp usado pela câmera",
+ filetypes=[("JSON", "*.json"), ("Todos", "*.*")],
+ )
+ if p:
+ self.module_params_var.set(p)
+
def start(self):
inputs = [self.inputs_listbox.get(i) for i in range(self.inputs_listbox.size())]
out_root = self.out_root_var.get().strip()
@@ -1206,6 +1651,7 @@ class SetupWindow:
self.resume_var.get(),
self.height_var.get(),
self.show_bin_previews_var.get(),
+ Path(self.module_params_var.get().strip()) if self.module_params_var.get().strip() else None,
)
self.root.destroy()
@@ -1220,7 +1666,7 @@ def run_with_gui_setup():
if not res:
return
- input_folders, labels, out_root, move, resume, height, show_bin_previews = res
+ input_folders, labels, out_root, move, resume, height, show_bin_previews, module_params_override = res
bundles = collect_all_bundles(input_folders)
if not bundles:
@@ -1240,6 +1686,7 @@ def run_with_gui_setup():
resume=resume,
display_height=height,
show_bin_previews=show_bin_previews,
+ module_params_override=module_params_override,
)
app.run()
@@ -1255,6 +1702,7 @@ def main():
parser.add_argument("--resume", action="store_true", help="Pular itens já presentes no sorting_log.csv")
parser.add_argument("--display-height", type=int, default=760, help="Altura total de exibição do preview/grid (px)")
parser.add_argument("--show-bin-previews", action="store_true", help="Inicia mostrando CAM_A/CAM_B/CAM_C reconstruídas dos .bin")
+ parser.add_argument("--module-params", default=None, help="Fallback/override do module_params/modelmp para reconstruir preview canônico")
parser.add_argument("--no-gui-setup", action="store_true", help="Não abrir a GUI de setup")
args = parser.parse_args()
@@ -1274,11 +1722,9 @@ def main():
bundles = collect_all_bundles(input_folders)
if not bundles:
print(
- "Nenhuma amostra válida encontrada. "
- "Formatos aceitos: preview.png + meta.json + CAM_A/B/C.bin, "
- ".png/json + _CAM_A/B/C.bin, "
- "layout root/previews + root/metas + root/bins, "
- "ou formato antigo _cam0/cam1/cam2.bin."
+ "Nenhuma amostra RAW completa encontrada. "
+ "O PNG não é obrigatório: informe meta.json + CAM_A/B/C.bin. "
+ "Também aceito layout root/metas + root/bins e formatos antigos com tripleta completa."
)
sys.exit(1)
@@ -1290,6 +1736,7 @@ def main():
resume=args.resume,
display_height=args.display_height,
show_bin_previews=args.show_bin_previews,
+ module_params_override=Path(args.module_params) if args.module_params else None,
)
app.run()
diff --git a/Python/OAK/datasets/oak-fcc-3/_2_apply_review_masks.py b/Python/OAK/datasets/oak-fcc-3/_2_apply_review_masks.py
index 2fcb2d3f7..e814cfb04 100644
--- a/Python/OAK/datasets/oak-fcc-3/_2_apply_review_masks.py
+++ b/Python/OAK/datasets/oak-fcc-3/_2_apply_review_masks.py
@@ -2,56 +2,63 @@
# -*- coding: utf-8 -*-
"""
-_2_apply_review_masks_final.py
+_2_apply_review_masks.py
-Aplica as máscaras revisadas de volta em dataset/brutas/group.
+Aplica máscaras revisadas de volta em dataset/brutas/group com política
+CONSERVADORA: qualquer ambiguidade é isolada em quarentena e NUNCA entra no
+--apply.
-VERSÃO FINAL / RÁPIDA
+Regras de segurança:
+- 1 máscara de review + 1 destino nas BRUTAS -> elegível para apply.
+- Mesmo base em mais de um grupo/destino das BRUTAS -> QUARENTENA.
+- Mesmo base mais de uma vez no REVIEW -> QUARENTENA, mesmo se as máscaras
+ forem pixel-a-pixel idênticas.
+- Duplicidade simultânea em REVIEW e BRUTAS -> QUARENTENA.
+- Bases sem destino -> SKIP, sem alteração.
+- O --apply contém uma checagem final de invariantes e só aceita exatamente
+ 1 review mask + 1 target por base.
-Princípio:
-- O nome-base da máscara revisada é a chave.
-- Os previews das BRUTAS são indexados UMA ÚNICA VEZ em memória.
-- Se o mesmo base existir em MAIS DE UM grupo das BRUTAS, a máscara revisada
- é aplicada em TODOS eles. Isso é intencional: são duplicatas que serão
- consolidadas posteriormente pelo reorganizador do dataset.
-- Se o mesmo base existir MAIS DE UMA VEZ dentro do próprio REVIEW:
- * se as máscaras forem pixel-a-pixel equivalentes após normalização para
- raw_size, tratamos como uma única revisão;
- * se forem diferentes, é CONFLITO REAL e esse base é pulado para não
- escolher arbitrariamente uma revisão.
+Quarentena:
+- É gerada também no dry-run (somente cópias; nada nas BRUTAS é alterado).
+- Para cada caso ambíguo é criada uma pasta por combinação review x preview.
+- Cada pasta contém:
+ preview. -> preview original das BRUTAS
+ mask.png -> máscara original vinda do REVIEW
+ info.txt -> origem exata, grupos e target correspondente
-Transformação:
-- config["resolucao"] = resolução do review/treino, ex. 960x600
-- config["raw_size"] = resolução RAW, ex. 1280x800
-- Máscaras categóricas são redimensionadas EXCLUSIVAMENTE com INTER_NEAREST.
+Exemplo:
+ dataset/brutas/review_quarantine/run_YYYYMMDD_HHMMSS/
+ QUARENTENA_MULTI_TARGET/
+ /
+ pair_001__review-X__preview-A/
+ preview.jpg
+ mask.png
+ info.txt
+ pair_002__review-X__preview-B/
+ ...
-Performance:
-- O dry-run não lê milhares de imagens.
-- Só lê imagens no dry-run quando um mesmo base aparece várias vezes no REVIEW,
- para confirmar se essas revisões duplicadas são equivalentes.
-- No --apply, cada base lógico é lido/redimensionado apenas UMA vez e depois
- gravado em todos os destinos encontrados.
-- A máscara antiga NÃO é lida.
-- Não há comparação com máscara antiga, hash global, paleta ou backup.
+Uso dry-run:
-Uso:
-
- python .\\_2_apply_review_masks_final.py `
+ python .\\_2_apply_review_masks.py `
--review-root "C:\\Users\\USER\\Desktop\\fotos_multiespectrais\\review" `
--brutas-root dataset\\brutas\\group `
--labelmap dataset\\labelmap.txt `
--config config.json
- python .\\_2_apply_review_masks_final.py `
+Uso apply:
+
+ python .\\_2_apply_review_masks.py `
--review-root "C:\\Users\\USER\\Desktop\\fotos_multiespectrais\\review" `
--brutas-root dataset\\brutas\\group `
--labelmap dataset\\labelmap.txt `
--config config.json `
--apply
+Opcional:
+ --quarantine-root caminho\\para\\quarentena
+
Observação:
---labelmap é aceito apenas para manter compatibilidade com o comando antigo.
-Esta versão não precisa dele.
+--labelmap é aceito apenas para compatibilidade com o comando antigo.
"""
from __future__ import annotations
@@ -60,12 +67,14 @@ import argparse
import csv
import json
import os
+import re
+import shutil
import sys
from collections import defaultdict
from dataclasses import dataclass
from datetime import datetime
from pathlib import Path
-from typing import Dict, Iterable, List, Tuple
+from typing import Dict, Iterable, List, Optional, Tuple
import cv2
import numpy as np
@@ -89,7 +98,13 @@ class LogicalReview:
representative: Path
targets: List[Path]
preview_paths: List[Path]
- duplicate_review_equivalent: bool = False
+
+
+@dataclass
+class QuarantineResult:
+ case_dir: Path
+ pair_count: int
+ errors: List[str]
def load_sizes(config_path: Path) -> Sizes:
@@ -111,9 +126,8 @@ def load_sizes(config_path: Path) -> Sizes:
try:
w, h = int(value[0]), int(value[1])
except Exception:
- raise RuntimeError(
- f'config["{key}"] inválido: {value!r}'
- )
+ raise RuntimeError(f'config["{key}"] inválido: {value!r}')
+
if w <= 0 or h <= 0:
raise RuntimeError(
f'config["{key}"] deve conter valores positivos: {value!r}'
@@ -123,7 +137,6 @@ def load_sizes(config_path: Path) -> Sizes:
review_w, review_h = parse("resolucao")
raw_w, raw_h = parse("raw_size")
- # Resize puro é seguro geometricamente apenas com a mesma proporção.
if review_w * raw_h != raw_w * review_h:
raise RuntimeError(
"resolucao e raw_size possuem aspect ratios diferentes: "
@@ -146,8 +159,7 @@ def discover_review_masks(review_root: Path) -> List[Path]:
e:
review//final_masks/.png
- Se existir final_masks, usa somente esses arquivos para não engolir
- predictions/previews auxiliares.
+ Se existir qualquer final_masks, usa somente arquivos dentro de final_masks.
"""
final_masks = sorted(
p for p in review_root.rglob("*.png")
@@ -158,9 +170,7 @@ def discover_review_masks(review_root: Path) -> List[Path]:
masks: List[Path] = []
for group_dir in sorted(p for p in review_root.iterdir() if p.is_dir()):
- masks.extend(
- sorted(p for p in group_dir.glob("*.png") if p.is_file())
- )
+ masks.extend(sorted(p for p in group_dir.glob("*.png") if p.is_file()))
return masks
@@ -170,13 +180,12 @@ def review_group(path: Path) -> str:
return path.parent.name
-def build_preview_index(brutas_root: Path) -> Dict[str, List[Path]]:
- """
- Varre o filesystem UMA ÚNICA VEZ.
+def preview_group(path: Path) -> str:
+ # ...//previews/.
+ return path.parent.parent.name
- Resultado:
- base -> [preview_path_1, preview_path_2, ...]
- """
+
+def build_preview_index(brutas_root: Path) -> Dict[str, List[Path]]:
index: Dict[str, List[Path]] = defaultdict(list)
for group_dir in sorted(p for p in brutas_root.iterdir() if p.is_dir()):
@@ -199,15 +208,6 @@ def group_reviews_by_base(masks: Iterable[Path]) -> Dict[str, List[Path]]:
def load_and_resize_mask(path: Path, sizes: Sizes) -> np.ndarray:
- """
- Abre uma máscara e a normaliza para raw_size.
-
- Aceita:
- - config.resolucao
- - config.raw_size
-
- Qualquer outro tamanho é erro.
- """
img = cv2.imread(str(path), cv2.IMREAD_COLOR)
if img is None:
raise RuntimeError(f"não consegui abrir máscara: {path}")
@@ -236,9 +236,8 @@ def duplicate_reviews_are_equivalent(
sizes: Sizes,
) -> Tuple[bool, str]:
"""
- Usado SOMENTE quando o mesmo base aparece várias vezes no review.
- Como são pouquíssimos casos, podemos comparar pixel a pixel sem afetar
- a performance geral.
+ A equivalência serve APENAS para diagnóstico/relatório.
+ Mesmo equivalentes, reviews duplicados continuam indo para quarentena.
"""
if len(paths) <= 1:
return True, ""
@@ -261,17 +260,10 @@ def duplicate_reviews_are_equivalent(
+ " | ".join(str(p) for p in paths),
)
- return True, ""
+ return True, "máscaras duplicadas equivalentes pixel-a-pixel após normalização"
-def unique_targets_from_previews(
- previews: List[Path],
- base: str,
-) -> List[Path]:
- """
- Um mesmo stem pode, em teoria, aparecer em PNG e JPG dentro da mesma pasta.
- Deduplicamos pelo caminho final da mask.
- """
+def unique_targets_from_previews(previews: List[Path], base: str) -> List[Path]:
by_target: Dict[str, Path] = {}
for preview in previews:
@@ -282,12 +274,7 @@ def unique_targets_from_previews(
def atomic_write_png(img: np.ndarray, dst: Path) -> None:
- """
- PNG continua lossless. Compressão 1 prioriza velocidade.
- Escreve em temporário e troca atomicamente.
- """
dst.parent.mkdir(parents=True, exist_ok=True)
-
tmp = dst.with_name(dst.stem + ".tmp_review_apply.png")
ok = cv2.imwrite(
@@ -301,11 +288,115 @@ def atomic_write_png(img: np.ndarray, dst: Path) -> None:
os.replace(tmp, dst)
+def safe_component(value: str, max_len: int = 120) -> str:
+ value = re.sub(r'[<>:"/\\|?*\x00-\x1f]', "_", value)
+ value = value.strip().rstrip(".")
+ if not value:
+ value = "sem_nome"
+ return value[:max_len]
+
+
+def quarantine_case(
+ *,
+ quarantine_root: Path,
+ status: str,
+ base: str,
+ review_paths: List[Path],
+ previews: List[Path],
+ targets: List[Path],
+ message: str,
+) -> QuarantineResult:
+ """
+ Gera uma pasta por combinação REVIEW x PREVIEW.
+
+ Isso é deliberadamente redundante: para poucos casos ambíguos, é melhor
+ mostrar todas as combinações ao operador do que tentar adivinhar qual
+ pareamento é o correto.
+ """
+ case_dir = quarantine_root / safe_component(status) / safe_component(base)
+ case_dir.mkdir(parents=True, exist_ok=True)
+
+ errors: List[str] = []
+ pair_count = 0
+
+ # Manifesto geral do caso.
+ manifest = {
+ "status": status,
+ "base": base,
+ "message": message,
+ "review_masks": [str(p) for p in review_paths],
+ "previews": [str(p) for p in previews],
+ "targets": [str(p) for p in targets],
+ }
+ try:
+ (case_dir / "case.json").write_text(
+ json.dumps(manifest, ensure_ascii=False, indent=2),
+ encoding="utf-8",
+ )
+ except Exception as e:
+ errors.append(f"falha ao gravar case.json: {e}")
+
+ # Casos de quarentena aqui sempre devem ter pelo menos um preview e uma mask.
+ # Ainda assim, tratamos defensivamente para não abortar o preflight inteiro.
+ if not review_paths or not previews:
+ errors.append("caso sem review mask ou sem preview; nenhuma dupla criada")
+ return QuarantineResult(case_dir=case_dir, pair_count=0, errors=errors)
+
+ pair_no = 0
+ for r_idx, review_path in enumerate(review_paths, 1):
+ r_group = review_group(review_path)
+
+ for p_idx, preview_path in enumerate(previews, 1):
+ p_group = preview_group(preview_path)
+ pair_no += 1
+
+ pair_name = (
+ f"pair_{pair_no:03d}__"
+ f"review-{safe_component(r_group, 45)}__"
+ f"preview-{safe_component(p_group, 45)}"
+ )
+ pair_dir = case_dir / pair_name
+ pair_dir.mkdir(parents=True, exist_ok=True)
+
+ preview_dst = pair_dir / f"preview{preview_path.suffix.lower()}"
+ mask_dst = pair_dir / "mask.png"
+
+ target = preview_path.parent.parent / "masks" / f"{base}.png"
+
+ try:
+ shutil.copy2(preview_path, preview_dst)
+ shutil.copy2(review_path, mask_dst)
+
+ info = (
+ f"status={status}\n"
+ f"base={base}\n"
+ f"message={message}\n"
+ f"review_index={r_idx}/{len(review_paths)}\n"
+ f"review_group={r_group}\n"
+ f"review_original={review_path}\n"
+ f"preview_index={p_idx}/{len(previews)}\n"
+ f"preview_group={p_group}\n"
+ f"preview_original={preview_path}\n"
+ f"target_correspondente={target}\n"
+ )
+ (pair_dir / "info.txt").write_text(info, encoding="utf-8")
+ pair_count += 1
+ except Exception as e:
+ errors.append(f"{pair_name}: {e}")
+
+ return QuarantineResult(
+ case_dir=case_dir,
+ pair_count=pair_count,
+ errors=errors,
+ )
+
+
def write_report(path: Path, rows: List[dict]) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
fields = [
"status",
+ "apply_eligible",
"base",
"review_count",
"review_groups",
@@ -315,6 +406,8 @@ def write_report(path: Path, rows: List[dict]) -> None:
"previews",
"target_count",
"targets",
+ "quarantine_dir",
+ "quarantine_pairs",
"message",
]
@@ -332,8 +425,8 @@ def write_report(path: Path, rows: List[dict]) -> None:
def main() -> int:
ap = argparse.ArgumentParser(
description=(
- "Aplica rapidamente masks revisadas em todas as cópias "
- "correspondentes encontradas nas BRUTAS."
+ "Aplica masks revisadas somente quando o mapeamento é 1:1; "
+ "toda duplicidade é enviada para quarentena visual."
)
)
ap.add_argument("--review-root", required=True)
@@ -344,10 +437,18 @@ def main() -> int:
ap.add_argument("--labelmap", default="", help=argparse.SUPPRESS)
ap.add_argument("--report", default="")
+ ap.add_argument(
+ "--quarantine-root",
+ default="",
+ help=(
+ "Pasta-base da quarentena. Se omitido, usa "
+ "/../review_quarantine/run_TIMESTAMP."
+ ),
+ )
ap.add_argument(
"--apply",
action="store_true",
- help="Sem esta flag, faz somente dry-run.",
+ help="Sem esta flag, faz dry-run e gera somente relatório/quarentena.",
)
args = ap.parse_args()
@@ -356,28 +457,37 @@ def main() -> int:
config_path = Path(args.config).resolve()
if not review_root.is_dir():
- raise SystemExit(
- f"[ERRO] review-root não encontrado: {review_root}"
- )
+ raise SystemExit(f"[ERRO] review-root não encontrado: {review_root}")
if not brutas_root.is_dir():
- raise SystemExit(
- f"[ERRO] brutas-root não encontrado: {brutas_root}"
- )
+ raise SystemExit(f"[ERRO] brutas-root não encontrado: {brutas_root}")
sizes = load_sizes(config_path)
+ timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
+
+ report_path = (
+ Path(args.report).resolve()
+ if args.report
+ else brutas_root.parent / f"apply_review_masks_safe_{timestamp}.csv"
+ )
+
+ quarantine_root = (
+ Path(args.quarantine_root).resolve() / f"run_{timestamp}"
+ if args.quarantine_root
+ else brutas_root.parent / "review_quarantine" / f"run_{timestamp}"
+ )
print("[CONFIG]")
print(
- f" resolucao : {sizes.review_w}x{sizes.review_h} "
+ f" resolucao : {sizes.review_w}x{sizes.review_h} "
"(review/treino)"
)
print(
- f" raw_size : {sizes.raw_w}x{sizes.raw_h} "
+ f" raw_size : {sizes.raw_w}x{sizes.raw_h} "
"(brutas)"
)
- print(
- " resize : cv2.INTER_NEAREST"
- )
+ print(" resize : cv2.INTER_NEAREST")
+ print(" política : SOMENTE mapeamento 1 review : 1 target")
+ print(f" quarantine root : {quarantine_root}")
masks = discover_review_masks(review_root)
if not masks:
@@ -394,34 +504,33 @@ def main() -> int:
"encontrados nas BRUTAS."
)
- timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
- report_path = (
- Path(args.report).resolve()
- if args.report
- else brutas_root.parent
- / f"apply_review_masks_final_{timestamp}.csv"
- )
-
- print("=" * 96)
- print("APPLY REVIEW MASKS - FINAL")
+ print("=" * 100)
+ print("APPLY REVIEW MASKS - SAFE / QUARANTINE")
print(f"Modo : {'APPLY' if args.apply else 'DRY-RUN'}")
print(f"Review root : {review_root}")
print(f"Brutas root : {brutas_root}")
print(f"Arquivos review : {len(masks)}")
print(f"Bases review : {len(reviews_by_base)}")
- print("=" * 96)
+ print("=" * 100)
rows: List[dict] = []
logical_reviews: List[LogicalReview] = []
not_found = 0
- duplicate_review_ok = 0
- duplicate_review_conflict = 0
- multi_target_bases = 0
+ quarantine_bases = 0
+ quarantine_pairs = 0
+ quarantine_copy_errors = 0
+
+ q_multi_target = 0
+ q_review_dup_equivalent = 0
+ q_review_dup_conflict = 0
+ q_mixed_equivalent = 0
+ q_mixed_conflict = 0
+
total_target_files = 0
# ------------------------------------------------------------------
- # PREFLIGHT LEVE
+ # PREFLIGHT CONSERVADOR
# ------------------------------------------------------------------
for base in sorted(reviews_by_base):
review_paths = reviews_by_base[base]
@@ -429,12 +538,11 @@ def main() -> int:
targets = unique_targets_from_previews(previews, base)
groups_review = sorted({review_group(p) for p in review_paths})
- groups_preview = sorted(
- {p.parent.parent.name for p in previews}
- )
+ groups_preview = sorted({preview_group(p) for p in previews})
row = {
"status": "",
+ "apply_eligible": "NAO",
"base": base,
"review_count": len(review_paths),
"review_groups": " | ".join(groups_review),
@@ -444,53 +552,101 @@ def main() -> int:
"previews": " | ".join(str(p) for p in previews),
"target_count": len(targets),
"targets": " | ".join(str(p) for p in targets),
+ "quarantine_dir": "",
+ "quarantine_pairs": 0,
"message": "",
}
if not targets:
not_found += 1
row["status"] = "NAO_ENCONTRADO"
- row["message"] = (
- "nenhum preview correspondente encontrado nas BRUTAS"
- )
+ row["message"] = "nenhum preview correspondente encontrado nas BRUTAS"
rows.append(row)
continue
- duplicate_equivalent = False
+ review_duplicate = len(review_paths) > 1
+ multi_target = len(targets) > 1
- if len(review_paths) > 1:
+ quarantine_status: Optional[str] = None
+ quarantine_message = ""
+
+ if review_duplicate:
equivalent, reason = duplicate_reviews_are_equivalent(
review_paths,
sizes,
)
- if not equivalent:
- duplicate_review_conflict += 1
- row["status"] = "CONFLITO_REVIEW_DUPLICADO"
- row["message"] = reason
- rows.append(row)
- continue
- duplicate_equivalent = True
- duplicate_review_ok += 1
+ if multi_target:
+ if equivalent:
+ q_mixed_equivalent += 1
+ quarantine_status = "QUARENTENA_DUPLICIDADE_MISTA_EQUIVALENTE"
+ kind = "equivalentes"
+ else:
+ q_mixed_conflict += 1
+ quarantine_status = "QUARENTENA_DUPLICIDADE_MISTA_CONFLITANTE"
+ kind = "diferentes/conflitantes"
+ quarantine_message = (
+ f"base duplicado no REVIEW ({len(review_paths)} masks, {kind}) "
+ f"e também nas BRUTAS ({len(targets)} targets). {reason}"
+ )
+ elif equivalent:
+ q_review_dup_equivalent += 1
+ quarantine_status = "QUARENTENA_REVIEW_DUPLICADO_EQUIVALENTE"
+ quarantine_message = (
+ f"mesmo base aparece {len(review_paths)} vezes no REVIEW; "
+ "apesar de equivalente, política segura exige revisão manual. "
+ f"{reason}"
+ )
+ else:
+ q_review_dup_conflict += 1
+ quarantine_status = "QUARENTENA_CONFLITO_REVIEW_DUPLICADO"
+ quarantine_message = reason
- if len(targets) > 1:
- multi_target_bases += 1
- row["status"] = "MULTI_TARGET"
- row["message"] = (
- f"mesma revisão será aplicada em {len(targets)} "
- "cópias das BRUTAS"
+ elif multi_target:
+ q_multi_target += 1
+ quarantine_status = "QUARENTENA_MULTI_TARGET"
+ quarantine_message = (
+ f"mesmo base aponta para {len(targets)} destinos nas BRUTAS; "
+ "nenhuma cópia será alterada automaticamente"
)
- elif duplicate_equivalent:
- row["status"] = "REVIEW_DUPLICADO_OK"
- row["message"] = (
- "mesmo base apareceu várias vezes no review, "
- "mas as masks são equivalentes"
+
+ if quarantine_status is not None:
+ quarantine_bases += 1
+ qres = quarantine_case(
+ quarantine_root=quarantine_root,
+ status=quarantine_status,
+ base=base,
+ review_paths=review_paths,
+ previews=previews,
+ targets=targets,
+ message=quarantine_message,
)
- else:
- row["status"] = "RESOLVIDO"
- total_target_files += len(targets)
+ quarantine_pairs += qres.pair_count
+ quarantine_copy_errors += len(qres.errors)
+ row["status"] = quarantine_status
+ row["quarantine_dir"] = str(qres.case_dir)
+ row["quarantine_pairs"] = qres.pair_count
+ row["message"] = quarantine_message
+ if qres.errors:
+ row["message"] += " | ERROS_QUARENTENA: " + " || ".join(qres.errors)
+
+ rows.append(row)
+ continue
+
+ # Só chega aqui quando é estritamente 1 review : 1 target.
+ if len(review_paths) != 1 or len(targets) != 1:
+ raise RuntimeError(
+ f"invariante de segurança quebrada no preflight: {base} "
+ f"review_count={len(review_paths)} target_count={len(targets)}"
+ )
+
+ row["status"] = "RESOLVIDO_1x1"
+ row["apply_eligible"] = "SIM"
+ row["message"] = "mapeamento estritamente 1 review : 1 target"
+
+ total_target_files += 1
logical_reviews.append(
LogicalReview(
base=base,
@@ -498,114 +654,112 @@ def main() -> int:
representative=review_paths[0],
targets=targets,
preview_paths=previews,
- duplicate_review_equivalent=duplicate_equivalent,
)
)
rows.append(row)
print("[PREFLIGHT]")
- print(f" Bases prontas : {len(logical_reviews)}")
- print(f" Bases com múltiplos alvos : {multi_target_bases}")
- print(f" Review duplicado idêntico : {duplicate_review_ok}")
- print(f" Conflito review duplicado : {duplicate_review_conflict}")
- print(f" Não encontrados : {not_found}")
- print(f" Arquivos de mask a gravar : {total_target_files}")
+ print(f" Bases elegíveis 1:1 : {len(logical_reviews)}")
+ print(f" Bases em quarentena : {quarantine_bases}")
+ print(f" Multi-target : {q_multi_target}")
+ print(f" Review duplicado equivalente : {q_review_dup_equivalent}")
+ print(f" Review duplicado conflitante : {q_review_dup_conflict}")
+ print(f" Duplicidade mista equivalente : {q_mixed_equivalent}")
+ print(f" Duplicidade mista conflitante : {q_mixed_conflict}")
+ print(f" Duplas visuais geradas : {quarantine_pairs}")
+ print(f" Erros ao copiar quarentena : {quarantine_copy_errors}")
+ print(f" Não encontrados : {not_found}")
+ print(f" Arquivos que o apply pode gravar : {total_target_files}")
write_report(report_path, rows)
+ if quarantine_bases:
+ print(f"[QUARENTENA] {quarantine_root}")
+
if not args.apply:
print(f"[DRY-RUN] Relatório: {report_path}")
+ print("[DRY-RUN] Nenhuma mask dentro das BRUTAS foi alterada.")
print(
- "[DRY-RUN] Nenhuma mask das BRUTAS foi lida ou alterada."
+ "[DRY-RUN] A quarentena contém somente CÓPIAS dos casos ambíguos "
+ "para inspeção manual."
)
- print(
- "[INFO] Bases com múltiplos previews NÃO são mais ambíguas: "
- "a mesma mask revisada será aplicada em todas as cópias."
- )
- if duplicate_review_conflict:
+ if quarantine_copy_errors:
print(
- "[ATENÇÃO] Existem conflitos reais entre masks duplicadas "
- "no próprio review. Esses bases serão pulados também no apply."
+ "[ATENÇÃO] Houve erro ao montar parte da quarentena. "
+ "Não rode --apply até revisar o relatório."
)
+ return 2
return 0
+ # Se a própria quarentena falhou, aborta o apply inteiro. Melhor não correr.
+ if quarantine_copy_errors:
+ print(
+ "[ABORTADO] Houve falha ao copiar arquivos da quarentena. "
+ "Nenhuma mask será aplicada."
+ )
+ return 2
+
# ------------------------------------------------------------------
- # APPLY
+ # APPLY ESTRITAMENTE 1:1
# ------------------------------------------------------------------
applied_bases = 0
applied_files = 0
image_errors = 0
- for i, item in enumerate(logical_reviews, 1):
+ for item in logical_reviews:
try:
- # Lê/redimensiona UMA vez por base lógico.
+ # Segunda barreira de segurança antes de qualquer escrita.
+ if len(item.review_masks) != 1 or len(item.targets) != 1:
+ raise RuntimeError(
+ "item ambíguo chegou ao APPLY; operação bloqueada "
+ f"(reviews={len(item.review_masks)}, targets={len(item.targets)})"
+ )
+
img = load_and_resize_mask(item.representative, sizes)
+ target = item.targets[0]
+ atomic_write_png(img, target)
- # Aplica em TODAS as cópias existentes das BRUTAS.
- for target in item.targets:
- atomic_write_png(img, target)
- applied_files += 1
-
+ applied_files += 1
applied_bases += 1
- if (
- applied_bases <= 10
- or applied_bases % 100 == 0
- or len(item.targets) > 1
- ):
- suffix = (
- f" -> {len(item.targets)} cópias"
- if len(item.targets) > 1
- else ""
- )
+ if applied_bases <= 10 or applied_bases % 100 == 0:
print(
f"[{applied_bases}/{len(logical_reviews)}] "
- f"{item.base}{suffix}"
+ f"{item.base} -> 1 target"
)
except Exception as e:
image_errors += 1
print(f"[ERRO] {item.base}: {e}")
- # Atualiza a linha correspondente no relatório.
for row in rows:
if row["base"] == item.base:
row["status"] = "ERRO_APPLY"
+ row["apply_eligible"] = "NAO"
row["message"] = str(e)
break
- # Atualiza status dos itens que chegaram ao fim sem erro.
error_bases = {
row["base"]
for row in rows
if row["status"] == "ERRO_APPLY"
}
+
for row in rows:
- if (
- row["base"] not in error_bases
- and row["status"]
- in {"RESOLVIDO", "MULTI_TARGET", "REVIEW_DUPLICADO_OK"}
- ):
+ if row["base"] not in error_bases and row["status"] == "RESOLVIDO_1x1":
row["status"] = "APLICADO"
write_report(report_path, rows)
- print("=" * 96)
- print(f"[OK] Bases aplicadas : {applied_bases}")
- print(f"[OK] Arquivos gravados : {applied_files}")
- print(f"[SKIP] Não encontrados : {not_found}")
- print(
- f"[SKIP] Conflito review duplic.: "
- f"{duplicate_review_conflict}"
- )
- print(f"[ERRO] Falhas de imagem/escrita: {image_errors}")
- print(f"[OK] Relatório : {report_path}")
-
- if duplicate_review_conflict:
- print(
- "[INFO] Conflitos de revisão duplicada foram deixados intactos "
- "para resolução manual."
- )
+ print("=" * 100)
+ print(f"[OK] Bases aplicadas 1:1 : {applied_bases}")
+ print(f"[OK] Arquivos gravados : {applied_files}")
+ print(f"[SKIP] Bases em quarentena : {quarantine_bases}")
+ print(f"[SKIP] Não encontrados : {not_found}")
+ print(f"[ERRO] Falhas imagem/escrita : {image_errors}")
+ print(f"[OK] Relatório : {report_path}")
+ if quarantine_bases:
+ print(f"[OK] Quarentena : {quarantine_root}")
return 0 if image_errors == 0 else 2
diff --git a/Python/OAK/datasets/oak-fcc-3/_4_recover_brutas_masks_domain.py b/Python/OAK/datasets/oak-fcc-3/_4_recover_brutas_masks_domain.py
new file mode 100644
index 000000000..f7fd73570
--- /dev/null
+++ b/Python/OAK/datasets/oak-fcc-3/_4_recover_brutas_masks_domain.py
@@ -0,0 +1,1569 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+_4_recover_brutas_masks_domain.py
+=================================
+
+RECUPERAÇÃO FORENSE das máscaras RAW contaminadas pelo apply de 04/09/2026.
+
+Incidente
+---------
+O fluxo correto era:
+
+ mask RAW / annotation space
+ -> ref_shape RGB
+ -> crop_box comum da fusão
+ -> resize INTER_NEAREST
+ -> mask final do tensor (ex.: 960x600)
+
+Durante o review, a máscara revisada ficou corretamente no domínio final/tensor.
+O apply antigo, porém, fez apenas:
+
+ review mask 960x600
+ -> cv2.resize(..., 1280x800, INTER_NEAREST)
+ -> sobrescreveu dataset/brutas/.../masks/.png
+
+Portanto a máscara atual contaminada tem TAMANHO RAW, mas CONTEÚDO/GEOMETRIA
+do domínio final do tensor.
+
+Este script desfaz o incidente em duas etapas:
+
+1) Recupera EXATAMENTE a máscara revisada no domínio final (ex.: 960x600)
+ a partir do resize errado 1280x800.
+ A recuperação é validada reexecutando o mesmo resize antigo e exigindo
+ igualdade pixel-a-pixel com a máscara contaminada.
+
+2) Reobtém ref_shape/crop_box pelo RawProcessorCore + module_params congelado,
+ reconstrói uma máscara no espaço RAW:
+ - fora do crop: IGNORE (branco / id 255)
+ - dentro do crop: back-projection categórica da máscara final
+ Em seguida reaplica o MESMO contrato do normalize (crop + INTER_NEAREST)
+ e exige round-trip 100% idêntico à máscara final recuperada.
+
+SEGURANÇA
+---------
+- DRY-RUN é o padrão.
+- Só processa por padrão:
+ classification == VERY_LIKELY_BAD_DOMAIN_APPLIED
+ do mask_domain_inventory.csv.
+- Itens com mtime alterado depois do incidente NÃO são tocados.
+- Antes de --apply, TODAS as máscaras-alvo são copiadas para backup.
+- --apply é recusado se existir qualquer falha, salvo --allow-partial.
+- Escrita final é atômica.
+- O script nunca "adivinha chão" fora do crop: usa IGNORE.
+
+Uso recomendado
+---------------
+Primeiro DRY-RUN:
+
+python .\\_4_recover_brutas_masks_domain.py ^
+ --brutas-root .\\dataset\\brutas\\group ^
+ --inventory .\\audit\\mask_domain_incident_20260904\\mask_domain_inventory.csv ^
+ --module-params .\\calibration\\mp_ov9782\\module_params.json ^
+ --target-size 960x600 ^
+ --out-dir .\\audit\\mask_domain_recovery_20260908
+
+Depois de conferir recovery_summary.json / recovery_report.csv / staging:
+
+python .\\_4_recover_brutas_masks_domain.py ^
+ --brutas-root .\\dataset\\brutas\\group ^
+ --inventory .\\audit\\mask_domain_incident_20260904\\mask_domain_inventory.csv ^
+ --module-params .\\calibration\\mp_ov9782\\module_params.json ^
+ --target-size 960x600 ^
+ --out-dir .\\audit\\mask_domain_recovery_20260908 ^
+ --apply
+
+Opcional:
+ --review-final-root
+ Se ainda existirem final_masks antigas em 960x600, elas têm prioridade
+ como fonte do domínio final. Se não existirem, o script recupera a
+ 960x600 diretamente da máscara contaminada.
+
+ --geometry-mode per_signature
+ Default e recomendado. O crop é geométrico/fixo; o RawProcessorCore é
+ executado uma vez por assinatura de hardware/meta e reutilizado.
+
+ --geometry-mode per_sample
+ Reexecuta o RawProcessorCore para cada máscara. É mais lento, porém útil
+ como verificação extrema.
+
+Requisitos
+----------
+Executar a partir da raiz do projeto, onde:
+ core/raw_processor_core.py
+está importável.
+
+O module_params deve ser o MESMO perfil usado no normalize histórico.
+Para este incidente, use o OV9782 congelado, NÃO o AR0234.
+"""
+
+from __future__ import annotations
+
+import argparse
+import csv
+import hashlib
+import json
+import math
+import os
+import shutil
+import sys
+import time
+import traceback
+from collections import Counter, defaultdict
+from dataclasses import dataclass
+from datetime import datetime
+from pathlib import Path
+from typing import Any, Dict, Iterable, List, Optional, Sequence, Tuple
+
+import cv2
+import numpy as np
+
+try:
+ from core.raw_processor_core import RawProcessorCore
+except Exception:
+ RawProcessorCore = None
+
+
+DEFAULT_TARGET_SIZE = (960, 600) # (W, H)
+DEFAULT_IGNORE_ID = 255
+
+# Labelmap oficial conhecido do projeto, em RGB.
+DEFAULT_CLASSES_RGB: Dict[int, Tuple[str, Tuple[int, int, int]]] = {
+ 0: ("chao", (128, 0, 0)),
+ 1: ("cana", (0, 0, 128)),
+ 2: ("erva", (0, 128, 0)),
+}
+
+DEFAULT_RECOVER_CLASSIFICATION = "VERY_LIKELY_BAD_DOMAIN_APPLIED"
+
+
+# ============================================================
+# Estruturas
+# ============================================================
+
+@dataclass
+class InventoryItem:
+ group: str
+ base: str
+ mask_path: Path
+ inventory_mtime_epoch: Optional[float]
+ classification: str
+ width: Optional[int]
+ height: Optional[int]
+
+
+@dataclass
+class Bundle:
+ group: str
+ base: str
+ group_dir: Path
+ meta_path: Path
+ mask_path: Path
+ bin_paths: Dict[str, Path]
+
+
+@dataclass
+class GeometryInfo:
+ ref_h: int
+ ref_w: int
+ target_w: int
+ target_h: int
+ crop_box: Tuple[int, int, int, int]
+ crop_applied: bool
+ module_params: str
+ signature: str
+ fusion_result: dict
+
+
+# ============================================================
+# I/O geral
+# ============================================================
+
+def ensure_dir(path: Path) -> Path:
+ path.mkdir(parents=True, exist_ok=True)
+ return path
+
+
+def load_json(path: Path) -> dict:
+ with path.open("r", encoding="utf-8") as f:
+ return json.load(f)
+
+
+def write_json(path: Path, data: Any) -> None:
+ ensure_dir(path.parent)
+ with path.open("w", encoding="utf-8") as f:
+ json.dump(data, f, ensure_ascii=False, indent=2, default=str)
+
+
+def write_csv(path: Path, rows: Sequence[dict]) -> None:
+ ensure_dir(path.parent)
+ if not rows:
+ path.write_text("", encoding="utf-8")
+ return
+
+ keys: List[str] = []
+ seen = set()
+ for row in rows:
+ for key in row.keys():
+ if key not in seen:
+ seen.add(key)
+ keys.append(key)
+
+ with path.open("w", newline="", encoding="utf-8-sig") as f:
+ w = csv.DictWriter(f, fieldnames=keys, extrasaction="ignore")
+ w.writeheader()
+ w.writerows(rows)
+
+
+def parse_wh(text: str) -> Tuple[int, int]:
+ s = str(text).lower().strip().replace(" ", "")
+ if "x" not in s:
+ raise argparse.ArgumentTypeError("Use WxH, por exemplo 960x600")
+ a, b = s.split("x", 1)
+ w, h = int(a), int(b)
+ if w <= 0 or h <= 0:
+ raise argparse.ArgumentTypeError("W e H devem ser > 0")
+ return w, h
+
+
+def sha256_file(path: Path, chunk_size: int = 1024 * 1024) -> str:
+ h = hashlib.sha256()
+ with path.open("rb") as f:
+ while True:
+ chunk = f.read(chunk_size)
+ if not chunk:
+ break
+ h.update(chunk)
+ return h.hexdigest()
+
+
+def atomic_write_png(path: Path, bgr: np.ndarray) -> None:
+ ensure_dir(path.parent)
+ tmp = path.with_name(path.stem + ".tmp_recovery.png")
+ ok = cv2.imwrite(
+ str(tmp),
+ bgr,
+ [cv2.IMWRITE_PNG_COMPRESSION, 1],
+ )
+ if not ok:
+ raise RuntimeError(f"Falha ao escrever PNG temporário: {tmp}")
+ os.replace(tmp, path)
+
+
+def safe_float(value: Any) -> Optional[float]:
+ try:
+ x = float(value)
+ return x if math.isfinite(x) else None
+ except Exception:
+ return None
+
+
+# ============================================================
+# Labelmap / máscara categórica
+# ============================================================
+
+def load_labelmap_classes(path: Optional[Path]) -> Dict[int, Tuple[str, Tuple[int, int, int]]]:
+ if path is None:
+ return dict(DEFAULT_CLASSES_RGB)
+
+ if not path.is_file():
+ raise FileNotFoundError(f"labelmap não encontrado: {path}")
+
+ classes: Dict[int, Tuple[str, Tuple[int, int, int]]] = {}
+ next_id = 0
+
+ with path.open("r", encoding="utf-8") as f:
+ for raw_line in f:
+ s = raw_line.strip()
+ if not s or s.startswith("#"):
+ continue
+
+ cid = None
+ name = None
+ color = None
+
+ # Formato comum: chao: 128,0,0
+ if ":" in s and not s.split(":", 1)[0].strip().isdigit():
+ name_part, rest = s.split(":", 1)
+ name = name_part.strip()
+ color_txt = rest.split("::", 1)[0].strip().strip(":")
+ parts = [p.strip() for p in color_txt.split(",") if p.strip()]
+ if len(parts) >= 3:
+ try:
+ color = tuple(int(float(x)) for x in parts[:3])
+ except Exception:
+ color = None
+ else:
+ # Formato possível: 0 chao 128 0 0
+ parts = s.replace(",", " ").replace(":", " ").split()
+ if len(parts) >= 2 and parts[0].isdigit():
+ cid = int(parts[0])
+ name = parts[1]
+ if len(parts) >= 5:
+ try:
+ color = tuple(int(float(x)) for x in parts[2:5])
+ except Exception:
+ color = None
+ elif parts:
+ name = parts[0]
+
+ if not name:
+ continue
+
+ lname = name.lower()
+ if lname in ("ignore", "void", "background_ignore"):
+ continue
+
+ if cid is None:
+ cid = next_id
+ next_id = max(next_id, int(cid) + 1)
+
+ if color is None:
+ if int(cid) not in DEFAULT_CLASSES_RGB:
+ raise RuntimeError(
+ f"Classe sem cor no labelmap e sem fallback conhecido: id={cid} name={name}"
+ )
+ color = DEFAULT_CLASSES_RGB[int(cid)][1]
+
+ classes[int(cid)] = (str(name), tuple(int(v) for v in color))
+
+ if not classes:
+ raise RuntimeError(f"Nenhuma classe válida no labelmap: {path}")
+
+ return classes
+
+
+def class_bgr(classes: Dict[int, Tuple[str, Tuple[int, int, int]]], cid: int) -> Tuple[int, int, int]:
+ _name, rgb = classes[int(cid)]
+ r, g, b = rgb
+ return int(b), int(g), int(r)
+
+
+def decode_color_mask_bgr(
+ bgr: np.ndarray,
+ classes: Dict[int, Tuple[str, Tuple[int, int, int]]],
+ ignore_id: int,
+) -> np.ndarray:
+ if bgr is None or bgr.ndim != 3 or bgr.shape[2] < 3:
+ raise RuntimeError(f"Máscara colorida inválida: shape={None if bgr is None else bgr.shape}")
+
+ bgr3 = bgr[:, :, :3]
+ out = np.full(bgr3.shape[:2], int(ignore_id), dtype=np.uint8)
+
+ known = np.zeros(out.shape, dtype=bool)
+ for cid in sorted(classes):
+ color = np.asarray(class_bgr(classes, cid), dtype=np.uint8)
+ hit = np.all(bgr3 == color[None, None, :], axis=2)
+ out[hit] = int(cid)
+ known |= hit
+
+ # Branco é IGNORE explícito.
+ white = np.all(bgr3 == np.array([255, 255, 255], dtype=np.uint8)[None, None, :], axis=2)
+ known |= white
+ out[white] = int(ignore_id)
+
+ unknown = ~known
+ if np.any(unknown):
+ vals, counts = np.unique(bgr3[unknown].reshape(-1, 3), axis=0, return_counts=True)
+ order = np.argsort(counts)[::-1][:12]
+ examples = [
+ {"bgr": vals[i].tolist(), "pixels": int(counts[i])}
+ for i in order
+ ]
+ raise RuntimeError(
+ f"Máscara contém {int(unknown.sum())} pixels com cores fora do labelmap/IGNORE. "
+ f"Exemplos={examples}"
+ )
+
+ return out
+
+
+def ids_to_bgr(
+ ids: np.ndarray,
+ classes: Dict[int, Tuple[str, Tuple[int, int, int]]],
+ ignore_id: int,
+) -> np.ndarray:
+ out = np.full((*ids.shape[:2], 3), 255, dtype=np.uint8)
+ for cid in sorted(classes):
+ out[ids == int(cid)] = class_bgr(classes, cid)
+ out[ids == int(ignore_id)] = (255, 255, 255)
+
+ valid_ids = set(int(x) for x in np.unique(ids).tolist())
+ allowed = set(classes.keys()) | {int(ignore_id)}
+ bad = sorted(valid_ids - allowed)
+ if bad:
+ raise RuntimeError(f"IDs não suportados ao serializar máscara: {bad}")
+ return out
+
+
+# ============================================================
+# Inventário do incidente
+# ============================================================
+
+def load_inventory(
+ inventory_path: Path,
+ brutas_root: Path,
+ wanted_classification: str,
+) -> Tuple[List[InventoryItem], List[dict]]:
+ items: List[InventoryItem] = []
+ skipped: List[dict] = []
+
+ with inventory_path.open("r", newline="", encoding="utf-8-sig") as f:
+ for row in csv.DictReader(f):
+ classification = str(row.get("classification", "")).strip()
+ group = str(row.get("group_current", "")).strip()
+ base = str(row.get("base", "")).strip()
+
+ if not group or not base:
+ skipped.append({
+ "group": group,
+ "base": base,
+ "status": "SKIP_INVALID_INVENTORY_ROW",
+ "classification": classification,
+ })
+ continue
+
+ if classification != wanted_classification:
+ skipped.append({
+ "group": group,
+ "base": base,
+ "status": "PRESERVE_NOT_SELECTED_CLASSIFICATION",
+ "classification": classification,
+ })
+ continue
+
+ computed = brutas_root / group / "masks" / f"{base}.png"
+
+ path_txt = str(row.get("path_current", "") or "").strip()
+ reported = Path(path_txt) if path_txt else None
+
+ if computed.is_file():
+ mask_path = computed.resolve()
+ elif reported is not None and reported.is_file():
+ mask_path = reported.resolve()
+ else:
+ # Mantém o caminho esperado para registrar erro depois.
+ mask_path = computed.resolve()
+
+ items.append(
+ InventoryItem(
+ group=group,
+ base=base,
+ mask_path=mask_path,
+ inventory_mtime_epoch=safe_float(row.get("mtime_epoch")),
+ classification=classification,
+ width=int(float(row["width"])) if str(row.get("width", "")).strip() else None,
+ height=int(float(row["height"])) if str(row.get("height", "")).strip() else None,
+ )
+ )
+
+ return items, skipped
+
+
+# ============================================================
+# Bundle RAW / meta / bins
+# ============================================================
+
+def find_bin_paths(group_dir: Path, base: str, meta: dict) -> Dict[str, Path]:
+ bins_dir = group_dir / "bins"
+ result: Dict[str, Path] = {}
+
+ saved_paths = meta.get("saved_payload_paths", {}) or {}
+
+ for cam_id in ("CAM_A", "CAM_B", "CAM_C"):
+ candidates: List[Path] = []
+
+ fname = saved_paths.get(cam_id)
+ if fname:
+ fp = Path(str(fname))
+ candidates += [
+ bins_dir / fp.name,
+ group_dir / fp,
+ group_dir / "metas" / fp,
+ ]
+
+ candidates += [
+ bins_dir / f"{base}_{cam_id}.bin",
+ bins_dir / f"{base}_{cam_id}.raw",
+ bins_dir / f"{base}_{cam_id.lower()}.bin",
+ bins_dir / f"{base}_{cam_id.lower()}.raw",
+ ]
+
+ found = next((p for p in candidates if p.is_file()), None)
+ if found is not None:
+ result[cam_id] = found.resolve()
+
+ return result
+
+
+def bundle_candidate(group_dir: Path, base: str) -> Optional[Bundle]:
+ meta_path = group_dir / "metas" / f"{base}.json"
+ mask_path = group_dir / "masks" / f"{base}.png"
+
+ if not meta_path.is_file() or not mask_path.is_file():
+ return None
+
+ try:
+ meta = load_json(meta_path)
+ except Exception:
+ return None
+
+ bins = find_bin_paths(group_dir, base, meta)
+ if not all(cam in bins for cam in ("CAM_A", "CAM_B", "CAM_C")):
+ return None
+
+ return Bundle(
+ group=group_dir.name,
+ base=base,
+ group_dir=group_dir.resolve(),
+ meta_path=meta_path.resolve(),
+ mask_path=mask_path.resolve(),
+ bin_paths=bins,
+ )
+
+
+def resolve_bundle(brutas_root: Path, preferred_group: str, base: str) -> Bundle:
+ exact_dir = brutas_root / preferred_group
+ exact = bundle_candidate(exact_dir, base) if exact_dir.is_dir() else None
+ if exact is not None:
+ return exact
+
+ candidates: List[Bundle] = []
+ for group_dir in sorted(p for p in brutas_root.iterdir() if p.is_dir()):
+ b = bundle_candidate(group_dir, base)
+ if b is not None:
+ candidates.append(b)
+
+ if not candidates:
+ raise RuntimeError(
+ f"Bundle RAW não encontrado para base={base}. "
+ f"Procurei grupo preferido={preferred_group} e todos os grupos."
+ )
+
+ if len(candidates) > 1:
+ raise RuntimeError(
+ f"Bundle RAW ambíguo para base={base}: "
+ f"{[(x.group, str(x.meta_path)) for x in candidates]}"
+ )
+
+ return candidates[0]
+
+
+def build_frame(bundle: Bundle, meta: dict) -> Dict[str, np.ndarray]:
+ saved_dtypes = meta.get("saved_payload_dtypes", {}) or {}
+ saved_shapes = meta.get("saved_payload_shapes", {}) or {}
+
+ frame: Dict[str, np.ndarray] = {}
+ for cam_id in ("CAM_A", "CAM_B", "CAM_C"):
+ path = bundle.bin_paths[cam_id]
+ dtype_txt = saved_dtypes.get(cam_id)
+ shape = saved_shapes.get(cam_id)
+
+ if dtype_txt is None or shape is None:
+ raise RuntimeError(
+ f"Meta sem saved_payload_dtypes/shapes para {cam_id}: {bundle.meta_path}"
+ )
+
+ arr = np.fromfile(str(path), dtype=np.dtype(dtype_txt))
+ expected = int(np.prod(shape))
+ if arr.size != expected:
+ raise RuntimeError(
+ f"Payload com tamanho incompatível {cam_id} {bundle.base}: "
+ f"arquivo={arr.size} esperado={expected} shape={shape}"
+ )
+
+ frame[cam_id] = arr.reshape(tuple(int(x) for x in shape))
+
+ return frame
+
+
+def build_processing_meta(meta: dict) -> dict:
+ stream_meta = dict(meta.get("stream_meta", {}) or {})
+ stream_meta["frame_type"] = "RAW_BRUTO"
+
+ if "camera_info" not in stream_meta and isinstance(meta.get("camera_info"), dict):
+ stream_meta["camera_info"] = meta.get("camera_info")
+
+ for key in (
+ "actual_camera_controls",
+ "startup_camera_controls",
+ "camera_controls",
+ "radiometric_last_result",
+ ):
+ if meta.get(key) is not None:
+ stream_meta[key] = meta.get(key)
+
+ return stream_meta
+
+
+def canonical_json_hash(obj: Any) -> str:
+ txt = json.dumps(obj, sort_keys=True, ensure_ascii=False, default=str, separators=(",", ":"))
+ return hashlib.sha256(txt.encode("utf-8")).hexdigest()[:16]
+
+
+def geometry_signature(meta: dict, module_params_path: Path, target_size: Tuple[int, int]) -> str:
+ camera_info = (meta.get("stream_meta", {}) or {}).get("camera_info")
+ if camera_info is None:
+ camera_info = meta.get("camera_info")
+
+ payload_shapes = meta.get("saved_payload_shapes", {}) or {}
+ payload_dtypes = meta.get("saved_payload_dtypes", {}) or {}
+
+ signature_obj = {
+ "sensor_width": int(meta.get("sensor_width", 1280)),
+ "sensor_height": int(meta.get("sensor_height", 800)),
+ "bayer_pattern": str(meta.get("bayer_pattern") or meta.get("bayer") or "BGGR").upper(),
+ "camera_info": camera_info,
+ "saved_payload_shapes": payload_shapes,
+ "saved_payload_dtypes": payload_dtypes,
+ "target_size": list(target_size),
+ "module_params": str(module_params_path.resolve()),
+ "module_params_sha256": sha256_file(module_params_path),
+ }
+ return canonical_json_hash(signature_obj)
+
+
+# ============================================================
+# RawProcessorCore / geometria
+# ============================================================
+
+class GeometryResolver:
+ def __init__(
+ self,
+ module_params_path: Path,
+ target_size: Tuple[int, int],
+ mode: str = "per_signature",
+ ):
+ if RawProcessorCore is None:
+ raise RuntimeError(
+ "Não consegui importar core.raw_processor_core.RawProcessorCore. "
+ "Execute este script a partir da raiz do projeto."
+ )
+
+ self.module_params_path = module_params_path.resolve()
+ self.target_size = tuple(int(v) for v in target_size)
+ self.mode = str(mode)
+ self.cache: Dict[str, GeometryInfo] = {}
+ self.core_cache: Dict[Tuple[int, int, str, str], RawProcessorCore] = {}
+ self.core_runs = 0
+
+ def _get_core(self, meta: dict) -> RawProcessorCore:
+ sensor_w = int(meta.get("sensor_width", 1280))
+ sensor_h = int(meta.get("sensor_height", 800))
+ bayer = str(meta.get("bayer_pattern") or meta.get("bayer") or "BGGR").upper()
+
+ key = (
+ sensor_w,
+ sensor_h,
+ bayer,
+ str(self.module_params_path),
+ )
+
+ core = self.core_cache.get(key)
+ if core is None:
+ core = RawProcessorCore(
+ sensor_width=sensor_w,
+ sensor_height=sensor_h,
+ bayer_pattern=bayer,
+ calibration_json_path=str(self.module_params_path),
+ )
+ self.core_cache[key] = core
+ return core
+
+ def resolve(self, bundle: Bundle, meta: dict) -> GeometryInfo:
+ sig_base = geometry_signature(meta, self.module_params_path, self.target_size)
+ cache_key = sig_base if self.mode == "per_signature" else f"{sig_base}:{bundle.group}:{bundle.base}"
+
+ if cache_key in self.cache:
+ return self.cache[cache_key]
+
+ core = self._get_core(meta)
+ frame = build_frame(bundle, meta)
+ processing_meta = build_processing_meta(meta)
+
+ tensor = core.build_infer_tensor_from_stream(
+ frame=frame,
+ meta=processing_meta,
+ channels_expected=5,
+ target_size=self.target_size,
+ )
+ self.core_runs += 1
+
+ if tensor is None:
+ raise RuntimeError(f"RawProcessorCore retornou None para {bundle.group}/{bundle.base}")
+
+ fusion = getattr(core, "last_fusion_result", None)
+ if not isinstance(fusion, dict):
+ raise RuntimeError(
+ f"RawProcessorCore não forneceu last_fusion_result para {bundle.group}/{bundle.base}"
+ )
+
+ ref_shape = fusion.get("ref_shape")
+ crop_box = fusion.get("crop_box")
+ target = fusion.get("target_size")
+
+ if not (isinstance(ref_shape, (list, tuple)) and len(ref_shape) == 2):
+ raise RuntimeError(f"fusion_result.ref_shape inválido: {ref_shape}")
+ if not (isinstance(crop_box, (list, tuple)) and len(crop_box) == 4):
+ raise RuntimeError(f"fusion_result.crop_box inválido: {crop_box}")
+ if not (isinstance(target, (list, tuple)) and len(target) == 2):
+ raise RuntimeError(f"fusion_result.target_size inválido: {target}")
+
+ ref_h, ref_w = int(ref_shape[0]), int(ref_shape[1])
+ target_w, target_h = int(target[0]), int(target[1])
+
+ if (target_w, target_h) != self.target_size:
+ raise RuntimeError(
+ f"Target do core não bate com --target-size: "
+ f"core={target_w}x{target_h} cli={self.target_size[0]}x{self.target_size[1]}"
+ )
+
+ x0, y0, x1, y1 = [int(v) for v in crop_box]
+ if not (0 <= x0 < x1 <= ref_w and 0 <= y0 < y1 <= ref_h):
+ raise RuntimeError(
+ f"crop_box fora do ref_shape: crop={crop_box} ref={ref_w}x{ref_h}"
+ )
+
+ info = GeometryInfo(
+ ref_h=ref_h,
+ ref_w=ref_w,
+ target_w=target_w,
+ target_h=target_h,
+ crop_box=(x0, y0, x1, y1),
+ crop_applied=bool(fusion.get("crop_applied", True)),
+ module_params=str(self.module_params_path),
+ signature=sig_base,
+ fusion_result=json.loads(json.dumps(fusion, default=str)),
+ )
+ self.cache[cache_key] = info
+ return info
+
+
+# ============================================================
+# Inversões discretas do resize/crop
+# ============================================================
+
+def nearest_inverse_sample_indices(src_len: int, dst_len: int) -> np.ndarray:
+ """
+ O apply errado fez:
+ cv2.resize(src, dst_len, INTER_NEAREST)
+
+ Para cada índice da fonte src, escolhe um índice de dst que o OpenCV mapeou
+ diretamente para aquele src.
+
+ INTER_NEAREST clássico:
+ src_idx = floor(dst_idx * src_len / dst_len)
+
+ Logo:
+ dst_idx = ceil(src_idx * dst_len / src_len)
+
+ Implementação inteira para evitar erro de ponto flutuante.
+ """
+ src_len = int(src_len)
+ dst_len = int(dst_len)
+ if src_len <= 0 or dst_len <= 0:
+ raise ValueError((src_len, dst_len))
+
+ i = np.arange(src_len, dtype=np.int64)
+ idx = (i * dst_len + src_len - 1) // src_len
+ idx = np.clip(idx, 0, dst_len - 1)
+ return idx.astype(np.int64)
+
+
+def recover_source_from_bad_nearest_resize(
+ bad_dst_ids: np.ndarray,
+ source_size: Tuple[int, int],
+) -> np.ndarray:
+ """
+ Recupera a fonte categórica exata de um cv2.resize INTER_NEAREST de ampliação,
+ quando cada pixel da fonte possui ao menos um representante no destino.
+
+ source_size = (W, H), ex.: 960x600.
+ bad_dst_ids = ex.: 1280x800.
+ """
+ src_w, src_h = [int(v) for v in source_size]
+ dst_h, dst_w = bad_dst_ids.shape[:2]
+
+ if dst_w < src_w or dst_h < src_h:
+ raise RuntimeError(
+ "A máscara contaminada é menor que a fonte que tentamos recuperar; "
+ f"dst={dst_w}x{dst_h} src={src_w}x{src_h}. "
+ "A inversa exata deste incidente exige que o resize errado tenha sido ampliação."
+ )
+
+ xs = nearest_inverse_sample_indices(src_w, dst_w)
+ ys = nearest_inverse_sample_indices(src_h, dst_h)
+
+ recovered = bad_dst_ids[np.ix_(ys, xs)].astype(np.uint8, copy=True)
+
+ # Prova forense do resize errado.
+ replay = cv2.resize(
+ recovered,
+ (dst_w, dst_h),
+ interpolation=cv2.INTER_NEAREST,
+ )
+ if not np.array_equal(replay, bad_dst_ids):
+ mismatch = int(np.count_nonzero(replay != bad_dst_ids))
+ raise RuntimeError(
+ "A máscara atual NÃO é explicada exatamente por "
+ f"{src_w}x{src_h} -> {dst_w}x{dst_h} INTER_NEAREST. "
+ f"Pixels divergentes no replay={mismatch}. Não vou recuperar automaticamente."
+ )
+
+ return recovered
+
+
+def forward_normalize_mask(
+ raw_ids: np.ndarray,
+ geom: GeometryInfo,
+) -> np.ndarray:
+ """
+ Reproduz o contrato do _6_normalize.py:
+ raw/ref -> crop_box -> resize target INTER_NEAREST
+ """
+ if raw_ids.shape[:2] != (geom.ref_h, geom.ref_w):
+ raise RuntimeError(
+ f"raw_ids não está em ref_shape: mask={raw_ids.shape[::-1]} "
+ f"ref={geom.ref_w}x{geom.ref_h}"
+ )
+
+ x0, y0, x1, y1 = geom.crop_box
+ roi = raw_ids[y0:y1, x0:x1]
+
+ if roi.shape[:2] != (geom.target_h, geom.target_w):
+ roi = cv2.resize(
+ roi,
+ (geom.target_w, geom.target_h),
+ interpolation=cv2.INTER_NEAREST,
+ )
+
+ return roi.astype(np.uint8, copy=False)
+
+
+def backproject_target_to_raw(
+ target_ids: np.ndarray,
+ geom: GeometryInfo,
+ ignore_id: int,
+) -> np.ndarray:
+ """
+ Constrói uma máscara RAW/ref consistente com target_ids.
+
+ - Exterior do crop: IGNORE.
+ - Interior: expansão nearest da target para o tamanho da ROI.
+ - Depois "crava" exatamente nos pixels que o forward INTER_NEAREST irá amostrar,
+ garantindo round-trip exato sempre que o alvo for representável.
+
+ Observação:
+ Pixels internos da ROI que não são amostrados no target são uma reconstrução
+ categórica consistente, não a anotação RAW histórica perdida.
+ """
+ if target_ids.shape[:2] != (geom.target_h, geom.target_w):
+ raise RuntimeError(
+ f"target_ids={target_ids.shape[::-1]} esperado={geom.target_w}x{geom.target_h}"
+ )
+
+ x0, y0, x1, y1 = geom.crop_box
+ crop_w = x1 - x0
+ crop_h = y1 - y0
+
+ # Preenchimento denso para permitir revisão humana futura.
+ roi = cv2.resize(
+ target_ids,
+ (crop_w, crop_h),
+ interpolation=cv2.INTER_NEAREST,
+ ).astype(np.uint8, copy=True)
+
+ # Índices que o forward crop->target realmente amostra:
+ # src_idx = floor(dst_idx * crop_len / target_len)
+ sample_x = np.floor(
+ np.arange(geom.target_w, dtype=np.float64) * crop_w / geom.target_w
+ ).astype(np.int64)
+ sample_y = np.floor(
+ np.arange(geom.target_h, dtype=np.float64) * crop_h / geom.target_h
+ ).astype(np.int64)
+ sample_x = np.clip(sample_x, 0, crop_w - 1)
+ sample_y = np.clip(sample_y, 0, crop_h - 1)
+
+ # Caso dois pixels target dependam do mesmo pixel da ROI com IDs diferentes,
+ # o target não é representável pelo resize inverso. Detectamos fail-closed.
+ seen: Dict[Tuple[int, int], int] = {}
+ for ty, sy in enumerate(sample_y.tolist()):
+ for tx, sx in enumerate(sample_x.tolist()):
+ key = (int(sy), int(sx))
+ val = int(target_ids[ty, tx])
+ old = seen.get(key)
+ if old is not None and old != val:
+ raise RuntimeError(
+ "Target final não é representável exatamente no crop RAW com "
+ "INTER_NEAREST: múltiplos pixels target exigem classes diferentes "
+ f"do mesmo pixel ROI={key}. Isso costuma ocorrer apenas em upsample."
+ )
+ seen[key] = val
+
+ # Crava os pixels amostrados.
+ roi[np.ix_(sample_y, sample_x)] = target_ids
+
+ raw = np.full(
+ (geom.ref_h, geom.ref_w),
+ int(ignore_id),
+ dtype=np.uint8,
+ )
+ raw[y0:y1, x0:x1] = roi
+
+ # Prova do caminho normalize.
+ replay = forward_normalize_mask(raw, geom)
+ if not np.array_equal(replay, target_ids):
+ mismatch = int(np.count_nonzero(replay != target_ids))
+ raise RuntimeError(
+ f"Round-trip RAW -> crop -> target falhou: {mismatch} pixels divergentes."
+ )
+
+ return raw
+
+
+# ============================================================
+# Fonte opcional: final_masks antigas
+# ============================================================
+
+class ReviewFinalIndex:
+ def __init__(self, root: Optional[Path]):
+ self.root = root.resolve() if root else None
+ self.by_base: Dict[str, List[Path]] = defaultdict(list)
+
+ if self.root is None:
+ return
+ if not self.root.is_dir():
+ raise FileNotFoundError(f"--review-final-root não encontrado: {self.root}")
+
+ for p in self.root.rglob("*.png"):
+ if p.parent.name.lower() == "final_masks":
+ self.by_base[p.stem].append(p.resolve())
+
+ def resolve(
+ self,
+ group: str,
+ base: str,
+ target_size: Tuple[int, int],
+ ) -> Optional[Path]:
+ if self.root is None:
+ return None
+
+ # Prioridade exata: root/group/final_masks/base.png
+ exact = self.root / group / "final_masks" / f"{base}.png"
+ if exact.is_file():
+ img = cv2.imread(str(exact), cv2.IMREAD_COLOR)
+ if img is not None and (img.shape[1], img.shape[0]) == target_size:
+ return exact.resolve()
+
+ candidates = []
+ for p in self.by_base.get(base, []):
+ img = cv2.imread(str(p), cv2.IMREAD_COLOR)
+ if img is not None and (img.shape[1], img.shape[0]) == target_size:
+ candidates.append(p)
+
+ if len(candidates) == 1:
+ return candidates[0]
+ return None
+
+
+# ============================================================
+# Recuperação de uma máscara
+# ============================================================
+
+def recover_one(
+ item: InventoryItem,
+ brutas_root: Path,
+ classes: Dict[int, Tuple[str, Tuple[int, int, int]]],
+ ignore_id: int,
+ target_size: Tuple[int, int],
+ geom_resolver: GeometryResolver,
+ staging_root: Path,
+ review_index: ReviewFinalIndex,
+ mtime_tolerance_seconds: float,
+) -> dict:
+ row: Dict[str, Any] = {
+ "group_inventory": item.group,
+ "base": item.base,
+ "classification": item.classification,
+ "mask_current": str(item.mask_path),
+ "status": "ERROR",
+ "error": "",
+ }
+
+ try:
+ if not item.mask_path.is_file():
+ raise FileNotFoundError(f"Máscara atual não encontrada: {item.mask_path}")
+
+ stat = item.mask_path.stat()
+ current_mtime = float(stat.st_mtime)
+ row["mtime_current_epoch"] = current_mtime
+ row["mtime_inventory_epoch"] = item.inventory_mtime_epoch
+
+ if item.inventory_mtime_epoch is not None:
+ delta = abs(current_mtime - item.inventory_mtime_epoch)
+ row["mtime_delta_seconds"] = delta
+ if delta > float(mtime_tolerance_seconds):
+ raise RuntimeError(
+ f"mtime mudou desde o inventário: delta={delta:.3f}s. "
+ "Pode ter havido edição posterior; não vou tocar."
+ )
+
+ bad_bgr = cv2.imread(str(item.mask_path), cv2.IMREAD_COLOR)
+ if bad_bgr is None:
+ raise RuntimeError(f"Falha ao abrir máscara contaminada: {item.mask_path}")
+
+ bad_h, bad_w = bad_bgr.shape[:2]
+ row["bad_width"] = bad_w
+ row["bad_height"] = bad_h
+
+ if item.width is not None and int(item.width) != bad_w:
+ raise RuntimeError(f"width mudou desde inventário: {item.width} -> {bad_w}")
+ if item.height is not None and int(item.height) != bad_h:
+ raise RuntimeError(f"height mudou desde inventário: {item.height} -> {bad_h}")
+
+ bad_ids = decode_color_mask_bgr(bad_bgr, classes, ignore_id)
+
+ # --------------------------------------------------------
+ # Fonte da máscara final/tensor:
+ # 1) antiga final_mask 960x600, se existir;
+ # 2) inversa exata do resize errado.
+ # --------------------------------------------------------
+ review_final = review_index.resolve(item.group, item.base, target_size)
+ if review_final is not None:
+ src_bgr = cv2.imread(str(review_final), cv2.IMREAD_COLOR)
+ if src_bgr is None:
+ raise RuntimeError(f"Falha ao abrir review final antiga: {review_final}")
+ target_ids = decode_color_mask_bgr(src_bgr, classes, ignore_id)
+ row["target_source"] = "review_final_existing"
+ row["target_source_path"] = str(review_final)
+
+ # Mesmo tendo final antiga, valida se ela explica a contaminada.
+ replay_bad = cv2.resize(
+ target_ids,
+ (bad_w, bad_h),
+ interpolation=cv2.INTER_NEAREST,
+ )
+ if not np.array_equal(replay_bad, bad_ids):
+ mismatch = int(np.count_nonzero(replay_bad != bad_ids))
+ raise RuntimeError(
+ f"final_mask antiga não explica exatamente a máscara contaminada: "
+ f"{mismatch} pixels divergentes."
+ )
+ else:
+ target_ids = recover_source_from_bad_nearest_resize(
+ bad_ids,
+ source_size=target_size,
+ )
+ row["target_source"] = "exact_inverse_bad_resize"
+ row["target_source_path"] = ""
+
+ target_w, target_h = target_size
+ if target_ids.shape[:2] != (target_h, target_w):
+ raise RuntimeError(
+ f"Máscara final recuperada tem shape errado: "
+ f"{target_ids.shape[::-1]} esperado={target_w}x{target_h}"
+ )
+
+ # --------------------------------------------------------
+ # Resolve bundle e geometria real do RawProcessorCore.
+ # --------------------------------------------------------
+ bundle = resolve_bundle(brutas_root, item.group, item.base)
+ row["group_bundle"] = bundle.group
+ row["meta_path"] = str(bundle.meta_path)
+
+ if bundle.mask_path.resolve() != item.mask_path.resolve():
+ raise RuntimeError(
+ "Bundle resolveu para outra máscara física. "
+ f"inventory={item.mask_path} bundle={bundle.mask_path}"
+ )
+
+ meta = load_json(bundle.meta_path)
+ geom = geom_resolver.resolve(bundle, meta)
+
+ row["geometry_signature"] = geom.signature
+ row["ref_width"] = geom.ref_w
+ row["ref_height"] = geom.ref_h
+ row["target_width"] = geom.target_w
+ row["target_height"] = geom.target_h
+ row["crop_box"] = ",".join(str(v) for v in geom.crop_box)
+ row["crop_applied"] = int(geom.crop_applied)
+ row["module_params"] = geom.module_params
+
+ # O arquivo contaminado tinha sido escrito no tamanho raw_size.
+ # Para este incidente esperamos que seja exatamente o ref_shape da RGB.
+ if (bad_w, bad_h) != (geom.ref_w, geom.ref_h):
+ raise RuntimeError(
+ "Tamanho atual da máscara não bate com ref_shape do RawProcessorCore: "
+ f"mask={bad_w}x{bad_h} ref={geom.ref_w}x{geom.ref_h}. "
+ "Não vou inferir escalas adicionais."
+ )
+
+ # --------------------------------------------------------
+ # Back-projection para espaço RAW + IGNORE fora do crop.
+ # --------------------------------------------------------
+ raw_recovered = backproject_target_to_raw(
+ target_ids=target_ids,
+ geom=geom,
+ ignore_id=ignore_id,
+ )
+
+ normalized_replay = forward_normalize_mask(raw_recovered, geom)
+ if not np.array_equal(normalized_replay, target_ids):
+ # redundante de propósito
+ mismatch = int(np.count_nonzero(normalized_replay != target_ids))
+ raise RuntimeError(f"Round-trip final falhou: {mismatch} pixels")
+
+ # Verifica exterior do crop 100% ignore.
+ x0, y0, x1, y1 = geom.crop_box
+ outside = np.ones((geom.ref_h, geom.ref_w), dtype=bool)
+ outside[y0:y1, x0:x1] = False
+ outside_n = int(outside.sum())
+ outside_ignore = int((raw_recovered[outside] == ignore_id).sum())
+ if outside_n and outside_ignore != outside_n:
+ raise RuntimeError(
+ f"Exterior do crop não ficou 100% IGNORE: {outside_ignore}/{outside_n}"
+ )
+
+ stage_path = staging_root / bundle.group / "masks" / f"{bundle.base}.png"
+ ensure_dir(stage_path.parent)
+ stage_bgr = ids_to_bgr(raw_recovered, classes, ignore_id)
+
+ ok = cv2.imwrite(
+ str(stage_path),
+ stage_bgr,
+ [cv2.IMWRITE_PNG_COMPRESSION, 1],
+ )
+ if not ok:
+ raise RuntimeError(f"Falha ao escrever staging: {stage_path}")
+
+ # Reabre o staging, valida paleta e round-trip após serialização.
+ reopened = cv2.imread(str(stage_path), cv2.IMREAD_COLOR)
+ reopened_ids = decode_color_mask_bgr(reopened, classes, ignore_id)
+ if not np.array_equal(reopened_ids, raw_recovered):
+ raise RuntimeError("Staging PNG não preservou os IDs exatamente.")
+
+ replay_after_png = forward_normalize_mask(reopened_ids, geom)
+ if not np.array_equal(replay_after_png, target_ids):
+ raise RuntimeError("Round-trip falhou após serialização PNG.")
+
+ vals, counts = np.unique(raw_recovered, return_counts=True)
+ id_counts = {str(int(v)): int(c) for v, c in zip(vals, counts)}
+
+ row.update({
+ "status": "RECOVERED_EXACT",
+ "error": "",
+ "staging_path": str(stage_path),
+ "sha256_bad_before": sha256_file(item.mask_path),
+ "sha256_recovered": sha256_file(stage_path),
+ "roundtrip_bad_resize_exact": 1,
+ "roundtrip_normalize_exact": 1,
+ "outside_crop_pixels": outside_n,
+ "outside_crop_ignore_pixels": outside_ignore,
+ "outside_crop_ignore_pct": 100.0 if outside_n else 0.0,
+ "raw_ignore_pixels": int((raw_recovered == ignore_id).sum()),
+ "raw_ignore_pct": float(100.0 * (raw_recovered == ignore_id).mean()),
+ "raw_id_counts_json": json.dumps(id_counts, sort_keys=True),
+ })
+
+ except Exception as exc:
+ row["status"] = "ERROR"
+ row["error"] = f"{type(exc).__name__}: {exc}"
+
+ return row
+
+
+# ============================================================
+# Backup + apply
+# ============================================================
+
+def backup_and_apply(
+ successful_rows: List[dict],
+ backup_root: Path,
+) -> List[dict]:
+ """
+ Backup obrigatório + replace atômico.
+ Revalida mtime/hash da máscara atual antes de sobrescrever.
+ """
+ apply_rows: List[dict] = []
+
+ # Fase 1: backup de todos primeiro.
+ for row in successful_rows:
+ current = Path(row["mask_current"])
+ staging = Path(row["staging_path"])
+ group = str(row.get("group_bundle") or row["group_inventory"])
+ base = str(row["base"])
+
+ if not current.is_file() or not staging.is_file():
+ raise RuntimeError(f"Arquivo sumiu antes do apply: current={current} staging={staging}")
+
+ sha_now = sha256_file(current)
+ if sha_now != row["sha256_bad_before"]:
+ raise RuntimeError(
+ f"Máscara mudou depois do recovery dry-run/processamento: {current}. "
+ "Hash atual não bate com o hash analisado."
+ )
+
+ backup_path = backup_root / group / "masks" / f"{base}.png"
+ ensure_dir(backup_path.parent)
+ shutil.copy2(current, backup_path)
+
+ if sha256_file(backup_path) != sha_now:
+ raise RuntimeError(f"Backup não validou SHA256: {backup_path}")
+
+ row["backup_path"] = str(backup_path)
+
+ # Fase 2: aplica somente depois que TODOS os backups existem.
+ for row in successful_rows:
+ current = Path(row["mask_current"])
+ staging = Path(row["staging_path"])
+
+ recovered_bgr = cv2.imread(str(staging), cv2.IMREAD_COLOR)
+ if recovered_bgr is None:
+ raise RuntimeError(f"Falha ao reabrir staging antes do apply: {staging}")
+
+ atomic_write_png(current, recovered_bgr)
+
+ sha_after = sha256_file(current)
+ if sha_after != row["sha256_recovered"]:
+ raise RuntimeError(
+ f"SHA após apply não bate com staging: current={current} staging={staging}"
+ )
+
+ apply_rows.append({
+ "group": row.get("group_bundle") or row["group_inventory"],
+ "base": row["base"],
+ "mask": str(current),
+ "backup": row.get("backup_path", ""),
+ "staging": str(staging),
+ "sha256_after": sha_after,
+ "status": "APPLIED",
+ })
+
+ return apply_rows
+
+
+# ============================================================
+# Auto-testes puros
+# ============================================================
+
+def run_self_tests() -> dict:
+ rng = np.random.default_rng(42)
+
+ # Testa inversa do resize errado 960x600 -> 1280x800.
+ src = rng.integers(0, 4, size=(600, 960), dtype=np.uint8)
+ bad = cv2.resize(src, (1280, 800), interpolation=cv2.INTER_NEAREST)
+ rec = recover_source_from_bad_nearest_resize(bad, (960, 600))
+ if not np.array_equal(src, rec):
+ raise RuntimeError("SELFTEST falhou: inverse bad resize")
+
+ # Testa backprojection com crop arbitrário maior que target.
+ geom = GeometryInfo(
+ ref_h=800,
+ ref_w=1280,
+ target_w=960,
+ target_h=600,
+ crop_box=(61, 37, 1214, 765),
+ crop_applied=True,
+ module_params="selftest",
+ signature="selftest",
+ fusion_result={},
+ )
+ target = rng.integers(0, 4, size=(600, 960), dtype=np.uint8)
+ raw = backproject_target_to_raw(target, geom, ignore_id=255)
+ replay = forward_normalize_mask(raw, geom)
+ if not np.array_equal(target, replay):
+ raise RuntimeError("SELFTEST falhou: raw backprojection roundtrip")
+
+ return {
+ "inverse_bad_resize": "OK",
+ "raw_backprojection_roundtrip": "OK",
+ }
+
+
+# ============================================================
+# Main
+# ============================================================
+
+def main() -> None:
+ parser = argparse.ArgumentParser(
+ description="Recupera máscaras RAW contaminadas por review/tensor-space aplicado como resize simples."
+ )
+ parser.add_argument("--brutas-root", required=True, help="dataset/brutas/group")
+ parser.add_argument("--inventory", required=True, help="mask_domain_inventory.csv gerado pelo auditor do incidente")
+ parser.add_argument(
+ "--module-params",
+ required=True,
+ help="module_params histórico AUTORITATIVO. Para este incidente, use o perfil OV9782 congelado.",
+ )
+ parser.add_argument("--labelmap", default=None, help="Opcional. Default usa a paleta oficial chao/cana/erva do projeto.")
+ parser.add_argument("--target-size", type=parse_wh, default=DEFAULT_TARGET_SIZE, help="Default 960x600")
+ parser.add_argument(
+ "--classification",
+ default=DEFAULT_RECOVER_CLASSIFICATION,
+ help=f"Default: {DEFAULT_RECOVER_CLASSIFICATION}",
+ )
+ parser.add_argument(
+ "--geometry-mode",
+ choices=["per_signature", "per_sample"],
+ default="per_signature",
+ help="Default per_signature: executa RawProcessorCore uma vez por assinatura geométrica.",
+ )
+ parser.add_argument(
+ "--review-final-root",
+ default=None,
+ help="Opcional: raiz group/ antiga contendo /final_masks/*.png em target-size.",
+ )
+ parser.add_argument(
+ "--out-dir",
+ default="audit/mask_domain_recovery",
+ help="Staging + relatórios. Default audit/mask_domain_recovery",
+ )
+ parser.add_argument(
+ "--mtime-tolerance-seconds",
+ type=float,
+ default=1.0,
+ help="Falha se mtime atual divergir do inventário mais que isso. Default 1s.",
+ )
+ parser.add_argument("--max-items", type=int, default=0, help="Debug. 0=todos.")
+ parser.add_argument(
+ "--apply",
+ action="store_true",
+ help="Aplica staging nas brutas após backup obrigatório. Sem esta flag é DRY-RUN.",
+ )
+ parser.add_argument(
+ "--allow-partial",
+ action="store_true",
+ help="Com --apply, permite aplicar os sucessos mesmo se alguns itens falharem. Default: recusado.",
+ )
+ parser.add_argument(
+ "--backup-root",
+ default=None,
+ help="Opcional. Default cria backup/mask_domain_recovery_.",
+ )
+ parser.add_argument("--print-every", type=int, default=50)
+ args = parser.parse_args()
+
+ if args.max_items < 0:
+ parser.error("--max-items deve ser >= 0")
+ if args.print_every <= 0:
+ parser.error("--print-every deve ser > 0")
+ if args.mtime_tolerance_seconds < 0:
+ parser.error("--mtime-tolerance-seconds deve ser >= 0")
+
+ brutas_root = Path(args.brutas_root).resolve()
+ inventory_path = Path(args.inventory).resolve()
+ module_params_path = Path(args.module_params).resolve()
+ labelmap_path = Path(args.labelmap).resolve() if args.labelmap else None
+ review_final_root = Path(args.review_final_root).resolve() if args.review_final_root else None
+ out_dir = Path(args.out_dir).resolve()
+
+ if not brutas_root.is_dir():
+ raise FileNotFoundError(f"--brutas-root não encontrado: {brutas_root}")
+ if not inventory_path.is_file():
+ raise FileNotFoundError(f"--inventory não encontrado: {inventory_path}")
+ if not module_params_path.is_file():
+ raise FileNotFoundError(
+ f"--module-params não encontrado: {module_params_path}. "
+ "Fail-closed: não há fallback para outro profile."
+ )
+ if labelmap_path is not None and not labelmap_path.is_file():
+ raise FileNotFoundError(f"--labelmap não encontrado: {labelmap_path}")
+
+ ensure_dir(out_dir)
+ staging_root = ensure_dir(out_dir / "staging")
+ report_path = out_dir / "recovery_report.csv"
+ summary_path = out_dir / "recovery_summary.json"
+ apply_report_path = out_dir / "recovery_apply_report.csv"
+
+ print("=" * 78)
+ print("MASK DOMAIN RECOVERY - SALVADOR DA PATRIA")
+ print(f"Brutas root : {brutas_root}")
+ print(f"Inventory : {inventory_path}")
+ print(f"Classification : {args.classification}")
+ print(f"Module params : {module_params_path}")
+ print(f"Module SHA256 : {sha256_file(module_params_path)}")
+ print(f"Target size : {args.target_size[0]}x{args.target_size[1]}")
+ print(f"Geometry mode : {args.geometry_mode}")
+ print(f"Review finals : {review_final_root}")
+ print(f"Out / staging : {out_dir}")
+ print(f"Mode : {'APPLY' if args.apply else 'DRY-RUN'}")
+ print("=" * 78)
+
+ self_tests = run_self_tests()
+ print(f"[SELFTEST] {self_tests}")
+
+ classes = load_labelmap_classes(labelmap_path)
+ ignore_id = DEFAULT_IGNORE_ID
+
+ items, untouched_rows = load_inventory(
+ inventory_path=inventory_path,
+ brutas_root=brutas_root,
+ wanted_classification=args.classification,
+ )
+
+ if args.max_items > 0:
+ items = items[: args.max_items]
+
+ print(f"[INFO] candidatos selecionados do inventário: {len(items)}")
+ print(f"[INFO] linhas preservadas/não selecionadas : {len(untouched_rows)}")
+
+ review_index = ReviewFinalIndex(review_final_root)
+ geom_resolver = GeometryResolver(
+ module_params_path=module_params_path,
+ target_size=args.target_size,
+ mode=args.geometry_mode,
+ )
+
+ rows: List[dict] = []
+ t0 = time.perf_counter()
+
+ for i, item in enumerate(items, 1):
+ row = recover_one(
+ item=item,
+ brutas_root=brutas_root,
+ classes=classes,
+ ignore_id=ignore_id,
+ target_size=args.target_size,
+ geom_resolver=geom_resolver,
+ staging_root=staging_root,
+ review_index=review_index,
+ mtime_tolerance_seconds=args.mtime_tolerance_seconds,
+ )
+ rows.append(row)
+
+ if i % args.print_every == 0 or i == len(items):
+ ok_n = sum(r.get("status") == "RECOVERED_EXACT" for r in rows)
+ err_n = len(rows) - ok_n
+ print(
+ f"[{i:5d}/{len(items)}] recovered={ok_n:5d} errors={err_n:4d} "
+ f"core_runs={geom_resolver.core_runs:3d} "
+ f"last={row.get('status')} {item.group}/{item.base}"
+ )
+ if row.get("status") != "RECOVERED_EXACT":
+ print(f" ERROR: {row.get('error')}")
+
+ elapsed = time.perf_counter() - t0
+
+ # Acrescenta preservados ao relatório geral só como referência, sem staging.
+ full_report_rows = list(rows) + untouched_rows
+ write_csv(report_path, full_report_rows)
+
+ status_counts = Counter(str(r.get("status", "")) for r in rows)
+ recovered_rows = [r for r in rows if r.get("status") == "RECOVERED_EXACT"]
+ error_rows = [r for r in rows if r.get("status") != "RECOVERED_EXACT"]
+
+ by_group = defaultdict(lambda: Counter())
+ for r in rows:
+ g = str(r.get("group_inventory", ""))
+ by_group[g][str(r.get("status", ""))] += 1
+
+ source_counts = Counter(str(r.get("target_source", "")) for r in recovered_rows)
+ geometry_signatures = Counter(str(r.get("geometry_signature", "")) for r in recovered_rows)
+
+ summary = {
+ "schema": "mask_domain_recovery_v1",
+ "created_at": datetime.now().astimezone().isoformat(timespec="seconds"),
+ "mode": "apply_requested" if args.apply else "dry_run",
+ "brutas_root": str(brutas_root),
+ "inventory": str(inventory_path),
+ "selected_classification": args.classification,
+ "module_params": str(module_params_path),
+ "module_params_sha256": sha256_file(module_params_path),
+ "labelmap": str(labelmap_path) if labelmap_path else "built_in_project_palette",
+ "target_size": list(args.target_size),
+ "ignore_id": ignore_id,
+ "geometry_mode": args.geometry_mode,
+ "core_runs": int(geom_resolver.core_runs),
+ "review_final_root": str(review_final_root) if review_final_root else None,
+ "self_tests": self_tests,
+ "selected_items": len(items),
+ "recovered_exact": len(recovered_rows),
+ "errors": len(error_rows),
+ "status_counts": dict(status_counts),
+ "target_source_counts": dict(source_counts),
+ "geometry_signatures": dict(geometry_signatures),
+ "by_group": {g: dict(c) for g, c in sorted(by_group.items())},
+ "preserved_inventory_rows": len(untouched_rows),
+ "elapsed_seconds": elapsed,
+ "staging_root": str(staging_root),
+ "report_csv": str(report_path),
+ "safety_contract": {
+ "outside_crop": "IGNORE",
+ "bad_resize_must_roundtrip_exact": True,
+ "normalize_roundtrip_must_be_exact": True,
+ "mtime_must_match_inventory": True,
+ "backup_required_before_apply": True,
+ "atomic_replace": True,
+ "apply_requires_zero_errors_by_default": True,
+ },
+ }
+
+ # --------------------------------------------------------
+ # APPLY
+ # --------------------------------------------------------
+ apply_rows: List[dict] = []
+ if args.apply:
+ if error_rows and not args.allow_partial:
+ summary["apply_status"] = "REFUSED_DUE_TO_ERRORS"
+ summary["apply_refusal_reason"] = (
+ f"{len(error_rows)} itens falharam. "
+ "Corrija/investigue antes ou use --allow-partial conscientemente."
+ )
+ write_json(summary_path, summary)
+ print("\n[APPLY][REFUSED] Existem erros. NADA foi sobrescrito.")
+ print(f"Erros: {len(error_rows)}")
+ print(f"Veja: {report_path}")
+ print("=" * 78)
+ return
+
+ timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
+ if args.backup_root:
+ backup_root = Path(args.backup_root).resolve()
+ else:
+ backup_root = (Path.cwd() / "backup" / f"mask_domain_recovery_{timestamp}").resolve()
+
+ ensure_dir(backup_root)
+ print(f"\n[APPLY] Backup obrigatório: {backup_root}")
+ print(f"[APPLY] Máscaras a aplicar : {len(recovered_rows)}")
+
+ apply_rows = backup_and_apply(
+ successful_rows=recovered_rows,
+ backup_root=backup_root,
+ )
+ write_csv(apply_report_path, apply_rows)
+
+ summary["apply_status"] = "APPLIED"
+ summary["backup_root"] = str(backup_root)
+ summary["applied_masks"] = len(apply_rows)
+ summary["apply_report_csv"] = str(apply_report_path)
+ else:
+ summary["apply_status"] = "DRY_RUN_ONLY"
+ summary["applied_masks"] = 0
+
+ write_json(summary_path, summary)
+
+ print("\n" + "=" * 78)
+ print("RECOVERY FINALIZADO")
+ print(f"Selecionadas : {len(items)}")
+ print(f"Recuperadas exatas : {len(recovered_rows)}")
+ print(f"Erros : {len(error_rows)}")
+ print(f"Core runs : {geom_resolver.core_runs}")
+ print(f"Tempo : {elapsed:.1f}s")
+ print(f"Staging : {staging_root}")
+ print(f"Report : {report_path}")
+ print(f"Summary : {summary_path}")
+ if args.apply:
+ print(f"Aplicadas : {len(apply_rows)}")
+ print(f"Apply report : {apply_report_path}")
+ print(f"Backup : {summary.get('backup_root')}")
+ else:
+ print("Nenhuma máscara das brutas foi alterada. DRY-RUN.")
+ print("=" * 78)
+
+
+if __name__ == "__main__":
+ try:
+ main()
+ except Exception:
+ traceback.print_exc()
+ sys.exit(1)
diff --git a/Python/OAK/datasets/oak-fcc-3/_7_split.py b/Python/OAK/datasets/oak-fcc-3/_7_split.py
index efb328082..ef70f18c7 100644
--- a/Python/OAK/datasets/oak-fcc-3/_7_split.py
+++ b/Python/OAK/datasets/oak-fcc-3/_7_split.py
@@ -54,6 +54,8 @@ python _7_split.py ^
--synthetic-train-only ^
--synthetic-respect-family-split ^
--clear-dst
+
+python .\_7_split.py --src-root dataset/960x600/group --train 0.85 --val 0.15 --test 0 --strategy agri_diverse --use-tensor-features --merge-near-duplicate-families --seed 42 --clear-dst
"""
from __future__ import annotations
diff --git a/Python/OAK/datasets/oak-fcc-3/config.json b/Python/OAK/datasets/oak-fcc-3/config.json
index 83c070913..33dba540b 100644
--- a/Python/OAK/datasets/oak-fcc-3/config.json
+++ b/Python/OAK/datasets/oak-fcc-3/config.json
@@ -1,7 +1,7 @@
{
"camera": "oak-fcc-3",
"modelo": "segformer_b1",
- "model_name": "2026_09_08",
+ "model_name": "2026_09_18",
"main_class_name": "erva",
"es_classes": "",
"model_to_use": "geral",