Locator

Сводка

Класс Locator позволяет изменять локаторы и использовать их для геокодирования. Геокодирование - это процесс, преобразующий описание местоположения (например, координаты, адрес или название места) в местоположение на поверхности Земли.

Модуль Geocoding был разработан для поддержки локаторов, созданных инструментом Создать локатор. У локаторов, созданных устаревшими инструментами, может оказаться ограниченный функционал, и они не будут поддерживать ряд свойств и параметров.

Описание

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

С локатором можно работать как с сервисом на вашем портале, например, ArcGIS World Geocoding Service, сервисом, работающем через подключение AGS к серверу или как с расположенном на диске файлом.

Синтаксис

Locator (path)
ParameterОбъяснениеТип данных
path

Путь к локатору.

String

Создает объект Locator из локатора, который хранится на диске.

import arcpy
# Create a new Locator object from a locator on disk
locator_path = r"C:\Locators\Atlanta.loc"
locator = arcpy.geocoding.Locator(locator_path)

Создает объект Locator из ArcGIS World Geocoding Service.

import arcpy
# Sign in to AGOL
username = "MyAGOLUsername"
password = "MyAGOLPassword"
arcpy.SignInToPortal("https://www.arcgis.com/", username, password)
# Create a new Locator object from the ArcGIS World Geocoding Service
locator_path = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service"
locator = arcpy.geocoding.Locator(locator_path)

Создает объект Locator из подключения AGS.

import arcpy
# Create a new Locator object from a locator published to ArcGIS Server locator_path = r"C:\AGS Files\MyAGSConnectionFile.ags\Atlanta"
locator = arcpy.geocoding.Locator(locator_path)

Создает объект Locator из элемента локатора на вашем портале ArcGIS Enterprise

import arcpy
# Sign in to your portal
username = "MyPortalUsername"
password = "MyPortalPassword"
arcpy.SignInToPortal("https://myenterpriseportal.esri.com/portal",username,password)
# Create a new Locator object from the locator on your portal
locator_path = "https://myenterpriseportal.esri.com/server/rest/services/Geocode/Atlanta/GeocodeServer/Atlanta"
locator = arcpy.geocoding.Locator(locator_path)

Свойства

ВладениеОбъяснениеТип данных
capabilities
(только чтение)

Возвращает возможности, доступные для локатора, опубликованного в виде сервиса ArcGIS Enterprise или сервиса геокодирования ArcGIS Server. Доступны следующие возможности:

  • Geocoding - если это значение содержится в свойстве, сервис геокодирования поддерживает операции геокодирования - поиск местоположения по адресу или названию места.
  • ReverseGeocoding - если это значение содержится в свойстве, сервис геокодирования поддерживает операции обратного геокодирования - поиск ближайшего к данному местоположению места или адреса.
  • Suggest - если это значение содержится в свойстве, сервис геокодирования поддерживает автозаполнение предложений при вводе данных.
Этим свойством будет возвращена одна строка, содержащая все поддерживаемые возможности.

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

String
categories
(чтение и запись)

Управляет точностью, ограничивая категории, которые могут быть возвращены локатором в набор. Если ваш мультиролевой локатор поддерживает несколько типов адресов, можно изменить этот параметр, чтобы исключить совпадения с определенными типами. Например, ваш локатор может поддерживать соответствия уровней Адрес точки, Улица и номер дома, Название улицы и Почтовый адрес. Вы можете исключить совпадения с уровнем Почтовый адрес, так как считаете их слишком неточными для своих целей. Этот параметр позволяет контролировать точность геокодирования.

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

String
defaultSuggestCandidates
(чтение и запись)

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

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

Integer
matchOutOfRange
(чтение и запись)

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

Если вы хотите сопоставить сегмент улицы, даже если номер улицы не существует на сегменте линии в ваших данных, но находится в пределах разумного порога и, скорее всего, будет существовать, задайте для этого свойства значение True. Если для этого свойства установлено True, точка помещается в конец сегмента улицы, адрес по которой находится немного за пределами диапазона номеров домов. Это гарантирует, что вы не пропустите потенциальное совпадение из-за того, что данные не на 100 процентов актуальны.

