Skip To Content

Ejemplo de servicio de geoprocesamiento: ruta más corta en una red de calles

Disponible con una licencia de Network Analyst.

En este tema
Complejidad: IntermedioRequisitos de datos: ArcGIS Tutorial Data for DesktopRuta de datos: C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute Objetivo: Cree, publique y utilice un servicio de geoprocesamiento que busca la ruta más corta en un determinado momento del día en una red de calles y genera indicaciones para conducir.

Carpeta

ShortestRoute

Propósito

Muestra la ruta más rápida en un determinado momento del día entre puntos en una red de calles y genera indicaciones para conducir en un archivo de texto o HTML

Servicios

ShortestRouteService (servicio de geoprocesamiento)

Tareas de geoprocesamiento

Calcular Ruta más corta

Entradas

  • Dos o más puntos digitalizados por el usuario
  • Una fecha y hora de inicio
  • Una elección de publicar las indicaciones para conducir en formato de texto o HTML

Salidas

  • Una entidad de línea que representa la ruta más rápida entre los puntos especificados por el usuario en la hora de inicio determinada
  • Un archivo HTML o de texto que contiene las indicaciones para conducir

Datos

Utiliza un dataset de red de calles para el área de San Francisco que se proporciona en la carpeta ToolData

Extensiones

ArcGIS Network Analyst extension

Importante

  • Demuestra cómo volver a utilizar una capa de análisis de red de Ruta existente cada vez que se ejecuta la tarea.
  • Muestra cómo utilizar una herramienta de secuencia de comandos y el módulo Network Analyst para modificar el valor Hora de inicio de la capa de análisis.
  • Puede utilizar este ejemplo como guía para trabajar con los siguientes solucionadores de Network Analyst: ubicación y asignación, y matriz de coste OD. Sus flujos de trabajo son casi idénticos. (Consulte este tema cuando publique un servicio de geoprocesamiento que utilice los solucionadores de problemas de generación de rutas para vehículos, instalación más cercana o área de servicio).

Acerca de este ejemplo

Carpeta correspondiente

Los datos de este tutorial se pueden descargar desde ArcGIS.com. Extraiga los datos a C:\arcgis\ArcTutor\. El modelo y algunos datos correspondientes se encuentran en C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute. El dataset de red al que se hace referencia mediante la capa de análisis de red en el modelo se almacena en la geodatabase SanFrancisco, que se encuentra en C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute.

Acerca de este ejemplo

ShortestRouteService, que se creó en este ejemplo, muestra cómo publicar las tareas de geoprocesamiento que calculan la ruta más corta en una red de calles entre los puntos especificados por el usuario y generan un archivo que contiene las indicaciones para conducir.

Ejemplo de salida de la tarea Calcular ruta más corta
Ejemplo de salida de la tarea Calcular ruta más corta

El dataset de red San Francisco utilizado en este ejemplo está configurado con datos de tráfico históricos, que permiten encontrar la ruta más rápida para conducir en un día de la semana y una hora del día determinados. Esto significa que puede encontrar la mejor ruta desde el punto A al punto B a las 8:00 a.m., las 10:00 a.m., las 10: 25 p.m. y así sucesivamente. La forma de la ruta puede variar o la duración de la ruta puede cambiar, pero en cualquier caso, se calcula la ruta más rápida para la hora de inicio.

Datos

El dataset de red para este ejemplo viene de C:\arcgis\ArcTutor\GP Service Ejemplos\Network Analyst\SanFrancisco. gdb. El documento de mapa, la caja de herramientas y otros datos adicionales se almacenan en C:\arcgis\ArcTutor\GP Service Ejemplos\Network Analyst\ShortestRoute.

Contenido de la carpeta ShortestRoute
Contenido de la carpeta ShortestRoute

Dataset de red

La carpeta Network Analyst contiene una geodatabase de archivos, SanFrancisco.gdb. En el dataset de entidades Transporte hay un dataset de red, Streets_ND. Este dataset de red es un modelo de la red de calles del área de San Francisco. Proporciona varios atributos de red, que incluyen TravelTime, que indica el tiempo que se tarda en viajar por cada segmento de calle en minutos, y Metros, que indica la longitud de cada segmento de calle.

Caja de herramientas y documento de mapa

La caja de herramientas para el servicio de geoprocesamiento es ShortestRouteService.tbx.

