Resumen
Encuentra una o varias instalaciones próximas a un incidente en función del tiempo de viaje o la distancia de viaje y genera las mejores rutas, indicaciones de conducción entre los incidentes y las instalaciones elegidas y una copia de las instalaciones elegidas. Puede usar la herramienta, por ejemplo, para encontrar el hospital más cercano a un accidente, la patrulla de policía más próxima a la escena de un crimen o el almacén más cercano a la dirección de un cliente.
Cuando busque las instalaciones más cercanas, puede especificar cuántas buscar y si la dirección de viaje es acercándose o alejándose de ellas. También puede especificar la hora del día para tener en cuenta los tiempos de viaje basados en las condiciones del tráfico en directo o predictivo en esa fecha y esa hora. Por ejemplo, puede usar la herramienta para buscar hospitales en un radio de tiempo de recorrido de 15 minutos del lugar de un accidente a una hora concreta del día. Los hospitales que estén a más de 15 minutos con esas condiciones del tráfico no se incluirán en los resultados.
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.
Más información sobre el resultado de Buscar instalaciones más cercanas
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 instalaciones más cercanas en función del tiempo de viaje si el valor del parámetro Unidades de medida está basado en el tiempo. Del mismo modo, la herramienta utiliza la distancia de viaje si las unidades de medida están basadas en la distancia.
Debe especificar al menos una instalación y un incidente para que la herramienta se ejecute correctamente. Puede cargar hasta 5.000 instalaciones y 5.000 incidentes, y puede buscar hasta 100 de las instalaciones más cercanas desde cada incidente. Por tanto, cada solución de la herramienta permite buscar hasta 100.000 instalaciones más cercanas.
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, pero la solución podría no ser óptima.
Con independencia de que el parámetro Utilizar jerarquía se haya activado (True) o no, la jerarquía siempre se usa cuando la distancia en línea recta entre cualquier par de entidades que representen incidentes o instalaciones sea mayor que 50 millas (80,46 kilómetros).
La distancia en línea recta entre cualquier par de entidades que representen incidentes o instalaciones 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
FindClosestFacilities(Incidents, Facilities, Measurement_Units, {Analysis_Region}, {Number_of_Facilities_to_Find}, {Cutoff}, {Travel_Direction}, {Use_Hierarchy}, {Time_of_Day}, {Time_of_Day_Usage}, {UTurn_at_Junctions}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Restrictions}, {Attribute_Parameter_Values}, {Route_Shape}, {Route_Line_Simplification_Tolerance}, {Populate_Directions}, {Directions_Language}, {Directions_Distance_Units}, {Directions_Style_Name}, {Time_Zone_for_Time_of_Day}, {Travel_Mode}, {Impedance}, {Save_Output_Network_Analysis_Layer}, {Overrides}, {Save_Route_Data}, {Time_Impedance}, {Distance_Impedance}, {Output_Format})
Parámetro | Explicación | Tipo de datos |
Incidents | Las ubicaciones que se utilizarán como puntos de inicio y fin en un análisis de ubicación de instalaciones más cercanas. Puede especificar uno o varios incidentes (hasta 5.000). Estas son las ubicaciones desde las cuales la herramienta busca las localizaciones próximas. Cuando se especifican los incidentes, se pueden definir propiedades para cada uno, como su nombre o el tiempo de servicio, mediante los siguientes atributos: Name El nombre del incidente. 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 Location en las rutas e indicaciones de salida. ID El identificador único del incidente. El identificador se incluye en las rutas de salida (como el campo IncidentID) y puede ayudar a unir información adicional de las rutas de salida, como el tiempo de viaje total o la distancia total, con los atributos de sus incidentes o viceversa. Si no se especifica el ID, el servicio genera automáticamente un identificador único para cada incidente. AdditionalTime La cantidad de tiempo pasado en el incidente, 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. Si busca las estaciones de bomberos más cercanas a incidentes de incendios para estimar tiempos de respuesta, por ejemplo, el atributo AdditionalTime puede almacenar la cantidad de tiempo que tardan los bomberos en equiparse en la ubicación del incidente antes de que comiencen a extinguir el incendio. AdditionalDistance La distancia adicional de viaje en el incidente, 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 ubicación de un incidente como, por ejemplo, una casa, no se encuentra exactamente en la calle, sino ligeramente apartada de ella. Este valor de atributo se puede usar para modelar la distancia entre la ubicación del incidente 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 el incidente, que se agrega al coste total de la ruta. El valor predeterminado es 0. Este valor de atributo se debería utilizar 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. TargetFacilityCount El número de instalaciones que es necesario encontrar para el incidente dado. Este campo permite especificar un número distinto de instalaciones para buscar cada incidente. Por ejemplo, con este campo puede encontrar las tres instalaciones más cercanas desde un incidente y las dos instalaciones más cercanas desde otro incidente. Cutoff El valor de impedancia en el que detener la búsqueda de instalaciones para un incidente determinado. Este atributo permite especificar un valor límite distinto para cada incidente. Por ejemplo, con este atributo puede buscar instalaciones que se encuentren a cinco minutos de tiempo de viaje desde un incidente y buscar instalaciones que se encuentren a ocho minutos de tiempo de viaje desde otro incidente. CurbApproach Especifica la dirección en la que un vehículo puede llegar al incidente y partir de él. 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 un incidente 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 al incidente 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, si desea llegar a un incidente y que no haya un carril entre el vehículo y el incidente, 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 tiempo 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 tiempo de NavLatency son las mismas que las unidades especificadas por la propiedad timeUnits del objeto de análisis. | Feature Set |
Facilities | Las ubicaciones que se utilizarán como puntos de inicio y fin en un análisis de ubicación de instalaciones más cercanas. Puede especificar una o varias instalaciones (hasta 5.000). Estas son las localizaciones entre las cuales se busca para encontrar la más próxima. Cuando se especifican las instalaciones, se pueden definir propiedades para cada una, como su nombre o el tiempo de servicio, mediante los siguientes atributos: Name El nombre de la instalación. 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 Location en las rutas e indicaciones de salida. ID Identificador único de la instalación. El identificador se incluye en las rutas de salida y las instalaciones de salida más cercanas como campos FacilityID. El campo FacilityID se puede usar para unir información adicional de las rutas de salida, como el tiempo de viaje total o la distancia total, con los atributos de sus instalaciones. Si no se especifica el ID, el servicio genera automáticamente un identificador único para cada instalación. AdditionalTime La cantidad de tiempo pasado en la instalación, 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. Si busca las estaciones de bomberos más cercanas a incidentes de incendios, por ejemplo, AdditionalTime puede almacenar el tiempo que tarda un equipo en ponerse el equipo de protección adecuado y salir de la estación de bomberos. AdditionalDistance La distancia adicional de viaje en la instalación, 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. En general, la ubicación de una instalación, como una estación de bomberos, no se encuentra exactamente en la calle, sino ligeramente apartada de ella. AdditionalDistance puede modelar la distancia entre la ubicación de la instalación y su ubicación en la calle, en caso de que sea importante incluir dicha distancia en la distancia de viaje total. AdditionalCost El coste adicional que se gasta en la instalación, que se agrega al coste total de la ruta. El valor predeterminado es 0. Este valor de atributo se debería utilizar 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. Cutoff El valor de impedancia en el que se debe detener la búsqueda de incidentes de una instalación dada. Este atributo permite especificar un valor límite distinto para cada instalación. Por ejemplo, con este atributo puede buscar incidentes que se encuentren a cinco minutos de tiempo de viaje desde una instalación y buscar incidentes que se encuentren a ocho minutos de tiempo de viaje desde otra instalación. CurbApproach Especifica la dirección por la que un vehículo puede llegar a una instalación 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 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, si desea 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 tiempo 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 tiempo de NavLatency son las mismas que las unidades especificadas por la propiedad timeUnits del objeto de análisis. | Feature Set |
Measurement_Units | Especifica las unidades que se usarán para medir y reportar el tiempo o la distancia total de viaje de las rutas de salida. La herramienta encuentra la instalación más cercana midiendo el tiempo o la distancia de viaje a lo largo de las calles. Las unidades especificadas para este parámetro determinan si la herramienta medirá la distancia de conducción o el tiempo de recorrido para encontrar lo que esté más cerca. Elija una unidad de tiempo para medir el tiempo de recorrido. Para medir la distancia de recorrido, elija una unidad de distancia. La elección también determina en qué unidades indicará la herramienta el tiempo de recorrido o la distancia total en los resultados. Las opciones son las siguientes:
| String |
Analysis_Region (Opcional) | La región en la que desea 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 |
Number_of_Facilities_to_Find (Opcional) | El número de instalaciones más próximas que se buscarán por incidente. Esto es útil en situaciones como un incendio en el que se precisen varios camiones de bomberos de estaciones de bomberos distintas. Por ejemplo, puede especificar que se busquen los tres parques de bomberos más próximos a un incendio. El valor definido en este parámetro se puede invalidar por incidente con el campo TargetFacilityCount de los incidentes de entrada. La herramienta puede buscar hasta 100 instalaciones desde cada incidente. | Long |
Cutoff (Opcional) | El valor del tiempo de viaje o de la distancia de viaje en el que se debe detener la búsqueda de instalaciones para un incidente determinado. Por ejemplo, al buscar los hospitales más cercanos al lugar de un accidente, un valor límite de 15 minutos significa que la herramienta buscará el hospital más cercano a menos de 15 minutos del incidente. Si el hospital más próximo se encuentra a 17 minutos, no se devolverá ninguna ruta como resultado. Un valor de tolerancia es especialmente útil al buscar varias instalaciones. Cuando el parámetro Dirección del viaje se define como Instalación hacia incidente, es posible invalidar el valor límite por instalación con el campo Cutoff en las instalaciones de entrada. Cuando el parámetro Dirección del viaje se define como Incidente hacia instalación, es posible invalidar el valor límite por incidente con el campo Cutoff de los incidentes de entrada. El parámetro Unidades de medida especifica las unidades para este parámetro. | Double |
Travel_Direction (Opcional) | Especifica la forma en la que se medirá la dirección de viaje para la búsqueda de la instalación más cercana.
Cada opción puede encontrar instalaciones distintas, ya que el tiempo de viaje a lo largo de ciertas calles puede variar según la dirección de viaje y restricciones de sentidos únicos. Por ejemplo, una instalación puede estar a una distancia de viaje de 10 minutos desde el incidente al viajar desde el incidente hasta la instalación, pero viajar desde la instalación hasta el incidente, puede llevar 15 minutos debido a que hay un tiempo de viaje distinto en esa dirección. Si también establece un valor para el parámetro Hora del día, es posible que el tráfico haga que las opciones Instalación hacia incidente e Incidente hacia instalación devuelvan distintos resultados. Normalmente, los cuerpos de bomberos usan el valor Instalación hacia incidente para el parámetro, ya que lo que les interesa es el tiempo que se tarda en llegar desde la estación de bomberos (instalación) hasta la ubicación de la emergencia (incidente). A la gerencia de una tienda minorista (instalación) le interesa más el tiempo que tardan los compradores (incidentes) en llegar a la tienda (instalación); por lo tanto, la gerencia de las tiendas generalmente selecciona Incidente hacia instalación. | String |
Use_Hierarchy (Opcional) | Especifique si la jerarquía se usará para buscar la mejor ruta entre la instalación y el incidente.
La herramienta siempre vuelve automáticamente a usar la jerarquía si la distancia en línea recta entre las instalaciones y los incidentes es de más de 50 millas (80 km), incluso si este parámetro está Desactivado (definido como False en Python). | Boolean |
Time_of_Day (Opcional) | La hora y la fecha en la cual comenzarán y finalizarán las rutas. El valor se utiliza como hora de inicio o fin de la ruta en función del valor del parámetro Uso de hora del día. Si se especifican la fecha y la hora actuales como valor para este parámetro, la herramienta utilizará las condiciones de tráfico en directo para determinar la instalación más cercana, y el tiempo total de viaje se basará en las condiciones del tráfico. Al especificar una hora del día se obtiene una estimación más precisa del tiempo de viaje entre el incidente y las instalaciones ya que 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 que se encuentra la instalación o incidente. | Date |
Time_of_Day_Usage (Opcional) | Especifica si el valor del parámetro Hora del día representa la hora de llegada o salida de las rutas.
| String |
UTurn_at_Junctions (Opcional) | 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. Ello depende de que el cruce sea una intersección o un callejón sin salida. Para acomodar, el parámetro de la política de cambios de sentido se especifica implícitamente por la cantidad de bordes que se conectan en el cruce, 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.
| 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 es aplicable para barreras de coste agregado y solo si el modo de viaje utilizado en el análisis usa un atributo de impedancia basado en el tiempo. 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 es aplicable para barreras de coste agregado y solo si el modo de viaje utilizado en el análisis usa un atributo de impedancia basado en la distancia. 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 es aplicable para barreras de coste agregado y solo si el modo de viaje utilizado en el análisis usa un atributo de impedancia no basado en el tiempo ni en la distancia. 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 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 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, si desea 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 tiempo 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 tiempo de NavLatency son las mismas que las unidades especificadas por la propiedad timeUnits del objeto de análisis. | 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 es aplicable para barreras de coste escalado y solo si el modo de viaje utilizado en el análisis usa un atributo de impedancia basado en el tiempo. 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 es aplicable para barreras de coste escalado y solo si el modo de viaje utilizado en el análisis usa un atributo de impedancia basado en la distancia. 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 es aplicable para barreras de coste escalado y solo si el modo de viaje utilizado en el análisis usa un atributo de impedancia no basado en el tiempo ni en la distancia. | Feature Set |
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:
Heredado:El atributo de restricción Conducir vehículo de reparto ya no está disponible. El servicio ignorará esta restricción, puesto que no es válida. Para obtener unos resultados similares, use el atributo de restricción Conducción de un camión junto con el atributo de restricción Evitar carreteras con restricciones para camiones. | 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, para 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) | La distancia que se utilizará para simplificar la geometría de las líneas de salida de las rutas e indicaciones. 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_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 |
Time_Zone_for_Time_of_Day (Opcional) | Especifica la zona horaria del parámetro Hora del día.
Independientemente de la configuración de Zona horaria para hora del día, si sus instalaciones e incidentes se encuentran en varias zonas horarias, la herramienta aplica las siguientes reglas:
| 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 una 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 |
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 | Indica si la solución del análisis de ubicación de instalaciones más cercanas se realizó correctamente. | Booleano |
Output_Routes | Ofrece acceso a la ruta o rutas resultantes entre las instalaciones y los incidentes. | Conjunto de entidades |
Output_Directions | Ofrece acceso a las indicaciones paso a paso para cada ruta resultante. | Conjunto de entidades |
Output_Closest_Facilities | Ofrece acceso a las instalaciones de salida desde un análisis de ubicación de instalaciones más cercanas. | 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_Incidents | Ofrece acceso a las ubicaciones que se utilizan como puntos de inicio y fin en un análisis de ubicación de instalaciones más cercanas. | Conjunto de entidades |
Output_Facilities | Las instalaciones utilizadas en el análisis. | Conjunto de entidades |
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 Closest Facilities en un script.
"""This example shows how to find three closest stores from each customer location."""
import sys
import time
import arcpy
# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"
cf_service = "https://logistics.arcgis.com/arcgis/services;World/ClosestFacility;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/2.6/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(cf_service)
# Set the variables to call the tool
facilities = "C:/data/Inputs.gdb/Stores"
incidents = "C:/data/Inputs.gdb/Customers"
output_routes = "C:/data/Results.gdb/Routes"
output_closest_facilities = "C:/data/Results.gdb/ClosestStores"
# Call the tool
result = arcpy.FindClosestFacilities_ClosestFacility(incidents, facilities, "Minutes", "", 3)
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 routes and the closest facilities to a geodatabase
result.getOutput(0).save(output_routes)
result.getOutput(3).save(output_closest_facilities)
El siguiente ejemplo muestra cómo realizar un análisis de ubicación de instalaciones más cercanas con un modo de viaje personalizado.
"""This example shows how to perform a closest facility analysis using a custom travel mode
that models trucks carrying wide load."""
import sys
import time
import json
import arcpy
username = "<your user name>"
password = "<your password>"
cf_service = "https://logistics.arcgis.com/arcgis/services;World/ClosestFacility;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox
arcpy.ImportToolbox(cf_service)
# Set the variables to call the tool
facilities = "C:/data/Inputs.gdb/Stores"
incidents = "C:/data/Inputs.gdb/Customers"
output_routes = "C:/data/Results.gdb/Routes"
output_closest_facilities = "C:/data/Results.gdb/ClosestStores"
# 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.FindClosestFacilities_ClosestFacility(incidents, facilities, "Minutes", "", 2,
Travel_Mode=travel_mode)
# 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 routes and the closest facilities to a geodatabase
result.getOutput(0).save(output_routes)
result.getOutput(3).save(output_closest_facilities)