Свойство matchOutOfRange применяется только к локаторам, которые поддерживают и возвращают совпадения StreetAddress.

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

Boolean
maxCandidates
(чтение и запись)

Максимальное число кандидатов, возвращаемых методом geocode.

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

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

Integer
maxSuggestCandidates
(чтение и запись)

Максимальное число кандидатов, возвращаемых методом suggest.

Если вы увидите, что метод suggest работает слишком медленно, это может быть вызвано тем, что локатор создает слишком большое число предложений. Чтобы ускорить работу, уменьшите это значение.

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

Integer
minCandidateScore
(чтение и запись)

Минимальный балл, который должен быть у результата, чтобы он считался подходящим кандидатом для операции geocode. Минимальный балл кандидата для локатора - это значение между 0 и 100. Только кандидаты, превышающие минимальный балл для кандидата, возвращаются методом geocode.

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

Integer
minMatchScore
(чтение и запись)

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

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

Минимальное количество очков для совпадения может быть от 0 до 100. Наилучшее совпадение эквивалентно 100 баллам. Если вашим рабочим процессам требуются совпадающие адреса с высоким уровнем достоверности, установите для этого свойства более высокий порог. Более высокое значение гарантирует, что будут возвращены только совпадения самого высокого качества. Если вы хотите увеличить число адресов для сопоставления и при этом не придаете большого значения тому факту, что некоторые из адресов, возможно, могут быть сопоставлены некорректно, тогда вы можете использовать меньшее значение порога.

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

Integer
multilineInputFields
(только чтение)

Поля локатора для многострочного геокодирования. Это свойство возвращает список объектов arcpy.Field для многострочных входных полей для данного локатора. При геокодировании таблицы многострочные поля таблиц геокодирования могут сопоставляться со свойством name объектов Field.

Field
numberOfThreads
(чтение и запись)

Число ветвей пакетного геокодирования.

Чтобы наилучшим образом использовать эту настройку, необходимо оценить компьютер, который вы будете использовать для геокодирования, и определить количество ядер процессора, доступных на вашем компьютере для выполнения геокодирования. Геокодирование может задействовать все ядра процессора для более быстрого выполнения задания геокодирования. По умолчанию это значение установлено на меньшее число, которое должно работать на любой машине независимо от количества доступных ядер; но вы можете задать большее количество используемых ядер, если известно, что они доступны. Вы можете настроить Auto для обнаружения ядер на компьютере и их оптимизацию для вашего компьютера. Или у вас есть возможность выделить определенное количество ядер для геокодирования, если вы знаете, что вам нужно оставить ресурсы для других приложений.

Если вы планируете предоставить общий доступ к локатору ArcGIS Enterprise, рекомендуется установить для этого свойства значение 4.

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

Integer
singleLineField
(только чтение)

Поле локатора для однострочного геокодирования. Это свойство возвращает объект arcpy.Field, представляющий однострочное входное поле для данного локатора. При геокодировании таблицы однострочное поле таблицы геокодирования может сопоставляться со свойством name этого объекта Field.

Field
spatialReference
(только чтение)

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

String
supportedCountries
(только чтение)

Страны, поддерживаемые локатором.

String
supportedRoles
(только чтение)

Роли, поддерживаемые локатором.

String
reverseGeocodeFeatureTypes
(чтение и запись)

Типы объектов, поддерживаемые методом reverseGeocode.

Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор.

String

Обзор метода

МетодОбъяснение
geocode (searchText, forStorage, {preferredSearchLocation}, {countryCode}, {categories}, {locationType}, {outFields}, {maxResults}, {minScore}, {outputLanguageCode}, {searchExtent})

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

reverseGeocode (location, forStorage, {featureTypes}, {locationType}, {outputLanguageCode})

Принимает объект PointGeometry в качестве входных данных и возвращает ближайший адрес, точку интереса или пересечение с этой точкой. Результат представляет собой обратный геокодированный результат, который содержит информацию о соответствующем адресе или местоположении, геометрическую информацию, включая координаты x и y, а также дополнительные атрибуты в зависимости от используемого Locator.

