Ejemplo de servicio GP: Ruta más corta en una red de calles

Complejidad: Intermedio Requisitos de datos: Configuración de datos de tutorial de ArcGIS Ruta de datos: C:\ArcGIS\ArcTutor\GP Service Examples\ShortestRoute Objetivo: Cree, publique y utilice un servicio de geoprocesamiento que busca la ruta más corta en una red de calles y genera indicaciones para conducir.

Carpeta

ShortestRoute

Propósito

Crea la ruta más corta entre los puntos dados en una red de calles y genera indicaciones para conducir en un archivo de texto o HTML.

Servicios

  • SanFranciscoBaseMap (servicio de mapas)
  • ShortestRouteService (servicio de geoprocesamiento)

Tareas de geoprocesamiento

  • Calcular ruta más corta e indicaciones de texto
  • Calcular ruta más corta e indicaciones HTML

Entradas

Dos o más puntos digitalizados por el usuario.

Salidas

  • La ruta más corta entre los puntos especificados por el usuario basada en el tiempo de viaje.
  • Un archivo HTML o de texto (según la tarea utilizada) que contiene 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

Network Analyst

Importante

  • Demuestra cómo volver a utilizar una capa de análisis de red de Ruta existente cada vez que se ejecuta la tarea.
  • Tarea Calcular ruta más corta e indicaciones HTML: cómo se puede utilizar una biblioteca Python externa desde una herramienta de secuencia de comandos para convertir las indicaciones para conducir del formato XML a HTML.

Acerca de este ejemplo

Carpeta correspondiente

C:\arcgis\ArcTutor\GP Service Examples\ShortestRoute contiene los modelos, la herramienta secuencia de comandos y los datos completos.

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. La tarea Calcular ruta más corta e indicaciones de texto genera las indicaciones para conducir en un archivo de texto mientras que la tarea Calcular ruta más corta e indicaciones HTML genera las indicaciones para conducir en un archivo HTML. Las dos tareas también generan la salida de la ruta más corta como un conjunto de entidades.

Ejemplo de salida de la tarea Calcular ruta más corta e indicaciones de texto
Ejemplo de salida de la tarea Calcular ruta más corta e indicaciones de texto

Datos

Los datos para este ejemplo vienen de C:\arcgis\ArcTutor\GP Service Examples\ShortestRoute.

Contenido de la carpeta ShortestRoute
Contenido de la carpeta ShortestRoute

Dataset de red

La carpeta ToolData contiene una geodatabase de archivos, SanFrancisco.gdb. Esta geodatabase contiene un dataset de red, Streets_ND, dentro del dataset de entidades Transportation. Este dataset de red es un modelo de la red de calles del área de San Francisco. Proporciona un atributo de red, TravelTime, que indica el tiempo que lleva viajar por cada segmento de calle en minutos.

Mapa base

La capa de mapa base que está dentro de SanFranciscoBaseMap.mxd tiene una capa, Streets, que se ilustra a continuación. Esta capa muestra la extensión del dataset de red. Esto significa que esta tarea se puede utilizar para determinar la ruta más corta sólo en esta extensión.

Mapa base de San Francisco que muestra la extensión del dataset de red
Mapa base de San Francisco que muestra la extensión del dataset de red

SanFranciscoBaseMap.mxd se publica como un servicio de mapas.

Caja de herramientas y documento de mapa

La caja de herramientas para el servicio de geoprocesamiento es ShortestRouteService y el documento de mapa de origen para el servicio es ShortestRouteService.mxd. ShortestRouteService contiene dos modelos y una herramienta de secuencia de comandos, Convertir indicaciones a HTML. Esta herramienta de secuencia de comandos se utiliza dentro del modelo Calcular ruta más corta e indicaciones HTML. ShortestRouteService.mxd contiene dos capas de datos de origen, Streets_ND (el dataset de red) y Ruta (la capa de análisis de red).

Modelo

Vista general del modelo

El modelo Calcular ruta más corta e indicaciones de texto se ilustra a continuación. Hay un parámetro de entrada, Paradas de entrada, que son puntos. La ruta más corta visita las paradas en base a la secuencia digitalizada. El modelo agrega los puntos digitalizados por el usuario como paradas en una capa de análisis de red de Ruta existente, realiza una operación para determinar la ruta más corta, genera las indicaciones para conducir y las escribe en un archivo de texto.

Modelo Calcular ruta más corta e indicaciones de texto

Utilizar una capa de análisis de red existente

