Tengo dificultades para crear restricciones de giro en ArcObjects. He encontrado una manera de Añadir un giro de la red a las restricciones a través de la INetworkForwardStarEx.AddTurnRestriction()
interfaz. Pero cómo crear el INetworkTurn que toma este método.
Respuestas
¿Demasiados anuncios?INetworkTurn es un objeto no creable. Sólo se puede obtener consultando un elemento de turno existente. Por lo tanto, si el turno que intentas consultar aún no existe, tendrás que crearlo primero.
Una vez que tenga un turno, tendrá que utilizar INetworkQuery.QueryTurn y pasar el ID del elemento de turno como argumento.
Este método le devolverá INetworkTurn. A continuación, puede pasar este valor a INetworkForwardStarEx.AddTurnRestriction()
Espero que esto ayude.
Ahora he identificado la respuesta. Simplemente se crea la característica como una característica convencional en la featureclass de giro:
A) Crear una forma de giro como una relación de los segmentos de la carretera involucrados. Recuerde que las carreteras pueden estar conectadas de diferentes maneras: DePunto a DePunto, DePunto a ToPunto, DePunto a DePunto o DePunto a ToPunto. Así que tenga cuidado con los segmentos a partir de los cuales crea la forma de giro.
C) Rellene todos los atributos. Los atributos Edge1FCID y Edge2FCID contienen el id interno de featureclass de las carreteras involucradas en el giro. Se encuentran en la tabla sde.GDB_ITEMS de la geodatabase. Los campos Edge1Pos y Edge2Pos indican qué parte de cada segmento de carretera está involucrada en el giro. Este valor debería coincidir con la forma creada en A. De nuevo, recuerde que las carreteras pueden estar conectadas de diferentes maneras. Eso debería reflejarse en los valores Edge1Pos y Edge2Pos.
C) Construir la red.