suggest (searchText, {preferredSearchLocation}, {countryCode}, {categories}, {maxResults}, {searchExtent})

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

geocodeWithSuggest (suggestResult, forStorage, {preferredSearchLocation}, {countryCode}, {categories}, {locationType}, {outFields}, {maxResults}, {minScore}, {outputLanguageCode}, {searchExtent})

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

Рекомендуется передавать те же параметры в метод geocodeWithSuggest, которые вы передавали при создании результата метода suggest, позволившего получить правильные результаты.

updateLocator ()

Сохраняет изменения, внесенные в свойства Locator во время текущего сеанса Python, в локаторе, чтобы эти свойства были применены для дальнейшего использования.

Методы

geocode (searchText, forStorage, {preferredSearchLocation}, {countryCode}, {categories}, {locationType}, {outFields}, {maxResults}, {minScore}, {outputLanguageCode}, {searchExtent})
ParameterОбъяснениеТип данных
searchText

Адрес или место, расположение которых ищется.

String
forStorage

Определяет будут ли сохраняться результаты. Значение по умолчанию - False, означающее, что результаты не сохраняются, но могут, например, временно отображаться на карте. Если вы, например, сохраняете результат в базе геоданных, задайте для этого параметра значение True.

Этот параметр применяется только к запросам геокодирования, выполненным посредством ArcGIS World Geocoding Service. Для остальных локаторов этот параметр игнорируется.

Примечание:

Изначально сохранение результатов геокодирования сервисом ArcGIS World Geocoding Service запрещается, пока не будет выполнен запрос со значением True параметра forStorage. Чтобы Locator корректно работал с ArcGIS World Geocoding Service, необходимо выполнить вход в ArcGIS Online под учетной записью организации. Сервисные кредиты ArcGIS Online списываются с учетной записи организации каждой транзакцией геокодирования.

Boolean
preferredSearchLocation

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

PointGeometry
countryCode

Строка разделенных запятыми трехсимвольных кодов стран, ограничивающая результаты геокодирования заданным набором стран, позволяет в большинстве случаев улучшить качество геокодирования. Если страна не указана, геокодирование с предложениями выполняется по всем доступным странам локатора.

Если вы работаете с ArcGIS World Geocoding Service, ознакомьтесь со списком поддерживаемых стран.

String
categories

Разделенный запятыми список категорий, ограничивающий типы местоположений, в которых локатором выполняется поиск, убирает ложноположительные совпадения и ускоряет процесс поиска. См. веб-справку к REST API для получения сведений о фильтрации категорий.

String
locationType

Задает предпочитаемое выходное местоположение для соответствия PointAddress. Если предпочитаемое местоположение отсутствует в данных, вместо него будет возвращено местоположение по умолчанию. Для результатов геокодирования с Addr_type=PointAddress, атрибутивные значения x,y соответствуют координатам адреса, а значения DisplayX и DisplayY описывают координаты верхней точки крыши или центроида здания.

Этот аргумент влияет на геометрию и не влияет на атрибуты.

  • "rooftop"Адресное местоположение может соответствовать крыше, центроиду земельного участка или входной двери.
  • "street"Местоположение, находящееся рядом с улицей, может использоваться для построения маршрутов. Это значение по умолчанию.
String
outFields

Список полей, возвращаемый, как часть атрибутов результата. Этот параметр поддерживает одно имя поля либо список разделенных запятыми имен полей (без пробелов). Для возврата к выходным полям по умолчанию параметр outFields передавать не надо. Воспользуйтесь звездочкой ("*"), чтобы результат возвратил все доступные выходные поля. Выходные поля описаны в разделе Что содержится в результатах геокодирования.

Примечание:
Это свойство не поддерживается локаторами на диске.

String
maxResults

Максимальное число местоположений - вплоть до максимально допустимого Locator. Если оно не задано, будут возвращены все совпадающие кандидаты - максимальное их число определяется свойствами Locator.