El documento de mapa, ShortestRouteService.mxd se incluye para quitar pasos secundarios de este tema de flujo de trabajo, como agregar capas o extensiones de mapa adecuada en el área de estudio.

ShortestRouteService que contiene una herramienta de secuencia de comandos y un modelo. La herramienta de secuencia de comandos, Cambiar la hora de inicio de ruta, es parte del modelo Calcular ruta más corta.

Modelo

Vista general del modelo

El modelo Calcular ruta más corta se ilustra a continuación.

Hay tres parámetros de entrada: Hora de inicio, que es opcional y representa la hora de partida desde la primera parada; Paradas de entrada, que representa puntos digitalizados por el usuario a los que dirigirse; y Tipo de archivo para indicaciones, que especifica si generar las indicaciones en formato de texto o HTML.

El modelo utiliza una herramienta de secuencia de comandos para establecer la hora de inicio de ruta de una capa de análisis de red existente, agrega paradas a la capa de análisis de ruta, encuentra la mejor ruta y genera la forma de la ruta y las indicaciones para conducir. La ruta resultante visita las paradas en el orden en el que se digitalizaron.

Modelo Calcular ruta más corta
Modelo Calcular ruta más corta

Utilizar una capa de análisis de red existente

No se crea una capa de análisis de red en el modelo Calcular ruta más corta; más bien el modelo supone que ya existe una capa. Con este diseño, el modelo y cualquier tarea de geoprocesamiento publicada por el mismo vuelven a utilizar una capa de análisis de red en lugar de crear un para cada solución. Esto evita un montón de procesamientos innecesarios.

El modelo hace referencia a una herramienta de secuencia de comandos, Cambiar la hora de inicio de ruta, que utiliza Python y el módulo Network Analyst (arcpy.na) para acceder a la capa de análisis de red de ruta existente y cambiar la propiedad hora de inicio de ruta por la fecha y hora que el usuario introduzca. Más concretamente, la secuencia de comandos pasa la capa de análisis de red a arcpy.na.GetSolverProperties, que devuelve un objeto RouteSolverProperties. Con este objeto, la propiedad timeOfDay de la capa de análisis de red se establece.

Aunque no se recomienda, podría evitar agregar la herramienta de secuencia de comandos al iniciar el modelo con la herramienta Crear capa de ruta y exponer el parámetro de la herramienta Hora de inicio como un parámetro de modelo. Sin embargo, una nueva capa de análisis de red se crearía para cada solicitud de cliente cuando el modelo se publica como una tarea en un servidor. Utilizar este enfoque causaría una gran cantidad de procesamiento adicional en sus servidores. La herramienta de secuencia de comandos y el módulo Network Analyst le permiten editar las propiedades de una capa de análisis de red existente para que el servicio solo cree y utilice una única capa.

Legado:

Antes de 10.1, el módulo Network Analyst no existía. La única forma de cambiar las propiedades de una capa de análisis de red era crear una nueva capa en un modelo utilizando una o varias herramientas de geoprocesamiento creadoras de capas (por ejemplo, Crear capa de ruta) y luego exponer uno o más parámetros de análisis de la herramienta como parámetros de modelo.

La capa de ruta que se utilizó como variable de entrada en el modelo Calcular ruta más corta se creó agregando en primer lugar el dataset de red Streets_ND a ShortestRouteService.mxd y, a continuación, utilizando la herramienta Crear capa de ruta. Para este ejemplo, se establecieron los siguientes parámetros de herramienta cuando se creó la capa de ruta. Los valores predeterminados se utilizaron para los parámetros que no se mencionaron en esta tabla.

Parámetro

Valor

Entrada de la red de análisis

Streets_ND

Nombre de capa de salida

Ruta

Atributo de impedancia

TravelTime

Hora de inicio

Acumuladores

Metros; TravelTime

Directiva sobre cambios de sentido

ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY

Valores de parámetro utilizados con la herramienta Crear capa de ruta

Configuración del cuadro de diálogo de la herramienta Crear capa de ruta
Configuración del cuadro de diálogo de la herramienta Crear capa de ruta

Procesos de modelo

