Correcciones de topologia en streetmapPremium

Gerardo/estandarizacion
Gerardo 2023-11-12 22:29:21 +01:00
parent 01f5f499e7
commit f10dfbc34a
7 changed files with 52 additions and 12 deletions

View File

@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,1,5,0
PRODUCTVERSION 3,1,5,0
FILEVERSION 3,1,6,0
PRODUCTVERSION 3,1,6,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -46,12 +46,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "VSM"
VALUE "FileDescription", "Librería de la aplicación Olivia"
VALUE "FileVersion", "3.1.5.0"
VALUE "FileVersion", "3.1.6.0"
VALUE "InternalName", "Olivia.dll"
VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved."
VALUE "OriginalFilename", "Olivia.dll"
VALUE "ProductName", "OLIVIA"
VALUE "ProductVersion", "3.1.5.0"
VALUE "ProductVersion", "3.1.6.0"
END
END
BLOCK "VarFileInfo"

View File

@ -62,6 +62,7 @@ Colv_limp::Colv_limp(COlivia *olv)
barr_mix=FALSE;
usa_secuen = FALSE;
revisa_elev = FALSE;
revisa_topo = FALSE;
memset(mima, 0, N_COOR_MIMA * sizeof(double));
}
//*******************************************************************************************************************************************
@ -429,6 +430,12 @@ int Colv_limp::pon_config(char *config_)
if (!olv->dame_param(token, (int*)&revisa_elev))
break;
}
else if (strstr(token, OliviaDef::GeneralDef::GG_topo))
{
if (!olv->dame_param(token, (int*)&revisa_topo))
break;
}
//los campos a leer de la dbf de la red navegable
/*else if (strstr(token, OliviaDef::GeneralDef::GTC_onew))

View File

@ -51,6 +51,8 @@ public:
BOOL barr_mix; ///<Indica si es barrido mixto
BOOL usa_secuen;
BOOL revisa_elev;
BOOL revisa_topo;
double f_trafic; ///<Factor de reducción de la velocidad en calles por el tráfico en tanto por 1
double calc_nsec; ///<Indica si el número de sectores es calculado (almacena el coste del sector) o impuesto (0)
double margen_sect; ///<Margen de diferencia entre sectores, en tanto por uno

View File

@ -22,6 +22,7 @@
#include "ManagerDbfGdataTable.h"
#include "sock_sv.h"
#include <map>
#include "../../utiles/CartoBaseTopologyManager.h"
UINT th_planificacion(LPVOID pp);
UINT th_busca_elev_dist(LPVOID pp);
@ -151,6 +152,10 @@ void Colv_limp_thr::cola_proc(int evento, OlvAsync_cola<Param_olv_limp_thr> *cla
{
int soloi=-1;
bien=this_i->une_amb_nw(soloi);
if (bien && this_i->olv_limp->revisa_topo)
{
this_i->corrije_topo_nw();
}
if(bien && (this_i->olv->modo_ejec<OLV_EJEC_DEBUG_NOSIGUE) && !this_i->pirate)//sigue
{
if(this_i->olv_limp->tipo_ambit==OLV_AMB_LIN)
@ -1731,6 +1736,32 @@ BOOL Colv_limp_thr::replica_doble_sent(Info_inw_dmin *inww_ord)
return TRUE;
}
BOOL Colv_limp_thr::corrije_topo_nw()
{
olvlog(LOG_TODO, "olv_limp_t", "revisando topologia de NW");
pon_mi_msg("Comprobando Topologia de la NW");
CartoBaseTopologyManager topoMan;
bool res =topoMan.revisaTopologia(&olv_limp->carto, n_subthr);
if(!res)
pon_mi_msg("Error al comprobar topologia: %s", topoMan.error);
//alade la info asociada
std::map<int, int>::iterator elem;
for (elem = topoMan.referencias.begin(); elem != topoMan.referencias.end(); ++elem) {
Info_aso2 niaso;
Info_aso2 oldiaso = olv_limp->iaso[elem->second];
niaso = oldiaso;
niaso.refe = elem->first;
if (oldiaso.inf_n.nomb)
{
int n = strlen(oldiaso.inf_n.nomb) + 1;
niaso.inf_n.nomb = (char*)malloc(n * sizeof(char));
strcpy(niaso.inf_n.nomb, oldiaso.inf_n.nomb);
}
olv_limp->iaso[elem->first] = niaso;
niaso.inf_n.nomb = NULL;
}
return res;
}
//*************************************************************************************
/**
* Une la red navegable y los ámbitos
@ -1841,7 +1872,6 @@ BOOL Colv_limp_thr::une_amb_nw(int soloi)
//Añade los segmentos a clase NW_union
add_uniones_obj(i);
}
//cuida si ha salido antes por falta de memo
if(i<olv_limp->n_amb)
{

View File

@ -156,6 +156,7 @@ public:
void copia_info_barr_mix();
//Unión de ámbitos a la red navegable
BOOL une_amb_nw(int soloi=-1);
BOOL corrije_topo_nw();
int is_dmin(double daux, Info_inw_dmin *inww);
BOOL busca_inw_dmin(int i_amb);
BOOL busca_inw_dmin_ejes(int i_amb);

View File

@ -82,8 +82,8 @@ MAINICON ICON "favicon.ico"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,1,5,0
PRODUCTVERSION 3,1,5,0
FILEVERSION 3,1,6,0
PRODUCTVERSION 3,1,6,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -100,12 +100,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "VSM"
VALUE "FileDescription", "Launcher de la aplicación Olivia"
VALUE "FileVersion", "3.1.5.0"
VALUE "FileVersion", "3.1.6.0"
VALUE "InternalName", "OliviaTasks"
VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved."
VALUE "OriginalFilename", "OliviaTasks.exe"
VALUE "ProductName", "OliviaTasks"
VALUE "ProductVersion", "3.1.5.0"
VALUE "ProductVersion", "3.1.6.0"
END
END
BLOCK "VarFileInfo"

View File

@ -51,8 +51,8 @@ namespace OliviaDef
public const int ProgrMax = 100;
public const int ProgrStep = 5;
public const int ParamN = 5;
public const int ParamLimpN = 45;
public const int ParamRecoN = 43;
public const int ParamLimpN = 46;
public const int ParamRecoN = 44;
/*
* Define el separador entre parámetros de la llamada al proceso oliviatasks
*/
@ -161,7 +161,7 @@ namespace OliviaDef
public const string GG_trafic = "trafico";
public const string GG_ais = "aislados";
public const string GG_elev = "elevacion";
public const string GG_topo = "reviTopo";
/**
* Define las propiedades de limpieza a enviar a oliviatasks