Integer
minScore

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

Integer
outputLanguageCode

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

При использовании ArcGIS World Geocoding Service изучите список поддерживаемых стран, чтобы увидеть коды языков, поддерживающихся этими странами.

String
searchExtent

Экстент, ограничивающий область поиска. Все результаты, находящиеся вне заданного экстента, будут исключены и не будут возвращаться.

Extent
Значение отраженного сигнала
Тип данныхОбъяснение
List

Выходными данными операции geocode является список объектов-словарей. Каждый объект-словарь соответствует одному результату геокодирования. Каждый результат геокодирования содержит информацию о совпавшем адресе или месте, информацию о геометрии, в том числе координаты x и y и дополнительные атрибуты в соответствии с используемым Locator и параметром outFields.

Выполняется геокодирование для поиска расположения места или адреса с помощью локатора на диске.

import arcpy
# Create a new Locator object from a locator on disk
locator_path = r"C:\Locators\Atlanta.loc"
locator = arcpy.geocoding.Locator(locator_path)
# Geocode to find the location of an address
geocoding_candidates = locator.geocode("1670 W Peachtree St NE, Atlanta, GA 30309", False)

Выполняется геокодирование для поиска расположения места или адреса с помощью ArcGIS World Geocoding Service.

import arcpy
# Sign in to AGOL
username = "MyAGOLUsername"
password = "MyAGOLPassword"
arcpy.SignInToPortal("https://www.arcgis.com/", username, password)
# Create a new Locator object from the ArcGIS World Geocoding Service
locator_path = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service"
locator = arcpy.geocoding.Locator(locator_path)
# Geocode to find the location of an address
geocoding_candidates = locator.geocode("1670 W Peachtree St NE, Atlanta, GA 30309", True)

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

import arcpy
# Create a new Locator object from a locator published to ArcGIS Server locator_path = r"C:\AGS Files\MyAGSConnectionFile.ags\Atlanta"
locator = arcpy.geocoding.Locator(locator_path)
# Geocode to find the location of an address geocoding_candidates = locator.geocodeWithSuggest("1670 W Peachtree St NE, Atlanta, GA 30309", False)
reverseGeocode (location, forStorage, {featureTypes}, {locationType}, {outputLanguageCode})
ParameterОбъяснениеТип данных
location

Точка, для которой вы хотите найти ближайший адрес, точку интереса или пересечение.

PointGeometry
forStorage

Определяет, будут ли сохраняться результаты. Значение по умолчанию False, это указывает, что результаты не могут быть сохранены, но они могут быть, например, временно отображены на карте. Если вы храните результаты, например, в базе данных, установите этот параметр равным True.

Этот параметр применяется только к запросам геокодирования, выполненным с помощью ArcGIS World Geocoding Service. Для всех остальных локаторов этот параметр игнорируется.

Примечание:

Приложения не могут хранить результаты операций геокодирования с использованием ArcGIS World Geocoding Service, если только они не выполнят запрос, передавая параметр forStorage со значением True. Для того, чтобы Locator, использующий ArcGIS World Geocoding Service, был действительным, вы должны войти в ArcGIS Online с действительной учетной записью организации. Сервисные кредиты ArcGIS Online списываются со счета организации для каждой транзакции геокодирования, которая включает параметр forStorage со значением True.

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

Boolean
featureTypes

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

Для получения дополнительной информации о том, как этот аргумент используется в ArcGIS World Geocoding Service, см. документацию REST API.

String
locationType

Указывает предпочтительное место вывода. Если предпочитаемое местоположение отсутствует в данных, вместо него будет возвращено местоположение по умолчанию. Для результатов обратного геокодирования с Addr_type=PointAddress, атрибутивные значения x,y соответствуют координатам адреса, а значения DisplayX и DisplayY описывают координаты верхней точки крыши или центроида здания. Для получения дополнительной информации об этом параметре см. информацию о параметре в документации REST API Обратное геокодирование.

