SolverInsertCursor

Краткая информация

Специальный для типа входных данных курсор записи для класса solver, который может использоваться для добавления строк непосредственно во входные данные.

Обсуждение

Экземпляры этого класса напрямую не создаются. Вместо этого они создаются через вызов метода insertCursor на одном из классов solver.

Обзор метода

МетодОписание
insertRow (row)

Вставьте строку во входные данные механизма расчета сетевого анализа с помощью курсора.

Методы

insertRow (row)
ПараметрОписаниеТип данных
row

Вставляемая строка представляет собой список или кортеж. Длина списка, порядок расположения в нем элементов и типы данных элементов списка должны соответствовать списку названий полей, который содержится в параметре field_names метода insertCursor, используемого для работы с курсором.

List

Пример кода

Пример SolverInsertCursor

Использовать метод insertCursor и объект SolverInsertCursor для настройки входных параметров анализа.

# An example showing how to use the insertCursor() method to set inputs for an analysis
import arcpy
arcpy.CheckOutExtension("network")

nds = "C:/data/NorthAmerica.gdb/Routing/Routing_ND"
nd_layer_name = "Routing_ND"
output_routes = "C:/data/io.gdb/Routes"

# Create a network dataset layer and get the desired travel mode for analysis
arcpy.nax.MakeNetworkDatasetLayer(nds, nd_layer_name)
nd_travel_modes = arcpy.nax.GetTravelModes(nd_layer_name)
travel_mode = nd_travel_modes["Driving Time"]

# Instantiate a Route solver object
route = arcpy.nax.Route(nd_layer_name)
# Set properties
route.timeUnits = arcpy.nax.TimeUnits.Minutes
route.travelMode = travel_mode
route.routeShapeType = arcpy.nax.RouteShapeType.TrueShapeWithMeasures
# Set input stops using insertCursor()
fields = ["Name", "RouteName", "SHAPE@XY"]
with route.insertCursor(arcpy.nax.RouteInputDataType.Stops, fields) as cur:
    cur.insertRow(["Stop 1", "Route 1", (-117.10191118199998, 32.634351493000054)])
    cur.insertRow(["Stop 2", "Route 1", (-116.97970607599996, 32.56210221400005)])
    cur.insertRow(["Stop 1", "Route 2", (-116.97141447099995, 32.654230331000065)])
    cur.insertRow(["Stop 2", "Route 2", (-117.00762504, 32.70097640100005)])
# Solve the analysis
result = route.solve()
SolverInsertCursor, пример 2

Используйте метод insertCursor и объект SolverInsertCursor, чтобы задать входные данные для анализа. Используйте URL-адрес для источника сетевых данных и объекты PointGeometry в качестве входных данных с токеном SHAPE@.

# An example showing how to use the insertCursor() method to set inputs for an analysis
# Use ArcGIS Online as the network data source and PointGeometry objects as inputs
import arcpy

sr_wgs84 = arcpy.SpatialReference(4326)

# Instantiate a Route solver object using ArcGIS Online as the network data source
route = arcpy.nax.Route("https://www.arcgis.com/")

# Input data with latitude and longitude values specified in WGS84 coordinates
input_data = [
    ["Stop 1", "Route 1", -117.10191118199998, 32.634351493000054],
    ["Stop 2", "Route 1", -116.97970607599996, 32.56210221400005],
    ["Stop 1", "Route 2", -116.97141447099995, 32.654230331000065],
    ["Stop 2", "Route 2", -117.00762504, 32.70097640100005]
]

# Set input stops using insertCursor()
fields = ["Name", "RouteName", "SHAPE@"]
with route.insertCursor(arcpy.nax.RouteInputDataType.Stops, fields) as cur:
    for input_pt in input_data:
        # Construct a PointGeometry object for the point using the correct spatial reference
        pt_geom = arcpy.PointGeometry(arcpy.Point(input_pt[2], input_pt[3]), sr_wgs84)
        # Insert the data using its shape
        cur.insertRow([input_pt[0], input_pt[1], pt_geom])

# Solve the analysis
result = route.solve()
print(result.solveSucceeded)