ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Добавить местоположения

  • Сводка
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензиях

Сводка

Добавляет входные объекты или записи в слой сетевого анализа. Объекты добавляются в конкретный подслой, например, остановки и барьеры.

Использование

  • Этот инструмент можно применять множество раз для добавления нескольких объектов сетевого анализа в один и тот же подслой. Например, если остановки для слоя маршрута поступают из двух классов объектов, инструмент необходимо вызвать дважды, используя параметр APPEND.

  • Чтобы удалить существующие объекты сетевого анализа перед загрузкой новых, воспользуйтесь параметром CLEAR.

  • Данный инструмент работает значительно быстрее, если классы пространственных объектов, используемые в качестве сетевых источников в наборе сетевых данных, имеют корректный и актуальный пространственный индекс.

Синтаксис

arcpy.na.AddLocations(in_network_analysis_layer, sub_layer, in_table, field_mappings, search_tolerance, {sort_field}, {search_criteria}, {match_type}, {append}, {snap_to_position_along_network}, {snap_offset}, {exclude_restricted_elements}, {search_query})
ПараметрОбъяснениеТип данных
in_network_analysis_layer

Слой сетевого анализа, к которому будет добавлен объект сетевого анализа.

Network Analyst Layer
sub_layer

Подслой слоя сетевого анализа, к которому будет добавлен объект сетевого анализа.

String
in_table

Класс объектов или таблица, которая используется как источник новых объектов сетевого анализа.

Table View
field_mappings

Задает значения для свойств объектов сетевого анализа. Свойства могут быть заданы постоянными или сопоставлены с полем из входного класса объектов или таблицы.

Для указания значения параметра используется объект NAClassFieldMappings, полученный из класса NAClassFieldMappings. Объект NAClassFieldMappings представляет собой коллекцию объектов NAClassFieldMap, позволяющую задавать значения по умолчанию или сопоставлять имена полей из вводных объектов со свойствами объекта сетевого анализа. Если загружаемые данные содержат сетевые положения или диапазоны положений, основанные на наборе сетевых данных, использованных для анализа, сопоставьте поля сетевых положений из входных объектов со свойствами сетевых положений. Указание поля сетевого положения в сопоставлении полей выполняется так же, как с помощью параметра Использовать поля сетевых положений вместо геометрии из диалогового окна инструмента.

Внимание:

Во избежание ошибок при использовании инструмента при указании сопоставления поля для какого-либо свойства сетевого положения необходимо указывать сопоставления полей для остальных свойств сетевого положения.

Network Analyst Class FieldMap
search_tolerance

Допуск поиска для расположения входных объектов в сети. Объекты, находящиеся вне диапазона поиска, остаются неразмещенными. Параметр включает значение и единицы измерения допуска.

Этот параметр не используется при добавлении положений для подслоев Линейные барьеры или Полигональные барьеры. В таких случаях используйте в качестве значения параметра "#".

Linear Unit
sort_field
(Дополнительный)

Поле, по которому сортируются объекты сетевого анализа при добавлении их в слой сетевого анализа. По умолчанию используется поле ObjectID в классе входного объекта или таблицы.

Field
search_criteria
[[Source, SnapType],...]
(Дополнительный)

Определяет источники в наборе сетевых данных, поиск в которых будет осуществляться при поиске положений, а также части геометрии (известные как типы замыкания), которые будут использоваться.

Значение параметра указывается в виде списка с вложенными списками. Вложенный список состоит из двух значений, указывающих на имя и тип замыкания для каждого источника сети. Тип замыкания указывается с использованием ключевых слов SHAPE, MIDDLE, END или NONE.

  • SHAPE – точка будет расположена на ближайшей точке элемента этого сетевого источника.
  • MIDDLE – точка будет расположена на ближайшей средней точке элемента этого сетевого источника.
  • END – точка будет расположена на ближайшей конечной точке элемента этого сетевого источника.
  • NONE – точка не будет расположена на элементах этого сетевого источника.
Например, при поиске положений, значение параметра [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]] указывает, что поиск может быть выполнен по геометрии источника Streets, но не источника Streets_ND_Junctions.

Для указания нескольких типов замыкания для отдельного источника сети, используйте сочетание ключевых слов для типа замыкания, разделенных знаком подчеркивания. Например, MIDDLE_END указывает, что положения могут быть замкнуты на среднюю или конечную точку источника сети.

При добавлении линейных или полигональных сетевых положений используется только тип замыкания SHAPE, даже в том случае, если указаны другие типы.

Любой не включенный в этот список сетевой источник будет использовать тип замыкания по умолчанию. Самый безопасный способ – включить все сетевые источники в ваш список и явно задать тип замыкания для каждого из них.

Значение по умолчанию SHAPE для всех сетевых источников, кроме системных соединений, где применяется значение по умолчанию NONE.