En este modelo, no se crea una capa de análisis de red en el modelo como está en el ejemplo DriveTimePolygonsService. En su lugar, se utiliza la capa de ruta existente, Ruta. (Esta capa se creó mediante la herramienta Hacer la capa de la ruta). Se puede utilizar la capa existente ya que ninguna de las propiedades de análisis para la capa de ruta, tal como atributo de impedancia, aparecieron como parámetros de modelo. En el ejemplo DriveTimePolygonsService, los valores de corte predeterminados (una propiedad de análisis para las capas del área de servicio) aparecieron como un parámetro de modelo, de modo que se requirió la herramienta Crear la capa de área de servicio como un proceso de modelo.

Tenga en cuenta que si alguna de las propiedades de análisis de ruta, tal como atributo de impedancia, va a aparecer como parámetro de modelo, se debe utilizar la herramienta Hacer la capa de la ruta como un primer proceso en el modelo.

La capa de Ruta que se utilizó como una variable de entrada en el modelo se creó al agregar primero el dataset de red Streets_ND en ShortestRouteService.mxd y después al utilizar la herramienta Hacer la capa de la ruta. Para este ejemplo, se utilizaron los siguientes parámetros para la herramienta Hacer la capa de la 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

Acumuladores

TravelTime;Meters

Política de giro en U

ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY

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

Procesos de modelo

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 usuario no especifica el valor para el campo de nombre, se utilizan los valores predeterminados 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.

Agregar paradas
Agregar paradas

La herramienta Solucionar calcula la ruta más corta en base al atributo de red TravelTime 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 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 Ruta.

La herramienta Indicaciones se utiliza para generar las indicaciones para conducir y darles salida en un archivo de texto. El archivo de texto de salida que contiene las indicaciones para conducir se crea en el directorio de trabajo en el servidor con la variable en línea %scratchworkspace%. 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.

Generar indicaciones para conducir
Generar indicaciones para conducir

Capa de herramienta

La capa de herramienta Calcular ruta más corta e indicaciones de texto se crea al arrastrar el modelo Calcular ruta más corta e indicaciones de texto en la tabla de contenido de ArcMap. Debido a que el modelo actualiza la capa de Ruta existente, la salida de la capa de herramienta deriva su simbología de la subcapa Rutas dentro de la capa Ruta en la tabla de contenido.

Simbología de la capa de herramienta
Simbología de la capa de herramienta

Publicar

SanFranciscoBaseMap.mxd se publica como un servicio de mapas. ShortestRouteService.mxd se publica como un servicio de geoprocesamiento sin servicio de mapas de resultado, de la siguiente forma:

  1. En la ventana Catálogo, haga clic derecho en SanFranciscoBaseMap.mxd y haga clic en Publicar en ArcGIS Server.
  2. Acepte todos los valores predeterminados.
  3. En la ventana Catálogo, navegue hasta la conexión administrativa del servidor en el nodo Servidores SIG, haga clic derecho, y elija Agregar nuevo servicio. Asigne un nombre al servicio ShortestRouteService y elija Servicio de geoprocesamiento como el tipo.
  4. Haga clic en Siguiente.
  5. En el siguiente panel, elija Sincrónico para el Tipo de ejecución. Para la opción Las herramientas que expone el servicio de geoprocesamiento se almacenan en, elija Un mapa y especifique ShortestRouteService.mxd para el Documento de mapa. Como es una prueba del servicio, marque Mostrar mensajes.
    Publicar el ShortestRouteService
    Publicar ShortestRouteService
  6. Haga clic en Siguiente. A partir de este punto, puede aceptar los valores predeterminados que le proporciona el asistente y crear el servicio.

Utilizar

  1. Abra ArcMap con un documento en blanco.
  2. Cree una conexión a ArcGIS Server en la ventana Catálogo si no existe ninguna.
  3. Agregue el servicio de mapas SanFranciscoBaseMap a la tabla de contenido de ArcMap.
  4. En la ventana Catálogo, en el nodo de conexión de usuario Servidores SIG, expanda la caja de herramientas ShortestRouteService y abra la herramienta Calcular ruta más corta e indicaciones de texto. La ilustración siguiente muestra el resultado de estos pasos:
    Tarea Calcular ruta más corta e indicaciones de texto en una sesión de ArcMap
  5. Agregar dos o más puntos para crear paradas. Opcionalmente, especifique los nombres para cada parada y haga clic en Aceptar para ejecutar la tarea.

    Después de finalizar la tarea, la tabla de contenido contiene la capa de salida Ruta más corta, como se ilustra a continuación. Las paradas de entrada no son generadas como salida desde la tarea pero se agregan a la tabla de contenido desde el nodo Entradas en la ventana Resultados.

    Resultado de la tarea
    Resultado de la tarea
  6. El archivo de texto que contiene las indicaciones se copia desde el directorio de trabajos del servidor al espacio de trabajo temporal para la sesión actual de ArcMap. Este archivo de texto que contiene las indicaciones se puede visualizar al hacer doble clic en la ventana Resultados.
    Ver el archivo de indicaciones
    Ver el archivo de indicaciones

