Informações da Rede da API do Aimsun Next¶
Funções relacionadas a Informações da Rede¶
Notas¶
Essas funções estão disponíveis quando AAPIInit() é chamado e a qualquer momento depois disso. Elas não estão disponíveis na função de alto nível AAPILoad().
Ler o nome de um objeto¶
Em C++ e Python¶
Explicação¶
Leia o nome de um objeto, versão UNICODE.
Formato¶
const unsigned short * ANGConnGetObjectName( int idObject ); // Unicode version.
const char * ANGConnGetObjectNameA( int idObject ); // Ascii version.
Parâmetros¶
- idObject: O identificador do objeto
Saída¶
- ≠ NULL: Nome do objeto.
- = NULL: Erro.
O uso recomendado em APIs Python é:
anyNonAsciiChar = boolp()
AKIConvertToAsciiString(ANGConnGetObjectName(idObject), True, anyNonAsciiChar))
Ler o Caminho da Rede¶
Em C++ e Python¶
Explicação¶
Leia o caminho completo da rede. O resultado deve ser excluído com delete().
Formato¶
const unsigned short * AKIInfNetGetNetworkPath();
Parâmetros:¶
Nenhum.
Saída¶
- ≠ NULL: Caminho da Rede.
- = NULL: Erro.
O uso recomendado em APIs Python é:
anyNonAsciiChar = boolp()
AKIConvertToAsciiString(AKIInfNetGetNetworkPath(), True, anyNonAsciiChar))
Ler o Caminho do Ascii da Rede¶
Em C++ e Python¶
Explicação¶
Ler o caminho completo da rede em ascii.
Formato¶
const char * AKIInfNetGetNetworkPathA();
Parâmetros¶
Nenhum.
Saída¶
- ≠ NULL: Caminho da Rede.
- = NULL: Erro.
Ler o Nome da Rede¶
Em C++ e Python¶
Explicação¶
Lê o nome do arquivo da rede (sem extensão). O resultado deve ser excluído com delete().
Formato¶
const unsigned short * AKIInfNetGetNetworkName();
Parâmetros¶
Nenhum.
Saída¶
- ≠ NULL: Caminho da Rede.
- = NULL: Erro.
O uso recomendado em APIs Python é:
anyNonAsciiChar = boolp()
AKIConvertToAsciiString(AKIInfNetGetNetworkName(), True, anyNonAsciiChar))
Explicação¶
Lê o nome do arquivo da rede (sem extensão) em ascii. Função obsoleta. Mantida por motivos de compatibilidade.
Ler o Nome da Rede em Ascii¶
Em Python¶
Formato¶
const char * AKIInfNetGetNetworkNameA();
Parâmetros¶
Nenhum.
Saída¶
- ≠ NULL: Nome do arquivo da Rede.
- = NULL: Erro.
Ler o Nome da Demanda de Tráfego¶
Em C++ e Python¶
Explicação¶
Ler o nome da demanda de tráfego carregada. O resultado deve ser excluído com delete().
Formato¶
const unsigned short * AKIInfNetGetTrafficDemandName ();
Parâmetros¶
Nenhum.
Saída¶
- ≠ NULL: Nome da demanda de tráfego.
- = NULL: Erro.
O uso recomendado em APIs Python é:
anyNonAsciiChar = boolp()
AKIConvertToAsciiString(AKIInfNetGetTrafficDemandName(), True, anyNonAsciiChar))
Ler o Nome da Demanda de Tráfego em Ascii¶
Em Python¶
Explicação¶
Lê o nome da demanda de tráfego carregada em ascii. Função obsoleta. Mantida por razões de compatibilidade.
Formato¶
const char * AKIInfNetGetTrafficDemandNameA();
Parâmetros¶
Nenhum.
Saída¶
- ≠ NULL: Nome da demanda de tráfego.
- = NULL: Erro.
Ler o Tipo de Demanda de Tráfego¶
Em C++ e Python¶
Explicação¶
Ler o tipo da Demanda de Tráfego.
Formato¶
int AKIInfNetGetTrafficDemandType ();
Parâmetros¶
Nenhum.
Saída¶
- 1 demanda de tráfego usando matrizes OD
- 2 usando estados de tráfego.
- < 0: Error.
Ler as Unidades de uma Rede¶
Em C++ e Python¶
Explicação¶
Ler as unidades de uma Rede.
Formato¶
int AKIInfNetGetUnits ()
Parâmetros¶
Nenhum.
Saída¶
- 1 Unidades Métricas,
- 0 Unidades inglesas.
- < 0: Error.
Ler as Coordenadas Mundiais da Rede¶
Em C++ e Python¶
Explicação¶
Ler as coordenadas mundiais de uma Rede. Isso fornece o ponto inferior esquerdo e o ponto superior direito da caixa delimitadora.
Formato¶
int AKIInfNetGetWorldCoordinates (double *min_x, double *min_y, double *max_x, double *max_y)
Parâmetros¶
Os parâmetros alterados para retornar a caixa delimitadora são:
- min_x,
- min_y,
- max_x, *
- max_y
Saída¶
- = 0: correto.
- < 0: Error.
Ler o Número de Seções¶
Em C++ e Python¶
Explicação¶
Leia o número de seções presentes na rede viária.
Formato¶
int AKIInfNetNbSectionsANG();
Parâmetros¶
Nenhum.
Saída¶
- > 0: Número de seções na rede viária.
- < 0: Error.
Ler o identificador de uma seção¶
Em C++ e Python¶
Explicação¶
Ler o identificador da seção elem-th presente na rede viária.
Formato¶
int AKIInfNetGetSectionANGId( int elem );
Parâmetros¶
- elem: O número da seção e deve estar no intervalo 0 ≤ elem < Number of Sections - 1.
Saída¶
- > 0: Identificador da seção.
- ≤ 0: Error.
Ler as Informações da Seção¶
Em C++ e Python¶
Explicação¶
Leia as informações de uma seção.
Formato¶
A2KSectionInf AKIInfNetGetSectionANGInf(int aid)
Parâmetros¶
- aid: O identificador da seção.
Saída¶
struct A2KSectionInf{
int report;
int id;
int angId;
int nbCentralLanes;
int nbSideLanes;
double speedLimit;
double reservedLanesVisibilityDistance;
double capacity;
double distance_OnRamp;
double distance_OnRampMerge;
double cooperation_OnRamp;
double changeLaneCooperation_OnRamp;
double length;
int nbSegments;
double * slopePercentages;
double userDefinedCost;
int reactionTimeVariation;
double reactionTimeAtTrafficLightVariation;
double reactionTimeAtStopVariation;
bool imprudentLaneChanging;
int nbTurnings;
};
em que:
- int report: 0, OK; caso contrário, é um código de erro.
- int id: Identificador da seção.
- int angId: Identificador da seção.
- int nbCentralLanes: Número de faixas centrais.
- int nbSideLanes: Número de faixas laterais.
- double speedLimit: Limite de velocidade da seção (Km/h o mph).
- double reservedLanesVisibilityDistance: Distância de visibilidade das faixas reservadas da seção (metros ou pés).
- double capacity: Capacidade da seção (veh/h).
- double distance_OnRamp: Distância da Rampa de Entrada da seção (seg).
- double distance_OnRampMerge: Distância de Mesclagem da Faixa Lateral: (m ou ft).
- double cooperation_OnRamp: Porcentagem de cooperação para criação de gap.
- double changeLaneCooperation_OnRamp: Porcentagem de cooperação para mudança de faixa.
- comprimento duplo: Comprimento da seção (metros ou pés).
- int nbSegments: Número de segmentos da seção.
- double * slopePercentages: Array de percentuais de segmentos. Há nbSegments valores.
- double userDefinedCost: Custo da seção definido pelo usuário.
- int reactionTimeVariation: Variação do tempo de reação da seção.
- double reactionTimeAtTrafficLightVariation: Variação do tempo de reação em semáforos.
- double reactionTimeAtStopVariation: variação do tempo de reação em uma parada.
- bool imprudentLaneChanging: True se a seção tiver o comportamento de mudança imprudente de faixa ativado.
- int nbTurnings: Número de movimentos de conversão que têm esta seção como origem .
Declividade por segmento em uma Seção¶
Em C++ e Python¶
Explicação¶
Obtém um array da inclinação em porcentagem por segmento em uma Section.
Formato¶
double AKIInfNetGetSectionSlopeBySegment(int aSectionId, int aSegmentPos);
Parâmetros¶
- aSectionId: O identificador da seção.
- aSegmentPos: A posição do segmento (0 a N).
Saída¶
- > 0: Identificador da seção correspondente.
- ≤ 0: Error.
Ler o identificador da seção de destino de todos os movimentos de conversão a partir de uma seção¶
Em C++ e Python¶
Explicação¶
Ler o identificador da elem-ésima seção do movimento de conversão.
Formato¶
int AKIInfNetGetIdSectionANGDestinationofTurning(int aid, int elem);
Parâmetros¶
- aid: O identificador da seção.
- elem: O número do movimento de conversão no intervalo 0 ≤ elem < Number of Turns - 1.
Saída¶
- > 0: Identificador da seção correspondente.
- ≤ 0: Error.
Ler os números das faixas de um Movimento de Conversão a partir de uma Seção¶
Em C++ e Python¶
Explicação¶
Ler o número da faixa de um movimento de conversão a partir de uma seção (número da faixa igual a 1 significa a faixa mais à direita).
Há quatro funções:
- AKIInfNetGetOriginFromLaneofTurning: Obtém a primeira faixa da seção de origem do movimento de conversão.
- AKIInfNetGetOriginToLaneofTurning: Obtém a última faixa da seção de origem do movimento de conversão.
- AKIInfNetGetDestinationFromLaneofTurning: Obtém a primeira faixa da seção de destino do movimento de conversão.
- AKIInfNetGetDestinationToLaneofTurning: Obtém a última faixa da seção de destino do movimento de conversão.
Formato¶
int AKIInfNetGetDestinationFromLaneofTurning(int sectId, int elem);
int AKIInfNetGetDestinationToLaneofTurning(int sectId, int elem);
int AKIInfNetGetOriginFromLaneofTurning(int sectId, int elem);
int AKIInfNetGetOriginToLaneofTurning(int sectId, int elem);
Parâmetros¶
- aid: O identificador da seção.
- elem: O número do movimento de conversão e deve estar no intervalo 0 ≤ elem < Number of Turns - 1.
Saída¶
- > 0: Número da faixa correspondente (de 1 a N, onde a faixa 1 é a faixa mais à direita).
- ≤ 0: Error.
Ler os números das faixas dadas as seções de origem e destino¶
Em C++ e Python¶
Explicação¶
Leia o número da faixa de um movimento de conversão (número da faixa igual a 1 significa a faixa mais à direita).
Há quatro funções:
- AKIInfNetGetTurningOriginFromLane: Obtém a primeira faixa da seção de origem do movimento de conversão.
- AKIInfNetGetTurningOriginToLane: Obtém a última faixa da seção de origem do movimento de conversão.
- AKIInfNetGetTurningDestinationFromLane: Obtém a primeira faixa da seção de destino do movimento de conversão.
- AKIInfNetGetTurningDestinationToLane: Obtém a última faixa da seção de destino do movimento de conversão.
Formato¶
int AKIInfNetGetTurningDestinationFromLane( int originSection, int destinationSection )
int AKIInfNetGetTurningDestinationToLane( int originSection, int destinationSection )
int AKIInfNetGetTurningOriginFromLane( int originSection, int destinationSection )
int AKIInfNetGetTurningOriginToLane( int originSection, int destinationSection )
Parâmetros¶
- originSection: Identificador da seção de origem.
- destinationSection: Identificador da seção de destino.
Saída¶
- > 0: Número da faixa correspondente (de 1 a N, onde a faixa 1 é a faixa mais à direita).
- ≤ 0: Error.
Modificar os Parâmetros Comportamentais de uma Seção¶
Em C++ e Python¶
Explicação¶
Modificar os parâmetros comportamentais de uma seção que serão usados ao aplicar os modelos e nos cálculos de escolha de rota.
Formato¶
int AKIInfNetSetSectionBehaviouralParam(int aid, A2KSectionBehaviourParam behaviourParam, bool allsegments);
Parâmetros¶
- aid: Identificador da seção.
- allsegments: True se as alterações forem expandidas para todos os segmentos da seção.
-
behaviourParam: Novos parâmetros a serem atribuídos com a seguinte estrutura:
struct A2KSectionBehaviourParam{ double speedLimit; double reservedLanesVisibilityDistance; double capacity; double distance_OnRamp; double distance_OnRampMerge; double cooperation_OnRamp; double changeLaneCooperation_OnRamp; double userDefinedCost; int reactionTimeVariation; double reactionTimeAtTrafficLightVariation; double reactionTimeAtStopVariation; bool imprudentLaneChanging; };em que:
- double speedLimit: Limite de velocidade da seção (km/h ou mph).
- double reservedLanesVisibilityDistance: Distância de visibilidade das faixas reservadas da seção (metros ou pés).
- double capacity: Capacidade da seção (veh/h).
- double distance_OnRamp: Distância da Rampa de Entrada da seção (seg).
- double distance_OnRampMerge: Distância de Mesclagem da Faixa Lateral: (m or ft)
- double cooperation_OnRamp: Porcentagem de cooperação para criação de gap.
- double changeLaneCooperation_OnRamp: Porcentagem de cooperação para mudança de faixa.
- double userDefinedCost: Custo da seção definido pelo usuário.
- int reactionTimeVariation: Variação do tempo de reação da seção.
- double reactionTimeAtTrafficLightVariation: Variação do tempo de reação em semáforos.
- double reactionTimeAtStopVariation: variação do tempo de reação na parada.
- bool imprudentLaneChanging: True se a seção tiver o comportamento de mudança imprudente de faixa ativado.
Saída¶
- = 0: Sem Erro
- < 0: Erro
Código de exemplo em Python:¶
O código a seguir modifica a variação do tempo de reação da seção com ID=106 para um valor de 1. Primeiro, ele lê os parâmetros atuais antes de modificar um deles.
report = intp()
behParams = AKIInfNetGetSectionBehaviouralParam(106, report)
if report.value() == 0:
behParams.reactionTimeVariation = 1
AKIInfNetSetSectionBehaviouralParam(106, behParams, True)
AKIPrintString("OK")
else :
AKIPrintString("Not OK")
Ler os Parâmetros Comportamentais de uma Seção¶
Em C++ e Python¶
Explicação¶
Lê os parâmetros comportamentais de uma seção que serão usados ao aplicar os modelos e nos cálculos de escolha de rota.
Formato¶
A2KSectionBehaviourParam AKIInfNetGetSectionBehaviouralParam(int aid, int *report);
Parâmetros¶
- aid: identificador da seção.
Saída¶
- relatório = 0: Sem erro. Os parâmetros comportamentais da seção atual (veja Modificar os Parâmetros Comportamentais de uma Seção).
- relatório < 0: Error.
Código de exemplo em Python¶
O código a seguir lê os parâmetros comportamentais da seção com ID=106 e imprime a variação do tempo de reação.
report = intp()
behParams = AKIInfNetGetSectionBehaviouralParam(106, report)
if report.value() == 0:
string = str(behParams.reactionTimeVariation)
AKIPrintString(string)
Modificar os Parâmetros Comportamentais de um Movimento de Conversão¶
Em C++ e Python¶
Explicação¶
Modifique os parâmetros comportamentais de um movimento de conversão que serão usados ao aplicar os modelos e nos cálculos de escolha de rota.
Formato¶
int AKIInfNetSetTurnBehaviouralParam(int aid, A2KTurnBehaviourParam behaviourParam);
Parâmetros¶
- aid: Identificador do movimento de conversão.
- behaviourParam: Parâmetros de comportamento para o movimento de conversão.
A estrutura A2KTurnBehaviourParam é:
A2KTurnBehaviourParam{
double speedLimit;
bool yellowBoxBehaviour;
double distanceZone1;
double distanceZone2;
double waitingTimeBeforeLosingTurn;
double safetyMarginFront;
double safetyMarginBack;
double minimumGap;
double maximumGap;
double minGiveWayTimeFactor;
double maxGiveWayTimeFactor;
double visibilityDistanceMainStream;
Os parâmetros são explicados em detalhes no Seção de Edição de Movimentos de Conversão e no Seção do Modelo de Aceitação de Brechas e o Seção do Modelo de Escolha de Uso do Solo.
- Velocidades dos movimentos de conversão
- speedLimit: Limite de velocidade do movimento de conversão em unidades métricas ou imperiais, determinado pelas preferências definidas no documento Aimsun
-
yellowBoxBehaviour: Comportamento da caixa amarela ligado/desligado.
-
Seleção de Faixa
- distanceZone1: antecipação para o modelo de mudança de faixa.
-
distanceZone2: look-ahead crítico para o modelo de mudança de faixa.
-
Aceitação de Brecha
- waitingTimeBeforeLosingTurn:
- safetyMarginFront:
- safetyMarginBack:
- minimumGap:
- maximumGap:
- minGiveWayTimeFactor:
- maxGiveWayTimeFactor:
- visibilityDistance: Distância de avaliação na seção de aproximação
- visibilityDistanceMainStream: Distância de avaliação em seções conflitantes.
Saída¶
- = 0: Sem erro.
- < 0: Error.
Ler os Parâmetros Comportamentais de um Movimento de Conversão¶
Em C++ e Python¶
Explicação¶
Lê os parâmetros comportamentais de um movimento de conversão que serão usados na escolha de faixa e na aceitação de brechas.
Formato¶
A2KTurnBehaviourParam AKIInfNetGetTurnBehaviouralParam( int idturn, int* report );
Parâmetros¶
- idturn: O identificador do movimento de conversão.
Saída¶
- relatório = 0: Sem erro. e os parâmetros atuais de comportamento de movimento de conversão são retornados pela função.
- relatório < 0: Error.
Modificar a capacidade de uma seção¶
Em C++ e Python¶
Explicação¶
Modifique a capacidade de uma seção que será usada ao aplicar os modelos e nos cálculos de escolha de rota.
Formato¶
int AKISetSectionCapacity(int aid, double capacity);
Parâmetros¶
- aid: Identificador da seção.
- capacidade: Nova capacidade (veh/h) atribuída à seção.
Saída¶
- = 0: Sem erro.
- < 0: Error.
Ler a Capacidade de uma Seção¶
Em C++ e Python¶
Explicação¶
Ler a capacidade definida para uma seção.
Formato¶
double AKIGetSectionCapacity(int aid);
Parâmetros¶
- aid: Identificador da seção.
Saída¶
- > 0: Capacidade da seção especificada.
- < 0: Error.
Modificar o Custo Definido pelo Usuário de uma Seção¶
Em C++ e Python¶
Explicação¶
Modificar o custo definido pelo usuário de uma seção usado ao aplicar os modelos e nos cálculos de escolha de rota.
Formato¶
int AKISetSectionUserDefinedCost(int aid, double userdefinedcost);
Parâmetros¶
- aid: Identificador da seção.
- userdefinedcost: Novo custo definido pelo usuário para a seção.
Saída¶
- = 0: Sem erro.
- < 0: Error.
Ler o Custo Definido pelo Usuário de uma Seção¶
Em C++ e Python¶
Explicação¶
Leia o custo definido pelo usuário para uma seção.
Formato¶
double AKIGetSectionUserDefinedCost(int aid);
Parâmetros¶
- aid: Identificador da seção.
Saída¶
- > 0: Custo definido pelo usuário da seção especificada.
- < 0: Error.
Modificar o Segundo Custo Definido pelo Usuário de uma Seção¶
Em C++ e Python¶
Explicação¶
Modifica o segundo custo definido pelo usuário de uma seção que será usado ao aplicar os modelos e nos cálculos de escolha de rota.
Formato¶
int AKISetSectionUserDefinedCost2(int aid, double userdefinedcost);
Parâmetros¶
- aid: Identificador da seção.
- userdefinedcost: Novo segundo custo definido pelo usuário da seção.
Saída¶
- = 0: Sem erro.
- < 0: Error.
Ler o Segundo Custo Definido pelo Usuário de uma Seção¶
Em C++ e Python¶
Explicação¶
Leia o segundo custo definido pelo usuário definido para uma seção.
Formato¶
double AKIGetSectionUserDefinedCost2(int aid);
Parâmetros¶
- aid: Identificador da seção.
Saída¶
- > 0: Segundo custo definido pelo usuário da seção especificada.
- < 0: Error.
Modificar o Terceiro Custo Definido pelo Usuário de uma Seção¶
Em C++ e Python¶
Explicação¶
Modifique o terceiro custo definido pelo usuário de uma seção, que será usado ao aplicar os modelos e nos cálculos de escolha de rota.
Formato¶
int AKISetSectionUserDefinedCost3(int aid, double userdefinedcost);
Parâmetros¶
- aid: Identificador da seção.
- userdefinedcost: Novo terceiro custo definido pelo usuário da seção.
Saída¶
- = 0: Sem Erro
- < 0: Erro
Ler o Terceiro Custo Definido pelo Usuário de uma Seção¶
Em C++ e Python:¶
Explicação¶
Ler o terceiro custo definido pelo usuário definido para uma seção.
Formato¶
double AKIGetSectionUserDefinedCost3(int aid);
Parâmetros¶
- aid: Identificador da seção.
Saída¶
- > 0: Terceiro custo definido pelo usuário da seção especificada.
- < 0: Error.
Ler o Número de Interseções¶
Em C++ e Python¶
Explicação¶
Lê o número de junções presentes na rede viária. Esta função é equivalente a ECIGetNumberJunctions(), mas ele não precisa de um plano de controle carregado.
Formato¶
int AKIInfNetNbJunctions ();
Parâmetros¶
Nenhum.
Saída¶
- > 0: Número correto de interseções na rede viária.
- < 0: Error.
Ler o Identificador de uma Interseção¶
Em C++ e Python¶
Explicação¶
Ler o identificador da elem-ésima interseção presente na rede viária. Esta função é equivalente a ECIGetJunctionId(), mas não precisa de um plano de controle carregado..
Formato¶
int AKIInfNetGetJunctionId (int elem)
Parâmetros¶
- elem: O número da interseção e deve estar no intervalo 0 ≤ elem < Number of Junctions - 1.
Saída¶
- > 0: Identificador do cruzamento correspondente.
- ≤ 0: Error.
Ler o Número de Centroides¶
Em C++ e Python¶
Explicação¶
Leia o número de centroides presentes na rede viária.
Formato¶
int AKIInfNetNbCentroids();
Parâmetros¶
Nenhum.
Saída¶
- ≥ 0: Número de centroides na rede viária.
- < 0: Erro.
Ler o Identificador de um Centroide¶
Em C++ e Python¶
Explicação¶
Lê o identificador do centroide elem-th presente na rede viária.
Formato¶
int AKIInfNetGetCentroidId(int elem)
Parâmetros¶
- elem: O número do centroide e deve estar no intervalo 0 ≤ elem < Number of Centroids - 1.
Saída¶
- > 0: Identificador do centroide correspondente.
- ≤ 0: Error.
Ler as Informações do Centroide¶
Em C++ e Python¶
Explicação¶
Leia as informações de um centroide.
Formato¶
A2KCentroidInf AKIInfNetGetCentroidInf(int aid)
Parâmetros¶
- Aid: Identificador do centroide.
Saída¶
struct A2KCentroidInf{
int report;
int id;
bool AsDestConsider_percentage;
bool AsOrigConsider_percentage;
bool IsOrigin;
bool IsDestination;
int NumConnecTo;
int NumConnecFrom;
};
em que:
- relatório: 0, OK, caso contrário código de erro.
- id: Identificador do centroide.
- AsDestConsider_percentage: O centroide considera as porcentagens das conexões de destino quando o centroide atua como destino.
- AsOrigConsider_percentage: O centroide considera as porcentagens das conexões de origem quando o centroide atua como origem.
- IsOrigin: True se o centroide atua como uma origem.
- IsDestination: True se o centroide atua como um destino.
- NumConnecTo: Número de conexões Para o centroide.
- NumConnecFrom: Número de conexões De o centroide.
Ler os Identificadores de Objeto de todas as conexões a um Centroide (função obsoleta)¶
Em C++ e Python¶
Explicação¶
Ler o identificador do objeto da elem-ésima seção conectada "to" ao centroide fornecido presente na rede viária.
Formato¶
int AKIInfNetGetIdObjectofOriginCentroidConnector(int aid, int elem)
Parâmetros¶
- aid: Identificador do centroide.
- elem: O número da conexão "to" e deve estar no intervalo 0 ≤ elem < Número de conexões "para" - 1.
Saída¶
- > 0: Identificador da seção ou do nó correspondente.
- ≤ 0: Error.
Ler os identificadores de seção de todas as conexões a um centroide¶
Em C++ e Python¶
Explicação¶
Ler o identificador do objeto da elem-ésima seção conectada "to" ao centroide fornecido presente na rede viária.
Formato¶
int AKIInfNetGetIdObjectANGofOriginCentroidConnector(int aid, int elem)
Parâmetros¶
- aid: Identificador do centroide.
- elem: O número da conexão "to" e deve estar no intervalo 0 ≤ elem < Number of connections "to" - 1.
Saída¶
- > 0: Identificador da seção ou do nó correspondente
- ≤ 0: Erro
Ler os Identificadores de Seção de todas as conexões a partir de um Centroide (função obsoleta)¶
Em C++ e Python¶
Explicação¶
Lê o identificador do objeto para a elem-ésima seção conectada "from" ao centroide fornecido presente na rede viária.
Formato¶
int AKIInfNetGetIdSectionofDestinationCentroidConnector(int aid, int elem)
Parâmetros¶
- aid: Identificador do centroide.
- elem: O número da conexão "from" e deve estar no intervalo 0 ≤ elem < Número de conexões "from" - 1.
Saída¶
- > 0: Identificador da seção ou do nó correspondente.
- ≤ 0: Error.
Ler os identificadores de seção de todas as conexões a partir de um centroide¶
Em C++ e Python¶
Explicação¶
Lê o identificador do objeto para a elem-ésima seção conectada "from" ao centroide fornecido presente na rede viária.
Formato¶
int AKIInfNetGetIdObjectANGofDestinationCentroidConnector(int aid, int elem)
Parâmetros¶
- aid: Identificador do centroide.
- elem: O número da conexão "from" e deve estar no intervalo 0 ≤ elem < Número de conexões "from" - 1.
Saída¶
- > 0: Identificador da seção ou do nó correspondente.
- ≤ 0: Error.
Ler o número de movimentos de conversão na Rede¶
Em C++ e Python¶
Explicação¶
Ler o número de movimentos de conversão em toda a rede.
Formato¶
int AKIInfNetNbTurns()
Saída¶
O número de movimentos de conversão.
Ler o identificador de movimento de conversão de um Turn¶
Em C++ e Python¶
Explicação¶
Leia o identificador do movimento de conversão para o elem-th.
Formato¶
int AKIInfNetGetTurnId (int elem)
Parâmetros¶
- elem: O número dos movimentos de conversão na rede e deve estar no intervalo 0 ≤ elem < Number of Turns retornado pelo AKIInfNetNbTurns() função.
Saída¶
- > 0: Identificador do movimento de conversão correspondente.
- &le 0: Erro.
Ler as informações de Movimento de Conversão¶
Em C++ e Python¶
Explicação¶
Ler as informações do movimento de conversão para o identificador do movimento de conversão.
Formato¶
A2KTurnInf AKIInfNetGetTurnInf (int turnId)
Parâmetros¶
- turnId: O identificador do movimento de conversão.
Saída¶
struct A2KTurnInf{
int report;
int id;
double length;
int originSectionId;
int destinationSectionId;
int originFromLane;
int originToLane;
int destinationFromLane;
int destinationToLane;
bool yellowBoxBehaviour;
};
em que:
- relatório: 0, OK, caso contrário código de erro.
- id: Identificador do movimento de conversão.
- length: Comprimento do movimento de conversão calculado considerando coordenadas Z.
- originSectionId: Identificador da seção de origem.
- destinationSectionId: Identificador da seção de destino.
- originFromLane: Origem a partir da faixa.
- originToLane: Origem para a faixa.
- destinationFromLane: Destino a partir da faixa.
- destinationToLane: Destino para faixa.
- yellowBoxBehaviour: Se o movimento de conversão levará em conta a yellow box (true) ou não (false).
Ler o Número de Movimentos de Conversão em um Nó¶
Em C++ e Python¶
Explicação¶
Ler o número de movimentos de conversão dentro de um nó.
Formato¶
int AKIInfNetGetNbTurnsInNode ( int nodeId )
Parâmetros¶
- nodeId: O identificador do nó.
Saída¶
- > : O número de movimentos de conversão no Nó.
- ≤ 0: Error.
Ler o ID da Seção de Origem de um Movimento de Conversão¶
Em C++ e Python¶
Explicação¶
Ler o identificador da seção de origem de um movimento de conversão.
Formato¶
int AKIInfNetGetOriginSectionInTurn ( int nodeId, int elem )
Parâmetros¶
- nodeId: O identificador do nó.
- elem: Número do movimento de conversão, entre 0 e ("Number of Turns in node" - 1) retornado pelo AKIInfNetGetNbTurnsInNode( int nodeId ) função.
Saída¶
- > 0: O identificador da seção de origem.
- ≤ 0: Error.
Ler o ID da Seção de Destino de um Movimento de Conversão¶
Em C++ e Python¶
Explicação¶
Leia o identificador da seção de destino a partir de um movimento de conversão.
Formato¶
int AKIInfNetGetDestinationSectionInTurn ( int nodeId, int elem )
Parâmetros¶
- nodeId: O identificador do nó.
- elem: Número do movimento de conversão, entre 0 e ("Number of Turns in node" - 1) retornado pelo AKIInfNetGetNbTurnsInNode( int nodeId ) função.
Saída¶
- > 0: O identificador da seção de destino.
- ≤ 0: Error.
Ler as informações de Movimento de Conversão de um Nó¶
Em C++ e Python¶
Explicação¶
Lê as informações do movimento de conversão do elem-ésimo movimento de conversão em um nó.
Formato¶
A2KTurnInf AKIInfNetGetTurnInfo (int nodeId, int elem)
Parâmetros¶
- nodeId: O identificador do nó.
- elem: Número do movimento de conversão, entre 0 e ("Número de Movimentos de Conversão no Nó" - 1) retornado pelo AKIInfNetGetNbTurnsInNode( int nodeId ) função.
Saída¶
struct A2KTurnInf{
int report;
int id;
double length;
int originSectionId;
int destinationSectionId;
int originFromLane;
int originToLane;
int destinationFromLane;
int destinationToLane;
bool yellowBoxBehaviour;
};
em que:
- relatório: 0, OK, caso contrário código de erro.
- id: Identificador do movimento de conversão.
- length: Comprimento do movimento de conversão calculado incluindo as coordenadas Z.
- originSectionId: Identificador da seção de origem.
- destinationSectionId: Identificador da seção de destino.
- originFromLane: Origem a partir da faixa.
- originToLane: Origem para a faixa.
- destinationFromLane: Destino a partir da faixa.
- destinationToLane: Destino para faixa.
- yellowBoxBehaviour: Se o movimento de conversão levará em conta a yellow box (true) ou não (false).
Ler o número de seções em um caminho mais curto ¶
Em C++ e Python¶
Explicação¶
Leia o menor número de seções do caminho entre dois identificadores de seção na rede.
Formato¶
int AKIInfNetGetShortestPathNbSections(int fromSection, int toSection, void * sectionColumnCost );
Parâmetros¶
- fromSection: Identificador da seção de origem.
- toSection: Identificador da seção de destino.
- sectionColumnCost: Atributo de custo usado para calcular o caminho mais curto.
Saída¶
- > 0: Número de seções.
- ≤ 0: Error.
Ler o caminho mais curto¶
Em C++ e Python¶
Explicação¶
Ler o caminho mais curto entre dois identificadores de seção na rede.
Formato¶
int AKIInfNetGetShortestPath (int fromSection, int toSection, void * sectionColumnCost, int* path );
Parâmetros¶
- fromSection: Identificador da seção de origem.
- toSection: Identificador da seção de destino.
- sectionColumnCost: Atributo de custo que será usado para calcular o caminho mais curto.
Saída¶
- = 0: Ok, o caminho contém o caminho mínimo definido como um vetor de identificadores de seção.
- < 0: Error.
Código de Exemplo em Python¶
nbSections = AKIInfNetGetShortestPathNbSections( 156, 548, sectionCostColumn )
if nbSections > 0:
path = intArray( nbSections )
result = AKIInfNetGetShortestPath( 156, 548, sectionCostColumn, path )
for index in range(0, nbSections):
AKIPrintString( "%d"%path[index] )
Ler o comprimento total da rede¶
Em C++ e Python¶
Explicação¶
Leia o comprimento total da rede, incluindo todas as faixas das seções e conexões de movimentos de conversão.
Formato¶
double AKIGetTotalLengthSystem();
Saída¶
- > 0: Ok, o comprimento total da rede.
- < 0: Error.
Converter coordenadas de latitude/longitude para m/pés¶
Em C++ e Python¶
Explicação¶
Converta as coordenadas fornecidas de latitude/longitude para m/pés usando a projeção "EPSG:4326".
Formato¶
int AKIConvertLatitudeLongitudeToXY( double latitude, double longitude, double *x, double *y );
Saída¶
- = 0: Ok.
- x: A coordenada X em metros ou pés, dependendo das unidades da rede.
- y: A coordenada Y em metros ou pés, dependendo das unidades da rede.
Converter coordenadas de m/pés para latitude/longitude¶
Em C++ e Python¶
Explicação¶
Converter as coordenadas fornecidas de m/pés para latitude/longitude.
Formato¶
int AKIConvertXYToLatitudeLongitude( double x, double y, double *latitude, double *longitude);
Saída¶
- = 0: Ok.
- latitude: A latitude do (x,y) fornecido.
- longitude: A longitude do (x,y) fornecido.