La herramienta de secuencia de comando Cambiar hora de inicio de la ruta le permite aprovechar la dinámica de las horas de viaje dinámicas del dataset al establecer una hora de inicio para la ruta. Si no establece una fecha y una hora, el solucionador encuentra la mejor ruta basándose en un atributo de coste de red que se genera a partir de los tiempos de viaje genérico. Estableciendo una fecha y una hora, sin embargo, el solucionador utiliza un atributo de coste basado en tiempos de viaje históricos, que tiende a producir mejor las rutas.

La herramienta Agregar ubicaciones agrega los puntos digitalizados por el usuario como paradas en la capa de ruta. El parámetro Ubicaciones de entrada para la herramienta se especifica a través de un parámetro de modelo, Paradas de entrada. Este parámetro es un tipo de datos de conjunto de entidades. El esquema y la simbología para el conjunto de entidades derivan del archivo InputStops.lyr que se encuentra dentro de la carpeta ToolData.

El esquema para el conjunto de entidades de Paradas de entrada contiene un campo de texto, Nombre. Este campo se puede utilizar para proporcionar los nombres de paradas mientras genera indicaciones para conducir al asignar la propiedad de Nombre al campo de nombre en Asignaciones de campos, como se ilustra a continuación. Si el valor para el campo de nombre no está especificado por el usuario, se utilizan los valores predeterminados por el usuario de Ubicación 1, Ubicación 2, etc., para los nombres de paradas.

Debido a que se utiliza la misma capa de ruta para cada ejecución del modelo, se deben quitar todas las paradas existentes antes de agregar las paradas nuevas. Para eliminar las paradas existentes, se desmarca la opción Adjuntar a ubicaciones existentes, que se ilustra a continuación.

Excluir las porciones restringidas de la red está marcado para que cuando se agreguen paradas, no se ubiquen en los bordes que no se pueden trazar. Esto evita fallos en el momento de la resolución.

Agregar paradas
Agregar paradas

La herramienta Solucionar calcula la ruta más corta en base al atributo de red TravelTime, al ajuste Hora de inicio y a otras opciones como se especificó en la capa de ruta. La ruta que se calculó se escribe en la subcapa Rutas de la capa de ruta de salida.

Las capas de análisis de red (tal como una capa de ruta) no son tipos de datos de parámetros de salida compatible con los clientes de ArcGIS Server. Por lo tanto la herramienta Seleccionar datos se utiliza para obtener la subcapa Rutas desde la capa de análisis de ruta.

La herramienta Indicaciones genera las indicaciones para conducir y las exporta a un archivo de texto, XML o HTML, dependiendo de la elección del usuario. Sin embargo, la opción XML se elimina de la lista cuando se ejecuta la tarea resultante de ArcGIS for Server. Esta opción se elimina desmarcando XML en el Editor de servicios, bajo Tipo de archivo para indicaciones, al publicar el servicio. La variable SolveSucceeded, que deriva de la herramienta Resolver, se utiliza como una condición previa para la herramienta Indicaciones. Esto significa que el archivo de indicaciones se genera sólo si la herramienta Solucionar puede encontrar una ruta entre los puntos de entrada.

Descripción de elemento

Al documentar la descripción del elemento del modelo de geoprocesamiento, también está documentando el servicio resultante y sus parámetros, porque el asistente de publicación copia el texto en la descripción del elemento del servicio. La descripción, o de la documentación, del servicio es necesaria y ayuda a los usuarios a entender cómo interactuar con éxito con el servicio y encontrar las rutas más cortas. La herramienta de modelo y de secuencia de comandos para este ejemplo se documentan; puede inspeccionar la documentación haciendo clic derecho en el modelo de geoprocesamiento en la ventana Tabla de Contenidos y eligiendo Descripción del elemento.

Publicación

