Pular para o conteúdo

Informações da Rede da API do Aimsun Next

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
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.
  • &lt 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
  • &gt 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.