Generar indicaciones HTML

La herramienta Indicaciones que se utiliza en el modelo Calcular ruta más corta e indicaciones de texto puede generar las indicaciones en formato de texto o XML. Las indicaciones en formato XML se pueden convertir a un archivo HTML con un buen formato al aplicar una hoja de estilo mediante una secuencia de comandos Python. La secuencia de comandos, ApplyStyleSheet.py, que se encuentra en la carpeta Secuencia de comandos dentro de la carpeta ShortestRoute, se puede utilizar para convertir las indicaciones de formato XML a HTML. La carpeta de secuencias de comandos también contiene el archivo de hoja de estilo, Dir2WebDocumentNoMaps.xsl, que especifica el formato del archivo HTML.

Contenido de la carpeta de secuencias de comandos
Contenido de la carpeta de secuencias de comandos

Instalar la biblioteca Python externa

La secuencia de comandos ApplyStyleSheet.py utiliza una biblioteca Python externa, libxml2. La biblioteca no se proporciona con ArcGIS y no es compatible con Esri. Es un software externo, de terceros. Necesitará descargar e instalar esta biblioteca en los equipos SOC de ArcGIS Server. Navegue hasta http://xmlsoft.org/sources/win32/python/, descargue la última libxml2 instalación para Python 2.6 (por ejemplo, libxml2-python-2.7.4.win32-py2.6.exe: es posible que las versiones anteriores no funcionen). Después de realizar la descarga, haga doble clic en el archivo ejecutable para instalar la biblioteca.

Crear la herramienta de secuencia de comandos

Para utilizar la secuencia de comandos ApplyStyleSheet.py en el modelo, esta se agrega a la caja de herramientas ShortestRouteService como una herramienta de secuencia de comandos denominada Convertir indicaciones a HTML. Esta herramienta de secuencia de comandos toma el archivo de hoja de estilo y el archivo XML como entrada y genera un archivo HTML de salida.

Agregar la herramienta de secuencia de comandos
Agregar la herramienta de secuencia de comandos

Agregar la herramienta de secuencia de comandos al modelo

Se cambia el nombre del modelo Generar ruta más corta e indicaciones de texto y se guarda como Generar ruta más corta e indicaciones HTML con el fin de agregar la herramienta de secuencia de comandos Convertir indicaciones a HTML. En este modelo, el parámetro de tipo de archivo de salida para la herramienta Indicaciones se cambia a XML. Esta archivo XML y el archivo Dir2WebDocumentNoMaps.xsl se utilizan como variables de entrada para la herramienta de secuencia de comandos. El archivo HTML de salida se escribe en el directorio de trabajos en el servidor mediante la variable en línea %scratchworkspace%.

Modelo Calcular ruta más corta e indicaciones HTML

Publicar y utilizar

El modelo Calcular ruta más corta e indicaciones HTML se puede publicar como una nueva tarea dentro del servicio de geoprocesamiento ShortestRouteService que se creó anteriormente, como se describe a continuación:

  1. Cree la capa de herramienta Calcular ruta más corta e indicaciones HTML en ShortestRouteService.mxd al arrastrar el modelo Calcular ruta más corta e indicaciones HTML desde la ventana de Catálogo hasta la tabla de contenido de ArcMap.
  2. Guarde ShortestRouteService.mxd.
  3. En la ventana de Catálogo, detenga e inicie el servicio de geoprocesamiento ShortestRouteService.

El servicio ShortestRouteService ahora debería tener una segunda tarea denominada Calcular ruta más corta e indicaciones HTML. Esta tarea es similar a la tarea Calcular ruta más corta e indicaciones de texto excepto en que genera las indicaciones en formato HTML.

Indicaciones en formato HTML
Indicaciones en formato HTML

Temas relacionados


3/6/2012