El servicio de geoprocesamiento se publica como se describe en los pasos que aparecen a continuación.

  1. Abra ShortestRouteService.mxd. La ubicación predeterminada para los datos del tutorial es C:\arcgis\ArcTutor\GP Service Ejemplos\NetworkAnalyst\ShortestRoute.
  2. Ejecutar el modelo de geoprocesamiento Calcular ruta más corta.
    1. En la ventana Catálogo, expanda ShortestRouteService.tbx y haga doble clic en el modelo Calcular ruta más corta.
    2. En el cuadro de diálogo Calcular ruta más corta de la herramienta, haga clic en el símbolo junto a Paradas y haga clic en el mapa para agregar paradas.
    3. Haga clic en Aceptar para generar una ruta y direcciones de conducción.
  3. Abra la ventana Resultados haciendo clic en Geoprocesamiento > Resultados.
  4. En la ventana Resultados, expanda Sesión actual.
  5. Haga clic con el botón derecho en CalculateShortestRoute (que está seguido por la fecha y la hora en la que el modelo se ejecutó) y elija Compartir como > Servicio de geoprocesamiento.
  6. En el cuadro de diálogo Compartir como servicio, haga clic en Siguiente.
  7. Elija una conexión de ArcGIS Server con capacidades de responsable de publicación en la lista desplegable o realice una conexión utilizando el botón a la derecha de la lista desplegable.
  8. Haga clic en Siguiente.
  9. Elija publicar el servicio en la carpeta raíz o especifique una carpeta diferente y haga clic en Continuar.

    Aparece el cuadro de diálogo Editor del servicio. El texto de la descripción del elemento del modelo de geoprocesamiento y las descripciones del elemento se copia para describir el servicio. Se visualiza para la edición en la sección Descripción del elemento del cuadro de diálogo, así como en las secciones inmediatamente superiores (Route_Directions, Hora de inicio, etc.).

  10. Puesto que un análisis de ruta en esta área de estudio es un proceso rápido, haga que el servicio sea sincrónico haciendo clic en la pestaña Parámetros y marque Sincrónico. Si está publicando un servicio para la solución de problemas de ubicación-asignación o de la matriz de coste OD, establezca esta propiedad como Asíncrono y considere incrementar el valor del Tiempo máximo que un cliente puede utilizar un servicio, que se encuentra bajo la pestaña Agrupación .
  11. Cambie el Nivel de mensaje a Advertencia para que se devuelvan todos los mensajes de error se ejecuta la tarea.
  12. Quitar XML de las opciones de formato de archivo para las indicaciones para conducir haciendo clic en Tipo de archivo para indicaciones y desmarcando XML.
  13. Haga clic en Analizar Analizar para ver todos los mensajes de error y advertencia en la ventana Publicador.

    A menos que haya establecido un almacenamiento de datos, recibirá una advertencia de que los datos se copiarán en el servidor.

    Haga clic derecho en cualquier otro mensaje de error en la ventana Responsable de publicación para obtener ayuda sobre cómo afrontarlas.

  14. Haga clic en Publicar Publicar en el cuadro de diálogo Editor de servicios.

    Puede parecer un cuadro de diálogo inmediatamente para informarle de que Streets_ND se copiará en el servidor. Si es así, haga clic en Aceptar. Una vez que el servicio lo publica correctamente, aparece el cuadro de diálogo Correcto.

  15. Haga clic en Aceptar.

Utilización

  1. Abra un documento de mapa en blanco y agregue la clase de entidad Calles de los datos del tutorial (C:/arcgis/ArcTutor/Ejemplos de servicio GP/Network Analyst/SanFrancisco/Transporte/Streets). De manera opcional, puede agregar una capa de mapa base de ArcGIS Online y quitar la capa de entidad Calles.
  2. Cree una conexión a ArcGIS Server en la ventana Catálogo si no existe ninguna.
  3. Expanda la conexión de usuario y el servicio CalculateShortestRoute.
  4. Abra la tarea Calcular ruta más corta haciendo doble clic sobre la misma.
  5. Agregue al menos dos puntos para crear ubicaciones de parada. De manera opcional, especifique nombres para cada parada en la tabla de atributos para la capa que aparecerá en la tabla de contenido: CalculateShortestRoute::Stops.
  6. Especifique una fecha y hora para cuando la ruta salga de la primera parada. Elija si generar indicaciones para conducir en formato de texto o HTML. Haga clic en Aceptar para ejecutar la tarea.

    ArcGIS for Server recibe la solicitud, resuelve el análisis, devuelve una capa llamada Rutas, y almacena el archivo de indicaciones de conducción en el directorio temporal. Puede acceder a las indicaciones para conducir a través de la ventana Resultados: expanda Sesión actual > CalculateShortestRoute y haga doble clic en Indicaciones de ruta: RouteDirections. (Puede hacer clic con el botón derecho en Indicaciones de ruta: RouteDirections y elegir Copiar ubicación para determinar dónde se encuentra el archivo en su equipo.)

Temas relacionados