Этот аргумент влияет только на геометрию, а не на значения атрибутов.

  • "rooftop"Местоположение адреса, например местоположение на крыше, центроид участка или входная дверь.
  • "street"Местоположение, находящееся рядом с улицей и использующееся для построения маршрутов. Это значение по умолчанию.
String
outputLanguageCode

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

Если вы используете ArcGIS World Geocoding Service, см. список поддерживаемых стран, чтобы узнать, какие языковые коды поддерживаются для этих стран.

String
Значение отраженного сигнала
Тип данныхОбъяснение
List

Результат обратного геокодирования содержит информацию о соответствующем адресе или местоположении, геометрическую информацию, включая координаты x и y, а также дополнительные атрибуты в зависимости от используемого Locator, а также ключа Shape, для которого значение является объектом PointGeometry.

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

import arcpy
# Create a new Locator object from a locator on disk
locator_path = r"C:\Locators\Atlanta.loc"
locator = arcpy.geocoding.Locator(locator_path)
# Create input PointGeometry object
spatial_reference = arcpy.SpatialReference(4326)
point = arcpy.Point(-84.374, 33.797)
point_geometry = arcpy.PointGeometry(point, spatial_reference)
# Reverse geocode to find the nearest address or place to the point
reverse_geocode_result = locator.geocode(point_geometry, False)

Обратное геокодирование для поиска ближайшего места или адреса к заданному местоположению с помощью ArcGIS World Geocoding Service.

import arcpy
# Sign in to AGOL
username = "MyAGOLUsername"
password = "MyAGOLPassword"
arcpy.SignInToPortal("https://www.arcgis.com/", username, password)
# Create a new Locator object from the ArcGIS World Geocoding Service
locator_path = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service"
locator = arcpy.geocoding.Locator(locator_path)
# Create input PointGeometry object
spatial_reference = arcpy.SpatialReference(4326)
point = arcpy.Point(-84.374, 33.797)
point_geometry = arcpy.PointGeometry(point, spatial_reference)
# Reverse geocode to find the nearest address or place to the point
geocoding_candidates = locator.geocode(point_geometry, True)

Геокодирование для поиска ближайшего места или адреса к заданному местоположению с помощью локатора, доступ к которому осуществляется через соединение AGS.

import arcpy
# Create a new Locator object from a locator published to ArcGIS Server locator_path = r"C:\AGS Files\MyAGSConnectionFile.ags\Atlanta"
locator = arcpy.geocoding.Locator(locator_path)
# Create input PointGeometry object spatial_reference = arcpy.SpatialReference(4326) point = arcpy.Point(-84.374, 33.797) point_geometry = arcpy.PointGeometry(point, spatial_reference)
# Reverse geocode to find the nearest address or place to the point geocoding_candidates = locator.geocodeWithSuggest(point_geometry, False)
suggest (searchText, {preferredSearchLocation}, {countryCode}, {categories}, {maxResults}, {searchExtent})
ParameterОбъяснениеТип данных
searchText

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

String
preferredSearchLocation

Исходная точка, которая используется для предпочтения или усиления возможных кандидатов в зависимости от их близости к местоположению. Кандидаты, находящиеся рядом с этим местом, имеют приоритет по отношению к тем, кто находится дальше.

PointGeometry
countryCode

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

Если вы используете сервис ArcGIS World Geocoding Service, обратитесь к списку поддерживаемых стран в разделе Область геокодирования.

String
categories

Разделенный запятыми список категорий, который ограничивает типы мест, для которых локатор генерирует предположения, устраняя таким образом ложноположительные совпадения и потенциально ускоряя этот процесс. См. веб-справку к REST API для получения сведений о фильтрации категорий.

String
maxResults

Максимальное количество предположений, которое может быть возвращено, вплоть до максимального количества, разрешенного Locator. Если не указано, то возвращаются все совпадающие предположения до максимального значения, указанного в параметре Locator maxSuggestCandidates.

Integer
searchExtent

Экстент, ограничивающий область поиска. Исключаются все результаты, возвращаемые извне указанного экстента.

Extent
Значение отраженного сигнала
Тип данныхОбъяснение
List

