Resumen
Buscar rutas determina las rutas más cortas para visitar las paradas de entrada y devuelve indicaciones de conducción, información sobre las paradas visitadas y las trayectorias de las rutas, incluyendo el tiempo y la distancia del viaje.
Esta herramienta busca rutas que pasen por distintas paradas de entrada siguiendo una secuencia predeterminada o según una secuencia que minimice el trayecto completo. Las paradas de entrada se pueden agrupar en diferentes rutas utilizando el campo RouteName para que la herramienta genere una ruta para cada grupo de paradas, lo que permite generar rutas para muchos vehículos en una sola operación de resolución.
Nota:
Al utilizar Buscar rutas para enrutar varios vehículos, se deben asignar paradas a las rutas antes de resolverlas. Si necesita una herramienta que determine la mejor manera de dividir paradas entre diferentes vehículos y luego enrutarlos, use la herramienta Solucionar problema de generación de rutas para vehículos en su lugar.
Precaución:
Para obtener información actualizada sobre esta herramienta, consulte la edición más reciente de este tema en la Ayuda web. ArcGIS Online realiza actualizaciones funcionales periódicas a servicios como este, de forma que la ayuda instalada podría estar obsoleta.
Ilustración
Uso
Las herramientas de la caja de herramientas listas para usar son servicios de geoprocesamiento de ArcGIS Online que usan los datos alojados y las capacidades de análisis de ArcGIS Online.
La herramienta encuentra las rutas más cortas en función del tiempo de viaje si el valor del parámetro Unidades de medida está basado en el tiempo y en función de la distancia recorrida si el valor se basa en la distancia.
Debe especificar al menos dos paradas para que la herramienta se ejecute correctamente. Puede cargar hasta 10.000 paradas y asignar un máximo de 150 paradas por ruta.
Puede añadir hasta 250 barreras de punto. Puede añadir cualquier cantidad de barreras de línea o polígono, pero las barreras de línea no se pueden intersecar con más de 500 entidades de calle ni las barreras de polígono se pueden intersecar con más de 2000 entidades.
Puede optar por usar la jerarquía de carreteras al resolver, si desea que los resultados se generen con más rapidez que en el caso de las rutas exactas, pero la solución podría no ser óptima.
Con independencia de que el parámetro Utilizar jerarquía se haya activado (Verdadero) o no, la jerarquía siempre se usa cuando la distancia en línea recta entre cualquier par de paradas sea mayor que 50 millas (80,46 kilómetros).
La distancia en línea recta entre cualquier par de paradas no puede ser superior a 27 millas (43,45 kilómetros) cuando Modo de viaje está establecido en A pie o cuando está establecido en Personalizado y se utiliza la restricción A pie.
Si la distancia entre un punto de entrada y la calle más próxima que se puede atravesar es mayor que 12.42 millas (20 kilómetros), el punto se excluye del análisis.
El uso de este servicio consume créditos. Para obtener más información, consulte Descripción general de los créditos de servicio.
Sintaxis
arcpy.agolservices.FindRoutes(Stops, Measurement_Units, {Analysis_Region}, {Reorder_Stops_to_Find_Optimal_Routes}, {Preserve_Terminal_Stops}, {Return_to_Start}, {Use_Time_Windows}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_at_Junctions}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Use_Hierarchy}, {Restrictions}, {Attribute_Parameter_Values}, {Route_Shape}, {Route_Line_Simplification_Tolerance}, {Populate_Route_Edges}, {Populate_Directions}, {Directions_Language}, {Directions_Distance_Units}, {Directions_Style_Name}, {Travel_Mode}, {Impedance}, {Time_Zone_for_Time_Windows}, {Save_Output_Network_Analysis_Layer}, {Overrides}, {Save_Route_Data}, {Time_Impedance}, {Distance_Impedance}, {Output_Format})
Parámetro | Explicación | Tipo de datos |
Stops | Especifica las ubicaciones que visitarán la o las rutas de salida. Puede añadir hasta 10.000 paradas y asignar un máximo de 150 paradas a una sola ruta. (Asigna paradas a rutas usando el atributo RouteName). Cuando se especifican las paradas, se pueden definir propiedades para cada una, como su nombre o tiempo de servicio, mediante los siguientes atributos: Name El nombre de la parada. El nombre se utiliza en las indicaciones sobre cómo llegar. Si no se especifica el nombre, se genera automáticamente un nombre único con el prefijo Location en las paradas, rutas e indicaciones de salida. RouteName El nombre de la ruta a la que se ha asignado la parada. Si se asigna el mismo nombre de ruta a distintas paradas, las paradas se agrupan y se utilizan para trazar una misma ruta por ellas. Es posible generar muchas rutas en una sola operación de resolución asignando nombres de ruta distintos a grupos distintos de paradas. Puede agrupar hasta 150 paradas en una sola ruta. Sequence Las rutas de salida visitan las paradas en el orden especificado con este atributo. En un grupo de paradas con el mismo valor de RouteName, el número de secuencia debe ser mayor que 0 y no superar el número total de paradas. Asimismo, el número de secuencia no debería estar duplicado. Si la opción Reordenar las paradas para encontrar las rutas óptimas está activada (True), todos los valores, salvo tal vez el inicio y el final de cada ruta, se ignoran para que la herramienta pueda buscar la secuencia que minimice el viaje total de cada ruta. (La configuración de Preservar el orden de paradas y Volver al inicio determinan si se deben ignorar o no el primer y el último valor de secuencia de cada ruta). AdditionalTime La cantidad de tiempo pasado en la parada, que se agrega al tiempo total de la ruta. El valor predeterminado es 0. Las unidades de este valor de atributo se especifican con el parámetro Unidades de medida. El valor del atributo se incluye en el análisis solo cuando las unidades de medida se basan en el tiempo. Es posible tener en cuenta el tiempo adicional necesario para completar una tarea en una parada, como reparar un aparato, entregar un paquete o inspeccionar una instalación. AdditionalDistance La distancia adicional de viaje en las paradas, que se agrega a la distancia total de la ruta. El valor predeterminado es 0. Las unidades de este valor de atributo se especifican con el parámetro Unidades de medida. El valor del atributo se incluye en el análisis solo cuando las unidades de medida se basan en la distancia. Por lo general, la localización de una parada como, por ejemplo, una casa, no se encuentra exactamente en la calle, sino ligeramente apartada de la calle. Este valor de atributo se puede usar para modelar la distancia entre la ubicación real de la parada y su ubicación en la calle, si es importante incluir esa distancia en la distancia total de viaje. AdditionalCost El coste adicional que se gasta en la parada, que se agrega al coste total de la ruta. El valor predeterminado es 0. Este valor de atributo debe utilizarse cuando el modo de viaje del análisis utiliza un atributo de impedancia que no está basado ni en tiempo ni en distancia. Las unidades de los valores de atributo se interpretan como unidades desconocidas. TimeWindowStart La hora más temprana en que se puede visitar la parada. Si se especifica una hora de inicio y de fin de la ventana de tiempo de una parada, se define cuándo puede pasar una ruta por la parada. Cuando el modo de viaje del análisis utiliza un atributo de impedancia basado en el tiempo, el análisis encontrará una solución especificando valores de la ventana de tiempo de forma que se minimice el tiempo total del viaje y se llegue a la parada en la ventana de tiempo establecida. Asegúrese de especificar el valor en forma de valor de fecha y hora, por ejemplo, 12/8/2015 12:15 PM. Al resolver un problema que afecta a varias zonas horarias, los valores de la ventana de tiempo de cada parada hacen referencia a la zona horaria en la que se encuentra la parada. Este campo puede contener un valor nulo. Un valor nulo indica que una ruta puede llegar en cualquier momento antes de la hora indicada en el atributo TimeWindowEnd. Si también hay un valor nulo en TimeWindowEnd, la ruta puede visitar la parada en cualquier momento. TimeWindowEnd La hora más tardía en que se puede visitar la parada. Si se especifica una hora de inicio y de fin para la ventana de tiempo de una parada, se define cuándo puede pasar una ruta por la parada. Cuando el modo de viaje del análisis utiliza un atributo de impedancia basado en el tiempo, si se especifican valores de ventana de tiempo, el análisis encontrará una solución de forma que se minimice el tiempo total del viaje y se llegue a la parada en la ventana de tiempo establecida. Asegúrese de especificar el valor en forma de valor de fecha y hora, por ejemplo, 12/8/2015 12:15 PM. Al resolver un problema que afecta a varias zonas horarias, los valores de la ventana de tiempo de cada parada hacen referencia a la zona horaria en la que se encuentra la parada. Este campo puede contener un valor nulo. Un valor nulo indica que una ruta puede llegar en cualquier momento después de la hora indicada en el atributo TimeWindowStart. Si también hay un valor nulo en TimeWindowStart, la ruta puede visitar la parada en cualquier momento. CurbApproach Especifica la dirección en la que un vehículo puede llegar a la parada y partir de ella. El valor de campo se especifica como uno de los siguientes enteros (use el código numérico, no el nombre entre paréntesis):
El atributo CurbApproach se ha diseñado para trabajar con los dos tipos de estándares nacionales de circulación: por la derecha (Estados Unidos) y por la izquierda (Reino Unido). En primer lugar, considere una parada en el lado izquierdo de un vehículo. Siempre estará situada el lado izquierdo, independientemente de si el vehículo circula por la mitad izquierda o derecha del camino. Las normas de circulación nacionales pueden influir en su decisión de aproximarse a una parada desde una de las dos direcciones posibles, de modo que quede en el lado derecho o en el lado izquierdo del vehículo. Por ejemplo, si desea llegar a una parada y que no haya un carril entre el vehículo y la parada, elija 1 (Lado derecho del vehículo) en Estados Unidos y 2 (Lado izquierdo del vehículo) en Reino Unido. LocationType Especifica el tipo de parada. El valor de campo se especifica como uno de los siguientes enteros (use el código numérico, no el nombre entre paréntesis):
Bearing La dirección en la que está avanzando un punto. Las unidades son grados y se miden en sentido horario desde el norte verdadero. Este campo se utiliza junto con el campo BearingTol. Los datos de rumbo normalmente se envían de forma automática desde un dispositivo móvil dotado de un receptor GPS. Intente incluir datos de rumbo si está cargando una ubicación de entrada que se mueve, como un peatón o un vehículo. Utilizar este campo tiende a evitar agregar ubicaciones a los bordes equivocados, que puede ocurrir cuando un vehículo está cerca de una intersección o un paso elevado, por ejemplo. El rumbo también ayuda a la herramienta a determinar en qué lado de la calle está el punto. Más información sobre el rumbo y la tolerancia de rumbo BearingTol El valor de tolerancia de rumbo crea un rango de valores de rumbo aceptable al ubicar los puntos en movimiento en un eje con el campo Bearing. Si el valor del campo Bearing está dentro del rango de valores aceptables que se generan a partir de la tolerancia de rumbo en un eje, el punto se puede agregar como una ubicación de red ahí; de lo contrario, se evalúa el punto más cercano sobre el próximo borde más cercano. Las unidades se expresan en grados y el valor predeterminado es 30. Los valores deben ser mayores que 0 y menores que 180. Un valor de 30 significa que cuando Network Analyst intenta agregar una ubicación de red en un eje, se genera un rango de valores de rumbo aceptable 15 grados a cada lado del eje (izquierdo y derecho) y en ambas direcciones digitalizadas del eje. Más información sobre el rumbo y la tolerancia de rumbo NavLatency Este campo solo se utiliza en el proceso de resolución si Bearing y BearingTol también tienen valores. Sin embargo, la introducción de un valor NavLatency es opcional, incluso cuando hay valores en Bearing y BearingTol. NavLatency indica cuánto coste se espera que transcurra desde el momento en que se envía la información de GPS desde un vehículo en movimiento a un servidor y el momento en que el dispositivo de navegación del vehículo recibe la ruta procesada. Las unidades de NavLatency son las mismas que las unidades del atributo de impedancia. | Feature Set |
Measurement_Units | Especifica las unidades que se usarán para medir y reportar el tiempo o la distancia totales de viaje de las rutas de salida. Las unidades elegidas para este parámetro determinan si la herramienta medirá la distancia o el tiempo para encontrar las mejores rutas. Elija una unidad de tiempo para minimizar el tiempo de viaje para el modo de viaje elegido (en coche o a pie, por ejemplo). Para minimizar la distancia de viaje para el modo de viaje en cuestión, elija una unidad de distancia. La elección también determina en qué unidades indicará la herramienta el tiempo o la distancia total en los resultados.
| String |
Analysis_Region (Opcional) | La región en la que se realizará el análisis. Si no se especifica un valor para este parámetro, la herramienta calcula automáticamente el nombre de la región en función de la ubicación de los puntos de entrada. Es obligatorio definir el nombre de la región solamente si la detección automática del nombre de la región no es precisa para sus entradas. Para especificar una región, utilice uno de los siguientes valores:
Heredado:Ya no se admiten los siguientes nombres de regiones, que se eliminarán en versiones futuras. Si especifica uno de los nombres de región obsoletos, la herramienta asignará automáticamente un nombre compatible para su región.
| String |
Reorder_Stops_to_Find_Optimal_Routes (Opcional) | Especifica si se desea que las paradas se visiten en el orden definido por usted o si el orden que determine la herramienta minimizará el viaje en general.
La búsqueda del orden de paradas óptimo y las mejores rutas se conoce normalmente como solucionar el problema del vendedor viajero (TSP, por sus siglas en inglés). | Boolean |
Preserve_Terminal_Stops (Opcional) | Especifica cómo se mantendrán las paradas terminales. Si la opción Reordenar paradas para encontrar rutas óptimas está activada (o tiene el valor True), puede preservar las paradas inicial o final del recorrido y permitir que la herramienta reordene el resto. La primera y la última parada se determinan mediante los valores del atributo Sequence o, si los valores de Sequence son nulos, mediante los valores de Object ID.
Preservar las paradas terminales se ignora si la opción Reordenar las paradas para encontrar las rutas óptimas está desactivada (o tiene el valor False). | String |
Return_to_Start (Opcional) | Especifica si las rutas empezarán y terminarán en la misma ubicación. Con esta opción, se evita tener que duplicar la entidad de la primera parada y secuenciar la parada duplicada para colocarla al final. La ubicación de inicio de la ruta es la entidad de parada con el valor más bajo del atributo Sequence. Si los valores de Sequence son nulos, se utiliza la entidad de parada con el valor más bajo de Object ID.
| Boolean |
Use_Time_Windows (Opcional) | Especifica si las ventanas de tiempo se respetarán. Active esta opción o (configúrela con el valor True) si hay alguna parada que tenga una ventana de tiempo que especifique cuándo llegará la ruta a la parada. Es posible añadir ventanas de tiempo a las paradas de entrada introduciendo valores de tiempo en los atributos TimeWindowStart y TimeWindowEnd.
La herramienta tardará un poco más en ejecutarse con la opción Utilizar ventanas de tiempo activada (o con el valor True), incluso aunque ninguna de las paradas de entrada tenga ventanas de tiempo, así que se recomienda desactivar esta opción (definida como False) si es posible. | Boolean |
Time_of_Day (Opcional) | La hora y la fecha en la cual comenzarán las rutas. Si está modelando el modo de viaje de conducción y especifica la fecha y hora actuales como valor de este parámetro, la herramienta utilizará las condiciones del tráfico en tiempo real para encontrar las mejores rutas, y el tiempo de viaje total se basará en las condiciones del tráfico. Al especificar una hora del día se obtienen rutas más precisas y mejores estimaciones del tiempo de viaje porque los tiempos de viaje tienen en cuenta las condiciones del tráfico aplicables a esa fecha y hora. El parámetro Zona horaria para hora del día especifica si la fecha y la hora se refieren a UTC o a la zona horaria en la cual se encuentra la parada. La herramienta ignora este parámetro cuando Unidades de medida no está configurada con una unidad de tiempo. | Date |
Time_Zone_for_Time_of_Day (Opcional) | Especifica la zona horaria del parámetro Hora del día.
| String |
UTurn_at_Junctions (Opcional) | Especifica la política de cambios de sentido en los cruces. Permitir cambios de sentido implica que el solucionador puede dar la vuelta en un cruce y regresar por la misma calle. Debido a que los cruces representan intersecciones de calles y callejones sin salida, los diferentes vehículos pueden ser capaces de dar la vuelta en algunos cruces, pero no en otros, depende de que el cruce sea una intersección o un callejón sin salida. Para dar cabida a esta situación, el parámetro de la política de cambios de sentido se especifica implícitamente por la cantidad de ejes que se conectan en el cruce, lo que se conoce como valencia de cruce. Los valores aceptables para este parámetro se enumeran a continuación; cada uno seguido de una descripción de su significado en términos de valencia de cruce.
Este parámetro se ignora a menos que el parámetro Modo de viaje esté establecido en Personalizado. | String |
Point_Barriers (Opcional) | Utilice este parámetro para especificar uno o varios puntos que actuarán como restricciones temporales o representen el tiempo o la distancia adicionales que puede que se necesiten para viajar en las calles subyacentes. Por ejemplo, una barrera de punto se puede usar para representar un árbol caído en una calle o el retraso acumulado en un cruce de ferrocarril. La herramienta impone un límite de 250 puntos que se pueden añadir como barreras. Cuando se especifican las barreras de punto, se pueden definir propiedades para cada una de ellas, como su nombre o el tipo de barrera, mediante el uso de los siguientes atributos: Name El nombre de la barrera. BarrierType Especifica si la barrera de punto restringe el recorrido completamente o agrega tiempo o distancia cuando se cruza. El valor de este atributo se especifica como uno de los siguientes enteros (use el código numérico, no el nombre entre paréntesis):
Additional_Time El tiempo de viaje agregado cuando se realiza el trazado poligonal de la barrera. Este campo solo se aplica a barreras con coste agregado. El valor de este campo debe ser mayor o igual que cero, y sus unidades son las mismas que las especificadas en el parámetro Unidades de medida. Additional_Distance La distancia agregada cuando se realiza el trazado poligonal de la barrera. Este campo solo se aplica a barreras con coste agregado. El valor de este campo debe ser mayor o igual que cero, y sus unidades son las mismas que las especificadas en el parámetro Unidades de medida. Additional_Cost El coste agregado cuando se realiza el trazado poligonal de la barrera. Este campo solo se aplica a barreras con coste agregado. FullEdge Especifica cómo se aplican las barreras de punto de restricción a los elementos de eje durante el análisis. El valor de campo se especifica como uno de los siguientes enteros (use el código numérico, no el nombre entre paréntesis):
CurbApproach Especifica la dirección de tráfico que se ve afectada por la barrera. El valor de campo se especifica como uno de los siguientes enteros (use el código numérico, no el nombre entre paréntesis):
Debido a que los cruces son puntos y no tienen lados, las barreras sobre cruces afectan a todos los vehículos, independientemente de la aproximación a borde. El atributo CurbApproach trabaja con los dos tipos de estándares nacionales de circulación: por la derecha (Estados Unidos) y por la izquierda (Reino Unido). En primer lugar, considere una instalación en el lado izquierdo de un vehículo. Siempre estará situada el lado izquierdo, independientemente de si el vehículo circula por la mitad izquierda o derecha del camino. Los estándares de circulación nacionales pueden influir en su decisión de aproximarse a una instalación por una de las dos direcciones posibles, de modo que quede en el lado derecho o en el lado izquierdo del vehículo. Por ejemplo, para llegar a una instalación y que no haya un carril entre el vehículo y la instalación, elija 1 (Lado derecho del vehículo) en Estados Unidos y 2 (Lado izquierdo del vehículo) en Reino Unido. Bearing La dirección en la que está avanzando un punto. Las unidades son grados y se miden en sentido horario desde el norte verdadero. Este campo se utiliza junto con el campo BearingTol. Los datos de rumbo normalmente se envían de forma automática desde un dispositivo móvil dotado de un receptor GPS. Intente incluir datos de rumbo si está cargando una ubicación de entrada que se mueve, como un peatón o un vehículo. Utilizar este campo tiende a evitar agregar ubicaciones a los bordes equivocados, que puede ocurrir cuando un vehículo está cerca de una intersección o un paso elevado, por ejemplo. El rumbo también ayuda a la herramienta a determinar en qué lado de la calle está el punto. Más información sobre el rumbo y la tolerancia de rumbo BearingTol El valor de tolerancia de rumbo crea un rango de valores de rumbo aceptable al ubicar los puntos en movimiento en un eje con el campo Bearing. Si el valor del campo Bearing está dentro del rango de valores aceptables que se generan a partir de la tolerancia de rumbo en un eje, el punto se puede agregar como una ubicación de red ahí; de lo contrario, se evalúa el punto más cercano sobre el próximo borde más cercano. Las unidades se expresan en grados y el valor predeterminado es 30. Los valores deben ser mayores que 0 y menores que 180. Un valor de 30 significa que cuando Network Analyst intenta agregar una ubicación de red en un eje, se genera un rango de valores de rumbo aceptable 15 grados a cada lado del eje (izquierdo y derecho) y en ambas direcciones digitalizadas del eje. Más información sobre el rumbo y la tolerancia de rumbo NavLatency Este campo solo se utiliza en el proceso de resolución si Bearing y BearingTol también tienen valores. Sin embargo, la introducción de un valor NavLatency es opcional, incluso cuando hay valores en Bearing y BearingTol. NavLatency indica cuánto coste se espera que transcurra desde el momento en que se envía la información de GPS desde un vehículo en movimiento a un servidor y el momento en que el dispositivo de navegación del vehículo recibe la ruta procesada. Las unidades de NavLatency son las mismas que las unidades del atributo de impedancia. | Feature Set |
Line_Barriers (Opcional) | Utilice este parámetro para especificar una o varias líneas que prohíban viajar a cualquier ubicación en la que las líneas se intersequen con las calles. Por ejemplo, un desfile o una protesta que bloquee el tráfico por varios segmentos de calle se puede modelar con una barrera de línea. Una barrera de línea también puede cercar rápidamente varios caminos para que no se puedan atravesar, alejando así las posibles rutas de las partes no deseadas de la red de calles. La herramienta impone un límite en el número de calles que se pueden restringir usando el parámetro Barreras de línea. Aunque no existe un límite para el número de líneas que se pueden especificar como barreras de línea, el número combinado de calles que se intersecan con todas las líneas no puede ser superior a 500. Cuando se especifican las barreras de línea, puede definir propiedades de nombre y tipo de barrera para cada una de ellas mediante los siguientes atributos: Name El nombre de la barrera. | Feature Set |
Polygon_Barriers (Opcional) | Utilice este parámetro para especificar polígonos que restrinjan completamente el viaje o ajusten de una forma proporcional el tiempo o la distancia que se requieren para viajar por las calles que se intersecan con los polígonos. El servicio impone un límite en el número de calles que se pueden restringir usando el parámetro Barreras de polígono. Aunque no existe un límite para el número de polígonos que se pueden especificar como barreras de polígono, el número combinado de calles que se intersecan con todos los polígonos no puede ser superior a 2000. Cuando se especifican las barreras de polígono, se pueden definir propiedades para cada una de ellas, como su nombre o el tipo de barrera, mediante el uso de los siguientes atributos: Name El nombre de la barrera. BarrierType Especifica si la barrera restringe el viaje completamente o si escala el coste (por ejemplo, el tiempo o la distancia) para viajar a través de ella. El valor de campo se especifica como uno de los siguientes enteros (use el código numérico, no el nombre entre paréntesis):
ScaledTimeFactor Este es el factor por el cual se multiplica el tiempo de viaje de las calles que intersecan con la barrera. El valor del campo debe ser mayor que cero. Este campo solo se aplica a barreras con coste escalado. ScaledDistanceFactor Este es el factor por el cual se multiplica la distancia de las calles que intersecan con la barrera. El valor del campo debe ser mayor que cero. Este campo solo se aplica a barreras con coste escalado. ScaledCostFactor Este es el factor por el cual se multiplica el coste de las calles que se intersecan con la barrera. El valor del campo debe ser mayor que cero. Este campo solo se aplica a barreras con coste escalado. | Feature Set |
Use_Hierarchy (Opcional) | Especifica si se usará la jerarquía para buscar las rutas más cortas entre paradas.
La herramienta siempre vuelve automáticamente al uso de la jerarquía si la distancia en línea recta entre las instalaciones y los puntos de demanda es mayor de 50 millas (80,46 kilómetros), incluso si este parámetro está desactivado (definido como False en Python). Este parámetro se ignora a menos que el parámetro Modo de viaje esté establecido en Personalizado. Cuando se modela un modo a pie personalizado, le recomendamos que desactive la jerarquía, ya que está diseñada para vehículos motorizados. | Boolean |
Restrictions [Restrictions,...] (Opcional) | Las restricciones que la herramienta respetará a la hora de buscar las mejores rutas. Una restricción representa una preferencia o un requisito de conducción. En la mayoría de los casos, las restricciones ocasionan la prohibición de carreteras. Por ejemplo, al usar la restricción Evitar carreteras con peaje, se generará una ruta que solo incluirá carreteras con peaje cuando sea necesario viajar por ellas para llegar a un incidente o a una instalación. Restricción de altura permite circular evitando cualquier altura que sea inferior a la altura de su vehículo. Si está transportando materiales corrosivos en el vehículo, utilizar la restricción Prohibidos todos los materiales peligrosos impide transportar los materiales en las carreteras en las que está marcado como ilegal hacerlo. Nota:Los valores introducidos para este parámetro se ignoran a menos que el parámetro Modo de viaje esté establecido en Personalizado. Nota:Algunas restricciones requieren la especificación de un valor adicional para poder usarlas. Este valor se debe asociar con el nombre de la restricción y con un parámetro concreto creado para funcionar con la restricción. Puede identificar esas restricciones si sus nombres aparecen en la columna AttributeName del parámetro Valores de los parámetros de atributos. El campo ParameterValue se debe especificar en el Valores de los parámetros de atributos para que la restricción se use correctamente para encontrar carreteras transitables. Nota:Algunas restricciones solo se admiten en ciertos países. Su disponibilidad se indica por región en la lista siguiente. Para las restricciones con una disponibilidad limitada dentro de una región, puede determinar si están disponibles en un país concreto revisando la tabla de la sección Lista de países de Cobertura de análisis de red. Si un país tiene el valor Sí en la columna Atributos de logística, la restricción con disponibilidad de selección en la región se admite en ese país. Si se especifican nombres de restricción que no están disponibles en el país en el que se encuentran sus incidentes, el servicio pasa por alto las restricciones no válidas. El servicio también pasa por alto las restricciones cuando el valor del parámetro de atributos Uso de restricciones está comprendido entre 0 y 1 (consulte el parámetro Valor de parámetro de atributos). Prohíbe todas las restricciones cuando el valor del parámetro Uso de restricciones es mayor que 0. La herramienta admite las siguientes restricciones:
| String |
Attribute_Parameter_Values (Opcional) | Utilice este parámetro para especificar valores adicionales requeridos por un atributo o restricción, como por ejemplo para especificar si la restricción prohíbe, evita o prefiere circular en carreteras restringidas. Si la restricción se ha ideado para evitar carreteras o darles preferencia, puede especificar en qué medida se deben evitar o se les debe dar preferencia usando este parámetro. Por ejemplo, puede elegir que nunca se usen carreteras de peaje, que se eviten en la medida de lo posible o que se les dé preferencia. Nota:Los valores introducidos para este parámetro se ignoran a menos que el parámetro Modo de viaje esté establecido en Personalizado. Si especifica el parámetro Valores de los parámetros de atributos de una clase de entidad, los nombres de los campos de la clase de entidad deben coincidir con los campos que se describen a continuación:
El parámetro Valores de los parámetros de atributos depende del parámetro Restricciones. El campo ParameterValue solo se usa si el nombre de la restricción se ha especificado como valor del parámetro Restricciones. En Valores de los parámetros de atributos, cada restricción (mostrada como AttributeName) tiene un valor de campo ParameterName, Uso de restricción, que especifica si la restricción prohíbe, evita o prefiere los viajes por las carreteras asociadas con la restricción, además de en qué medida las carreteras se evitan o tienen preferencia. El Uso de restricción ParameterName se puede asignar a cualquiera de los siguientes valores de cadena de caracteres o a los valores numéricos equivalentes que se muestran entre paréntesis:
En la mayoría de casos, puede usar el valor predeterminado, PROHIBITED, como valor de Uso de restricción si la restricción depende de una característica del vehículo como su altura. Sin embargo, en algunos casos, el valor de Uso de restricción depende de las preferencias de generación de rutas del usuario. Por ejemplo, la restricción Evitar carreteras con peaje tiene el valor predeterminado AVOID_MEDIUM para el atributo Uso de restricción. Esto significa que, cuando se utilice la restricción, la herramienta intentará circular fuera de las carreteras con peaje siempre que sea posible. AVOID_MEDIUM también indica lo importante que es evitar las carreteras con peaje al buscar la mejor ruta; tiene una prioridad media. Si se selecciona AVOID_LOW, se da una importancia menor a evitar los peajes, mientras que si se selecciona AVOID_HIGH se le da más importancia y, por lo tanto, es más aceptable que el servicio genere rutas más largas para evitar los peajes. Elegir PROHIBITED no permite viajar en las carreteras con peaje y hará imposible que una ruta viaje por cualquier parte de una carretera de peaje. Tenga en cuenta que evitar o prohibir carreteras con peaje, y evitando así los pagos de peaje, es el objetivo para algunos. En cambio, otros prefieren conducir en las carreteras con peaje porque evitar el tráfico es más valioso para ellos que el dinero gastado en los peajes. En el último caso, elija PREFER_LOW, PREFER_MEDIUM o PREFER_HIGH como valor de Uso de la restricción. Cuanto más alta sea la preferencia, más se apartará la herramienta de su camino para viajar por las carreteras asociadas con la restricción. | Record Set |
Route_Shape (Opcional) | Especifica el tipo de forma para las entidades de ruta que son la salida de la herramienta.
Cuando el parámetro Forma de la ruta se ha definido como Forma verdadera o como Forma verdadera con medidas, la generalización de la forma de la ruta se puede controlar mejor usando el valor apropiado para el parámetro Tolerancia de simplificación de líneas de ruta. Sea cual sea el valor elegido para el parámetro Forma de ruta, la mejor ruta siempre se determina minimizando el tiempo de viaje o la distancia de viaje; nunca se determina usando la distancia en línea recta entre paradas. Esto significa que solo las formas de la ruta son diferentes, no las calles subyacentes en las que se realizan las búsquedas para encontrar la ruta. | String |
Route_Line_Simplification_Tolerance (Opcional) | Especifique cuánto desea simplificar la geometría de las líneas de salida de las rutas, las indicaciones y los ejes de las rutas. La herramienta ignora este parámetro si el parámetro Forma de la ruta no está establecido en Forma verdadera. La simplificación mantiene puntos críticos de una ruta, como los giros en intersecciones, para definir la forma esencial de la ruta y quita el resto de los puntos. La distancia de simplificación que especifique será el desplazamiento máximo permisible que puede apartarse la línea simplificada de la línea original. La simplificación de una línea reduce el número de vértices que forman parte de la geometría de la ruta. Esto mejora el tiempo de ejecución de la herramienta. | Linear Unit |
Populate_Route_Edges (Opcional) | Especifica si la herramienta generará ejes para cada ruta. Los ejes de ruta representan las entidades individuales de calle o similares que atraviesa la ruta. Por lo general, la capa de salida Ejes de ruta se utiliza para ver qué calles o caminos recorren en mayor o menor medida las rutas resultantes.
| Boolean |
Populate_Directions (Opcional) | Especifica si la herramienta generará indicaciones de conducción para cada ruta.
| Boolean |
Directions_Language (Opcional) | El idioma que se utilizará para generar las indicaciones de viaje. Este parámetro solo se usa cuando el parámetro Completar indicaciones está activado (True en Python). El valor del parámetro se puede especificar usando uno de los siguientes códigos de idiomas de dos o cinco caracteres:
Primero, la herramienta busca una coincidencia exacta del idioma especificado, incluida cualquier localización de idioma. Si no se encuentra ninguna coincidencia exacta, intenta hacer una coincidencia con la familia lingüística. Si no se encuentra ninguna coincidencia, la herramienta devuelve las indicaciones en inglés, el idioma predeterminado. Por ejemplo, si el idioma de las indicaciones se especifica como es-MX (español de México), la herramienta generará las indicaciones en español, puesto que admite el código de idioma es, pero no es-MX. Precaución:Si un idioma admite la localización, como el portugués brasileño (pt-BR) y el portugués europeo (pt-PT), especifique la familia lingüística y la localización. Si solo especifica la familia lingüística, la herramienta no hará coincidir dicha familia y, en su lugar, devolverá indicaciones en inglés, el idioma predeterminado. Por ejemplo, si el idioma de las indicaciones se especifica como pt, la herramienta generará las indicaciones en inglés porque no puede determinar si se deben generar en pt-BR o pt-PT. | String |
Directions_Distance_Units (Opcional) | Especifica las unidades en las que se visualizará la distancia de viaje en las indicaciones de conducción. Este parámetro solo se usa cuando el parámetro Completar indicaciones está activado (True en Python).
| String |
Directions_Style_Name (Opcional) | Especifica el nombre del estilo de formato para las indicaciones. Este parámetro solo se usa cuando el parámetro Completar indicaciones está activado (True en Python).
| String |
Travel_Mode (Opcional) | El modo de transporte que se debe modelar en el análisis. Los modos de viaje se administran en ArcGIS Online y el administrador de su organización puede configurarlos para reflejar los flujos de trabajo de la organización. Debe especificar el nombre de un modo de viaje admitido con su organización. Para obtener una lista de los nombres de modos de viaje admitidos, use la misma conexión de servidor SIG que utilizó para acceder a esta herramienta y ejecute la herramienta GetTravelModes de la caja de herramientas Utilidades. La herramienta GetTravelModes agrega la tabla Supported Travel Modes a la aplicación. Cualquier valor del campo Travel Mode Name de la tabla Supported Travel Modes se puede especificar como entrada. También puede especificar el valor del campo Travel Mode Settings como entrada. Con ello se reduce el tiempo de ejecución de la herramienta, ya que esta no tiene que encontrar la configuración a partir del nombre del modo de viaje. El valor predeterminado, Personalizado, le permite configurar su propio modo de viaje usando los parámetros de modo de viaje personalizado (Giros en U en cruces, Utilizar jerarquía, Restricciones, Valores de los parámetros de atributos e Impedancia). Los valores predeterminados de los parámetros de modo de viaje personalizado se basan en viajes en coche. Puede elegir el modo Personalizado y establecer los parámetros de modo de viaje personalizado enumerados arriba para modelar un peatón con una velocidad de caminata rápida o un camión con una altura y un peso determinados y con una carga de ciertos materiales peligrosos. Puede probar distintas configuraciones hasta conseguir los resultados de análisis que desee. Una vez que haya identificado la configuración de análisis, trabaje con el administrador de su organización y guardar esta configuración como parte de un modo de viaje nuevo o existente para que todos los usuarios de su organización puedan ejecutar el análisis con la misma configuración. Precaución:Al elegir el modo Personalizado, los valores que establezca para los parámetros del modo de viaje personalizado se incluirán en el análisis. Si se especifica otro modo de viaje definido por su organización, se pasará por alto cualquier valor que haya establecido para los parámetros del modo de viaje personalizado; la herramienta los sobrescribirá con valores del modo de viaje especificado. | String |
Impedance (Opcional) | Especifica la impedancia, que es un valor que representa el esfuerzo o el coste de viajar a lo largo de segmentos de carretera o en otras partes de la red de transporte. El tiempo de viaje es una impedancia: un coche puede tardar 1 minuto en viajar un kilómetro a lo largo de una carretera vacía. Los tiempos de viaje pueden variar según el modo de viaje: un peatón puede tardar más de 20 minutos en caminar el mismo kilómetro, por lo que es importante elegir la impedancia correcta para el modo de viaje que se está modelando. La distancia de viaje también puede ser una impedancia; la longitud de una carretera en kilómetros se puede considerar impedancia. En este sentido, la distancia de viaje es la misma para todos los modos: un kilómetro para un peatón es, igualmente, un kilómetro para un coche. (Lo que puede cambiar son los caminos por los que los diferentes modos tienen permitido viajar, lo cual afecta a la distancia entre puntos, que se modela mediante la configuración del modo de viaje.) Precaución:El valor introducido para este parámetro se ignora a menos que el parámetro Modo de viaje esté establecido en Personalizado, que es el valor predeterminado. Elija de entre los valores de impedancia siguientes:
Si elige una impedancia basada en el tiempo, como TravelTime, TruckTravelTime, Minutes, TruckMinutes o WalkTime, el parámetro Unidades de medición se debe configurar con un valor basado en el tiempo. Si prefiere una impedancia basada en la distancia, como Miles o Kilometers, las Unidades de medición deben estar basadas en la distancia. Heredado:Los valores de impedancia de Tiempo de conducción, Tiempo en camión, Tiempo de recorrido a pie y Distancia de viaje ya no se admiten y se eliminarán en versiones futuras. Si utiliza uno de estos valores, la herramienta usa el valor del parámetro Impedancia de tiempo para valores basados en el tiempo y del parámetro Impedancia de distancia para valores basados en la distancia. | String |
Time_Zone_for_Time_Windows (Opcional) | Especifica la zona horaria de los valores de la ventana de tiempo en las paradas. Las ventanas de tiempo se especifican como parte de los campos TimeWindowStart y TimeWindowEnd en las paradas. Este parámetro solo es aplicable cuando el parámetro Utilizar ventanas de tiempo está activado (o definido como True).
| String |
Save_Output_Network_Analysis_Layer (Opcional) | Especifica la configuración del análisis se guardará como un archivo de capa de análisis de red. No puede trabajar directamente con este archivo, aunque lo abra en una aplicación de ArcGIS Desktop, por ejemplo, ArcMap. Se debe enviar al Soporte técnico de Esri para diagnosticar la calidad de los resultados devueltos por la herramienta.
| Boolean |
Overrides (Opcional) | Ajustes adicionales que pueden influir en el comportamiento del solucionador al buscar soluciones para problemas de análisis de red. Se debe especificar el valor para este parámetro en la notación de objetos JavaScript (JSON). Por ejemplo, un valor válido tiene el siguiente formato: {"overrideSetting1" : "value1", "overrideSetting2" : "value2"}. El nombre del parámetro de invalidación siempre está incluido entre comillas dobles. Los valores pueden ser un número, operador booleano o cadena de caracteres. El valor predeterminado para este parámetro es ningún valor, lo que indica que no se debe invalidar ningún parámetro del solucionador. Las invalidaciones son parámetros avanzados que se deben utilizar solamente después de un análisis cuidadoso de los resultados obtenidos antes y después de aplicar los parámetros. Para obtener una lista de los parámetros de invalidación admitidos para cada solucionador y sus valores admisibles, póngase en contacto con el Soporte técnico de Esri. | String |
Save_Route_Data (Opcional) | Especifica si la salida incluirá un archivo .zip que contiene una geodatabase de archivos con las entradas y las salidas del análisis en un formato que se puede usar para compartir las capas de ruta con ArcGIS Online o Portal for ArcGIS.
| Boolean |
Time_Impedance (Opcional) | La impedancia basada en el tiempo es un valor que representa el tiempo de viaje a lo largo de segmentos de carretera o en otras partes de la red de transporte. Nota:Si la impedancia del modo de viaje, según se especifica con el parámetro Impedancia, está basada en el tiempo, los valores de los parámetros Impedancia de tiempo e Impedancia deben ser los mismos. De lo contrario, el servicio devolverá un error.
| String |
Distance_Impedance (Opcional) | La impedancia basada en la distancia es un valor que representa la distancia de viaje a lo largo de segmentos de carretera o en otras partes de la red de transporte. Nota:Si la impedancia del modo de viaje, según se especifica con el parámetro Impedancia, está basada en la distancia, los valores de los parámetros Impedancia de distancia e Impedancia deben ser los mismos. De lo contrario, el servicio devolverá un error.
| String |
Output_Format (Opcional) | Especifica el formato en el que se crearán las entidades de salida.
Cuando se especifica un formato de salida basado en archivos, como Archivo JSON o Archivo GeoJSON, no se agregará ninguna salida a la visualización, puesto que la aplicación, por ejemplo, ArcMap o ArcGIS Pro, no puede dibujar el contenido del archivo de resultados. En cambio, el archivo de resultados se descarga en un directorio temporal en su equipo. En ArcGIS Pro, la ubicación del archivo descargado se puede determinar visualizando el valor del parámetro Archivo de resultados de salida en la entrada correspondiente a la ejecución de la herramienta en el historial de geoprocesamiento del proyecto. En ArcMap, la ubicación del archivo se puede determinar accediendo a la opción Copiar ubicación del menú de acceso directo del parámetro Archivo de resultados de salida de la entrada correspondiente a la ejecución de la herramienta en la ventana Resultados de geoprocesamiento. | String |
Salida derivada
Nombre | Explicación | Tipo de datos |
Solve_Succeeded | Determina si el servicio fue capaz de buscar rutas correctamente. | Booleano |
Output_Routes | Ofrece acceso a las rutas resultantes. | Conjunto de entidades |
Output_Route_Edges | Ofrece acceso a los ejes de red individuales por los que viajan las rutas. | Conjunto de entidades |
Output_Directions | Ofrece acceso a las indicaciones paso a paso para cada ruta resultante. | Conjunto de entidades |
Output_Stops | Ofrece acceso a los atributos de las paradas que visitan las rutas, así como las paradas que no puede alcanzar ninguna de las rutas. | Conjunto de entidades |
Output_Network_Analysis_Layer | La capa de análisis de red con propiedades configuradas en los parámetros de la herramienta que se puede utilizar para análisis posteriores o para depurar el mapa. | Archivo |
Output_Route_Data | Archivo .zip que contiene toda la información para una ruta en concreto. | Archivo |
Output_Result_File | Un archivo .zip que contiene los resultados del análisis, con uno o varios archivos para cada salida. El formato de los archivos individuales viene especificado por el parámetro Formato de salida. | Archivo |
Muestra de código
El siguiente script de Python muestra cómo usar la herramienta Find Routes en un script.
"""This example shows how to find a best route that optimizes the sequence in which the stops are visitied."""
import sys
import time
import datetime
import arcpy
# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"
route_service = "https://logistics.arcgis.com/arcgis/services;World/Route;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(route_service)
# Set the variables to call the tool
stops = "C:/data/Inputs.gdb/Stores"
output_routes = "C:/data/Results.gdb/Routes"
output_directions = "C:/data/Results.gdb/Directions"
# Call the tool specifying current UTC time as start time. This will ensure that the route is
# calculated based on the current traffic conditions. We also want to find the best sequence in
# which to visit the stops but do not want to change the sequence of the first stop since the
# first stop is a pre-defined start location such as an office.
result = arcpy.FindRoutes_Route(stops, "Minutes",
Reorder_Stops_to_Find_Optimal_Routes=True,
Preserve_Terminal_Stops="Preserve First",
Time_of_Day=datetime.datetime.utcnow(),
Time_Zone_for_Time_of_Day="UTC")
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))
# Check the status of the result object every 1 second until it has a value of 4 (succeeded)
# or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Save the output route and driving directions to a geodatabase
result.getOutput(1).save(output_routes)
result.getOutput(3).save(output_directions)
El siguiente ejemplo muestra cómo realizar un análisis de ruta con un modo de viaje personalizado.
"""This example shows how to perform a route analysis using a custom travel mode
that models trucks carrying wide load."""
import sys
import time
import datetime
import json
import arcpy
username = "<your user name>"
password = "<your password>"
route_service = "https://logistics.arcgis.com/arcgis/services;World/Route;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(route_service)
# Set the variables to call the tool
stops = "C:/data/Inputs.gdb/Stops"
output_routes = "C:/data/Results.gdb/Routes"
output_directions = "C:/data/Results.gdb/Directions"
# Change Vehicle Width attribute parameter value to 4.5 (about 15 feet) for the Trucking Time travel mode
# used for the analysis
portal_url = "https://www.arcgis.com"
arcpy.SignInToPortal(portal_url, username, password)
travel_mode_list = arcpy.na.GetTravelModes(portal_url)
tt = travel_mode_list["Trucking Time"]
tt_json = str(tt)
tt_dict = json.loads(tt_json)
tt_dict["restrictionAttributeNames"].append("Width Restriction")
for attr_param in tt_dict["attributeParameterValues"]:
if attr_param['attributeName'] == 'Width Restriction' and attr_param['parameterName'] == 'Vehicle Width (meters)':
attr_param['value'] = 4.5
travel_mode = json.dumps(tt_dict)
# Call the tool
result = arcpy.FindRoutes_Route(stops, "Minutes", Travel_Mode=travel_mode,
Time_of_Day=datetime.datetime(2019, 6, 25, 8, 0, 0))
# Check the status of the result object every 1 second until it has a value of 4 (succeeded)
# or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Save the output route and driving directions to a geodatabase
result.getOutput(1).save(output_routes)
result.getOutput(3).save(output_directions)