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

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

NAClassFieldMappings

  • Сводка
  • Описание
  • Синтаксис
  • Пример кода

Сводка

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

Описание

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

Синтаксис

 NAClassFieldMappings (network_analyst_layer, sub_layer_name, {use_location_fields}, {list_candidate_fields})
ПараметрОбъяснениеТип данных
network_analyst_layer

Переменная, ссылающаяся на объект Layer, полученный из слоя сетевого анализа. Она может быть получена из существующих слоев в документе карты, либо путем указания пути к файлу слоя сетевого анализа в качестве аргумента класса Layer. Свойство isNetworkAnalystLayer объекта Layer может использоваться для определения, является ли данный объект Layer слоем сетевого анализа.

Layer
sub_layer_name

Имя подслоя, для которого следует создать соответствия полей. Имя должно быть корректным для определенного типа слоя сетевого анализа. Для данного слоя сетевого анализа имя подслоя можно определить с помощью функции GetNAClassNames.

String
use_location_fields

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

(Значение по умолчанию — False)

Boolean
list_candidate_fields
[list_candidate_fields,...]

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

(Значение по умолчанию — None)

Field

Пример кода

Следующий скрипт показывает, как загрузить пожарные станции в качестве пунктов обслуживания в существующий слой области обслуживания и установить десятиминутный интервал при загрузке пунктов обслуживания с помощью объекта NAClassFieldMappings. Предполагается, что слой сетевого анализа области обслуживания Fire Stations Coverage создан из учебного набора сетевых данных на территорию города Сан-Франциско, а также слой FireStations, были добавлены в существующий документ карты.

#Get the service area layer called "Fire Stations Coverage" from the table of contents
saLayer = arcpy.mapping.Layer("Fire Stations Coverage")

#Get the list of fields from the FireStations feature layer in the table of contents
fields = arcpy.ListFields("FireStations")

#Get the facilities sublayer name from the service area layer. Note that we are not
#using a string called "Facilities" because the sublayer name can be
#different if using ArcGIS on a non-english operating system.
facilitiesSubLayerName = arcpy.na.GetNAClassNames(saLayer)["Facilities"]

#Create a field mappings object for facilities sublayer based on the fields from
#FireStations layer
fieldMappings = arcpy.na.NAClassFieldMappings(saLayer, facilitiesSubLayerName,
                                              False, fields)

#Get the field map corresponding to the "Attr_TravelTime" property of facilities
fieldMap = fieldMappings["Attr_TravelTime"]

#Set a delay of 10 minutes for the facilities
fieldMap.defaultValue = 10

#Load the fire stations as service area facilities using the field mappings
arcpy.na.AddLocations(saLayer, facilitiesSubLayerName, "FireStations", fieldMappings)

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

import arcpy

#Set up the environment
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("network")

#Set up variables
networkDataset = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
polygonBarriers = "C:/Data/WeatherSlowDownAreas.shp"
stops = "C:/Data/SanFrancisco.gdb/Analysis/Stores"
impedanceAttribute = "TravelTime"
outputLayer = "C:/Data/WeatherRoute.lyr"

#Create a new route layer
routeLayer = arcpy.na.MakeRouteLayer(networkDataset, "WeatherRoute",
                                     impedanceAttribute).getOutput(0)
#Get na class names based on the layer
naClasses = arcpy.na.GetNAClassNames(routeLayer, "INPUT")
#Create field mappings for loading barriers as scaled cost polygon barriers
#with a slow down of 40%
fieldMappings = arcpy.na.NAClassFieldMappings(routeLayer,
                                              naClasses["PolygonBarriers"])
fieldMappings["BarrierType"].defaultValue = 1
fieldMappings["Attr_" + impedanceAttribute].defaultValue = 1.4
#Load weather polygons as slow down barriers
arcpy.na.AddLocations(routeLayer, naClasses["PolygonBarriers"],
                          polygonBarriers, fieldMappings)

#get a list of field objects from the stores feature class
storeFields = arcpy.ListFields(stops)
#Create field mappings for loading stops based on the field names from the stores
stopsFieldMappings = arcpy.na.NAClassFieldMappings(routeLayer, naClasses["PolygonBarriers"],
                                                   False, storeFields)
#Load stops using the field mappings
arcpy.na.AddLocations(routeLayer, naClasses["Stops"], stops, stopsFieldMappings)
#Solve the route
arcpy.na.Solve(routeLayer)
#Save the solved layer as a layer file
arcpy.management.SaveToLayerFile(routeLayer, outputLayer)
arcpy.AddMessage("Completed")

ArcGIS Desktop

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

ArcGIS

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

Об Esri

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