Выходные данные метода suggest представляют собой массив объектов словаря. Каждый словарь представляет собой отдельный результат предположения. Каждый результат предположения содержит следующие ключи: text, magicKey и isCollection.

Чтобы использовать выходные данные метода suggest, в метод geocodeWithSuggest должен быть перенесен весь словарь с желаемым индексом списка.

Примечание:
Для получения дополнительных сведений о ключах словаря см. документацию REST API.

Создайте предположения на основе неполной строки ввода пользователем с помощью локатора на диске.

import arcpy
# Create a new Locator object from a locator on disk
locator_path = r"C:\Locators\Atlanta.loc"
locator = arcpy.geocoding.Locator(locator_path)
# Generate suggestions from partial user input
suggestion_candidates = locator.suggest("1670 w peach")

Создайте предположения на основе неполной строки ввода пользователем с помощью ArcGIS World Geocoding Service.

import arcpy
# Sign in to AGOL
username = "MyAGOLUsername"
password = "MyAGOLPassword"
arcpy.SignInToPortal("https://www.arcgis.com/", username, password)
# Create a new Locator object from the ArcGIS World Geocoding Service
locator_path = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service"
locator = arcpy.geocoding.Locator(locator_path)
# Generate suggestions from partial user input
suggestion_candidates = locator.suggest("1670 w peach")

Создайте предположения на основе неполной строки ввода пользователем с помощью локатора, доступ к которому осуществляется через подключение AGS.

import arcpy
# Create a new Locator object from a locator published to ArcGIS Server locator_path = r"C:\AGS Files\MyAGSConnectionFile.ags\Atlanta"
locator = arcpy.geocoding.Locator(locator_path)
# Generate suggestions from partial user input suggestion_candidates = locator.suggest("1670 w peach")
geocodeWithSuggest (suggestResult, forStorage, {preferredSearchLocation}, {countryCode}, {categories}, {locationType}, {outFields}, {maxResults}, {minScore}, {outputLanguageCode}, {searchExtent})
ParameterОбъяснениеТип данных
suggestResult

Выходные данные, полученные в результате применения метода suggest, используются для нахождения адреса или места. Результатом выполнения предложений является словарь, содержащий ключи text, magicKey и isCollection.

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

Dictionary
forStorage

Определяет будут ли сохраняться результаты. Значение по умолчанию - False, означающее, что результаты операции не сохраняются, но могут, например, временно отображаться на карте. Если вы, например, сохраняете результат в базе геоданных, задайте для этого параметра значение True.

Этот параметр применяется только к запросам геокодирования, выполненным посредством ArcGIS World Geocoding Service. Для остальных локаторов этот параметр игнорируется.

Изначально сохранение результатов геокодирования сервисом ArcGIS World Geocoding Service запрещается, пока не будет выполнен запрос со значением True параметра forStorage. Чтобы Locator корректно работал с ArcGIS World Geocoding Service, необходимо выполнить вход в ArcGIS Online под учетной записью организации. Сервисные кредиты ArcGIS Online списываются с учетной записи организации каждой транзакцией, сохраняющей результаты.

Boolean
preferredSearchLocation

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

PointGeometry
countryCode

Строка разделенных запятыми трехсимвольных кодов стран, ограничивающая результаты геокодирования заданным набором стран, позволяет в большинстве случаев улучшить качество геокодирования. Если страна не указана, геокодирование с предложениями выполняется по всем доступным странам локатора.

Если вы работаете с ArcGIS World Geocoding Service, ознакомьтесь со списком поддерживаемых стран.

String
categories

Разделенный запятыми список категорий, ограничивающий типы местоположений, в которых локатором выполняется поиск, убирает ложноположительные совпадения и ускоряет процесс поиска. См. веб-справку к REST API для получения сведений о фильтрации категорий.

String
locationType

Задает предпочитаемую выходную геометрию для соответствия PointAddress. Если предпочитаемое местоположение отсутствует в данных, вместо него будет возвращено местоположение по умолчанию. Для результатов геокодирования с Addr_type=PointAddress, атрибутивные значения x,y соответствуют координатам адреса, а значения DisplayX и DisplayY описывают координаты верхней точки крыши или центроида здания.