Value Table
match_type
(Дополнительный)

Указывает способ сопоставления сетевых местоположений.

  • MATCH_TO_CLOSEST —Сопоставляет новые сетевые положения с ближайшим источником сети среди всех источников, которые имели тип замыкания, указанный в критерии поиска. Используется по умолчанию.
  • PRIORITY —Сопоставляет новые сетевые положения с первым источником сети, имеющим тип замыкания, указанный в критерии поиска. Поиск источников выполняется в приоритетном порядке, поиск останавливается после нахождения положения в пределах допуска поиска.

Этот параметр не используется при добавлении положений для подслоев Линейные барьеры или Полигональные барьеры. В таких случаях используйте в качестве значения параметра "#".

Boolean
append
(Дополнительный)

Укажите необходимость добавления новых объектов сетевого анализа к существующим объектам.

  • APPEND —Новый объект сетевого анализа добавляется в существующий набор объектов выбранного подслоя. Используется по умолчанию.
  • CLEAR —Существующие объекты сетевого анализа удаляются и заменяются новыми.
Boolean
snap_to_position_along_network
(Дополнительный)

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

  • NO_SNAP — Геометрия сетевых положений основывается на геометрии входных объектов. Это удобно при необходимости выполнения ограничения подъезда, требующего наличия сведений о том, на какой стороне ребра находятся сетевые положения. Используется по умолчанию.
  • SNAP —Если есть точечные объекты, точка замыкается на сеть, и использование ограничения подъезда невозможно. Это полезно, если не имеет значения, как транспортное средство должно подходить к остановке. Если входные объекты – линии или полигоны, используйте это значение параметра.

Этот параметр не используется при добавлении положений для подслоев Линейные барьеры или Полигональные барьеры. В таких случаях используйте в качестве значения параметра "#".

Boolean
snap_offset
(Дополнительный)

В случае замыкания точки к сети можно применить расстояние смещения. Нулевое расстояние смещения означает, что точки будут совпадать с сетевым объектом (обычно линейным). Чтобы сместить точку от сетевого объекта, введите расстояние смещения. Смещение связано с положением исходной точки; поэтому, если исходная точка была расположена слева, то ее новое положение будет смещено влево. Если она изначально была расположена справа, то ее новое положение будет смещено вправо.

Этот параметр не используется при добавлении положений для подслоев Линейные барьеры или Полигональные барьеры. В таких случаях используйте в качестве значения параметра "#".

По умолчанию – 5 метров. Однако этот параметр игнорируется если для snap_to_position_along_network задано NO_SNAP.

Linear Unit
exclude_restricted_elements
(Дополнительный)

Указывает, будут ли исключены ограниченные сетевые элементы.

  • EXCLUDE —Сетевые положения размещаются только на проходимых участках сети. Это предотвратит размещение сетевых положений на элементах, которых нельзя достичь из-за ограничений или барьеров. Чтобы получить ожидаемые результаты, перед добавлением сетевых положений с использованием этого параметра, убедитесь в том, что в слой сетевого анализа добавлены все ограничивающие барьеры. Этот параметр не применяется при добавлении объектов барьеров. В таких случаях используйте в качестве значения параметра "#". Используется по умолчанию.
  • INCLUDE —Сетевые положения размещаются на всех элементах сети. Сетевые положения, добавляемые с использованием этого параметра, могут быть недоступны в процессе решения, если они размещены на ограниченных элементах.
Boolean
search_query
[[Source, Expression],...]
(Дополнительный)

Запрос, который ограничит поиск поднабором объектов в пределах исходного класса объектов. Эта опция полезна, если вы хотите исключить объекты, которые могут не подходить для сетевого положения. Например, если вы загружаете центроиды полигонов, и не хотите размещать их на дорогах местного значения, вы можете задать запрос, по которому будет выполняться поиск только для основных магистралей.

Значение параметра указывается в виде списка с вложенными списками. Вложенный список состоит из двух значений, указывающих имя и выражение SQL для всех источников сети. Синтаксис выражения SQL несколько различается в зависимости от типа класса объектов источника сети. Например, если вы выполняете запрос к исходному классу объектов, хранящемуся в файловой или многопользовательской базе геоданных, шейп-файлам, SDC, то имена полей необходимо заключить в двойные кавычки: "CFCC". Если вы выполняете запрос к исходному классу объектов, хранящемуся в персональной базе геоданных, заключите поля в квадратные скобки: [CFCC].

Если запрос для конкретного источника указывать не нужно, используйте "#" в качестве значения для выражения SQL, или исключите имя источника и выражение SQL из значения параметра. Если запрос для всех источников сети указывать не нужно, используйте "#" в качестве значения параметра.