Этот аргумент влияет на геометрию и не влияет на атрибуты.

  • "rooftop"Адресное местоположение может соответствовать крыше, центроиду земельного участка или входной двери.
  • "street"Местоположение, находящееся рядом с улицей, может использоваться для построения маршрутов. Это значение по умолчанию.
String
outFields

Список полей, возвращаемый, как часть атрибутов результата. Этот параметр поддерживает одно имя поля либо список разделенных запятыми имен полей (без пробелов). Для возврата к выходным полям по умолчанию параметр outFields передавать не надо. Воспользуйтесь звездочкой ("*"), чтобы результат возвратил все доступные выходные поля. Выходные поля описаны в разделе Что содержатся в результатах геокодирования.

Примечание:
Это свойство не поддерживается локаторами на диске.

String
maxResults

Максимальное число местоположений - вплоть до максимально допустимого Locator. Если оно не задано, будут возвращены все совпадающие кандидаты - максимальное их число определяется параметром maxCandidate в свойствах Locator.

Integer
minScore

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

Integer
outputLanguageCode

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

При использовании ArcGIS World Geocoding Service изучите список поддерживаемых стран, чтобы увидеть коды языков, поддерживающихся этими странами.

String
searchExtent

Экстент, ограничивающий область поиска. Все результаты, находящиеся вне заданного экстента, будут исключены и не будут возвращаться.

Extent
Значение отраженного сигнала
Тип данныхОбъяснение
List

Выходными данными метода geocodeWithSuggest является список объектов-словарей. Каждый словарь соответствует одному результату геокодирования. Каждый результат геокодирования содержит информацию о совпавшем адресе или месте, информацию о геометрии, в том числе координаты x и y и дополнительные атрибуты в соответствии с используемым Locator и параметром outFields.

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

import arcpy
# Create a new Locator object from a locator on disk
locator_path = r"C:\Locators\Atlanta.loc"
locator = arcpy.geocoding.Locator(locator_path)
# Generate suggestions from partial user input
suggestion_candidates = locator.suggest("1670 w peach")
# Geocode using one of the suggestions generated as the output of the suggest 
# operation
geocoding_candidates = locator.geocodeWithSuggest(suggestion_candidates[0], False)

Создаются предложения на основе неполной пользовательской строки и выполняется геокодирование с одним из предложений в качестве выходных данных этой операции, чтобы найти местоположение ArcGIS World Geocoding Service.

import arcpy
# Sign in to AGOL
username = "MyAGOLUsername"
password = "MyAGOLPassword"
arcpy.SignInToPortal("https://www.arcgis.com/", username, password)
# Create a new Locator object from the ArcGIS World Geocoding Service
locator_path = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service"
locator = arcpy.geocoding.Locator(locator_path)
# Generate suggestions from partial user input
suggestion_candidates = locator.suggest("1670 w peach")
# Geocode using one of the suggestions generated as the output of the suggest 
# operation
geocoding_candidates = locator.geocodeWithSuggest(suggestion_candidates[0], True)

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

import arcpy
# Create a new Locator object from a locator published to ArcGIS Server locator_path = r"C:\AGS Files\MyAGSConnectionFile.ags\Atlanta"
locator = arcpy.geocoding.Locator(locator_path)
# Generate suggestions from partial user input suggestion_candidates = locator.suggest("1670 w peach")
# Geocode using one of the suggestions generated as the output of the suggest 
# operation geocoding_candidates = locator.geocodeWithSuggest(suggestion_candidates[0], False)
updateLocator ()

Обновите свойства локатора на диске и сохраните изменения.

import arcpy
# Create a new Locator object from a locator on disk
locator_path = r"C:\Locators\Atlanta.loc"
locator = arcpy.geocoding.Locator(locator_path)
# Update the minimum match score property on the locator
locator.minMatchScore = 95
# Persist changes to the .loc file
locator.updateLocator()