Например, значение параметра [["Streets","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]] определяет выражение SQL для исходного класса объектов Streets и отсутствие выражения для исходного класса объектов Streets_ND_Junctions. Обратите внимание, что двойные кавычки, окружающие имя поля CFCC, можно проигнорировать, добавив символы обратной косой черты, что позволит избежать ошибки анализа в интерпретаторе Python.

По умолчанию запрос не используется.

Value Table

Производные выходные данные

ИмяОбъяснениеТип данных
output_layer

Обновленный слой сетевого анализа.

Слой Network Analyst

Пример кода

AddLocations, пример 1 (окно Python)

Запуск инструмента с использованием только необходимых параметров.

hospitals = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals"
arcpy.na.AddLocations("Route", "Stops", hospitals, "", "")
AddLocations, пример 2 (окно Python)

Выполните инструмент с использованием всех параметров.

hospitals = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals"
arcpy.na.AddLocations("Route", "Stops", hospitals,
                      "Name Name #;Attr_Minutes VisitTime 0;CurbApproach # 0",
                      "2 Miles", "FID",
                      [["Streets", "SHAPE"], ["Streets_ND_Junctions", "NONE"]],
                      "MATCH_TO_CLOSEST", "CLEAR", "SNAP", "10 Feet", "EXCLUDE",
                      [["Streets", '"FREEWAY" = 0'],
                      ["Streets_ND_Junctions", ""]])
AddLocations, пример 3 (рабочий процесс)

В следующем автономном скрипте Python показано, как с помощью инструмента AddLocations можно загружать отправные пункты и места назначения в матрицу стоимости OD.

# Name: AddLocations_Workflow.py
# Description: The scenario shows how to calculate a travel time matrix between 
#              store features. Use the Add Locations tool to load origins and 
#              destinations into an OD Cost Matrix layer. Since the origins and 
#              destinations are the same in this case, the origins are first loaded 
#              from the store features using their geometry and the destinations
#              are loaded from the origins using network location fields to 
#              speed up the load times. 
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayerName = "StoreTravelTimeMatrix"
    impedanceAttribute = "TravelTime"
    inFeatures = "Analysis/Stores"
    searchTolerance = "500 Meters"
    searchQuery = [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]]
    odOrigins = "Origins"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Create a new OD cost matrix analysis layer. For this scenario, the default 
    #value for all the remaining parameters statisfies the analysis requirements
    outNALayer = arcpy.na.MakeODCostMatrixLayer(inNetworkDataset, outNALayerName,
                                   impedanceAttribute)
    
    #Get the layer object from the result object. The OD cost matrix layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the OD cost matrix layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    originsLayerName = subLayerNames[odOrigins]
    destinationsLayerName = subLayerNames["Destinations"]
    
    #Get the origin layer object from within the OD cost matrix layer
    #The first layer returned by ListLayers is the OD cost matrix layer itself
    #which we don't want to use.
    for layer in arcpy.mapping.ListLayers(outNALayer)[1:]:
        if layer.datasetName == odOrigins:
            originsLayer = layer
            break
    else:
        raise Exception("Failed to get the origins layer object.")
    
    #Load store features as origins using the geometry of store features.
    #Ensure that the stores are not located on freeways by using a search query.
    #The OD cost matrix layer created previously is referred using its name. 
    arcpy.na.AddLocations(outNALayer,originsLayerName,inFeatures,"",
                          searchTolerance, exclude_restricted_elements = "EXCLUDE",
                          search_query = searchQuery)
    
    #Load origins as destinations using the network locations fields from 
    #origins. This is much faster than loading destinations from the store 
    #features using their geometry as their network locations have already been
    #calculated while loading them origins.
    #Create a field mappings object that supports network location fields from 
    #origins layer using the candidate fields from origins
    originsLayer = arcpy.management.MakeFeatureLayer(originsLayer,
                                                     outNALayerName+originsLayerName)
    candidateFields = arcpy.ListFields(originsLayer.getOutput(0))
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer,
                                                  destinationsLayerName, True,
                                                  candidateFields)
    arcpy.na.AddLocations(outNALayer,destinationsLayerName,originsLayer,
                          fieldMappings,"")
    
    #Solve the od cost matrix layer. Halt the execution if there is an 
    #invalid location 
    arcpy.na.Solve(outNALayer,"HALT")
    
    #Save the solved na layer as a layer file on disk with relative paths
    arcpy.management.SaveToLayerFile(outNALayer,outLayerFile,"RELATIVE")
    
    print "Script completed successfully"
    
except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occurred on line %i" % tb.tb_lineno
    print str(e)

Параметры среды

  • Текущая рабочая область

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы

  • Что такое объекты сетевого анализа?
  • Обзор группы инструментов Анализ
  • Поля Направление (Bearing) и Допуск направления (BearingTol)

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация