Краткая информация
Класс Locator позволяет изменять локаторы и использовать их для геокодирования. Геокодирование - это процесс, преобразующий описание местоположения (например, координаты, адрес или название места) в местоположение на поверхности Земли.
Модуль Geocoding был разработан для поддержки локаторов, созданных инструментом Создать локатор. У локаторов, созданных устаревшими инструментами, может оказаться ограниченный функционал, и они не будут поддерживать ряд свойств и параметров.
Обсуждение
Локатор - это переносимый файл, который используется для выполнения геокодирования, то есть процесса поиска адресов и мест на карте. Локаторы содержат снимок базовых данных, которые используются для геокодирования, а также индексы и знание локальных адресов, которые помогают вернуть наилучший результат в процессе геокодирования.
С локатором можно работать как с сервисом на вашем портале, например, ArcGIS World Geocoding Service, сервисом, работающем через подключение AGS к серверу или как с расположенном на диске файлом.
Синтаксис
Locator (path)
Параметр | Описание | Тип данных |
path | A path to the locator. | String |
Примечание:
Если вы работаете с локаторами на своем портале, убедитесь, что выполнили вход и задали его в качестве активного в ArcGIS Pro. Для доступа к локатору, расположенному на портале, отличном от активного, можно выполнить аутентификацию через SignInToPortal.Создает объект 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
# 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
# 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. Доступны следующие возможности:
Это свойство поддерживается только сервисами геокодирования. Оно не поддерживается локальными локаторами, и при попытке его вызова для локального локатора будет возвращена ошибка. | String |
categories (чтение и запись) | Управляет точностью, ограничивая категории, которые могут быть возвращены локатором в набор. Если ваш мультиролевой локатор поддерживает несколько типов адресов, можно изменить этот параметр, чтобы исключить совпадения с определенными типами. Например, ваш локатор может поддерживать соответствия уровней Адрес точки, Улица и номер дома, Название улицы и Почтовый адрес. Вы можете исключить совпадения с уровнем Почтовый адрес, так как считаете их слишком неточными для своих целей. Этот параметр позволяет контролировать точность геокодирования. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является только средством runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | String |
defaultSuggestCandidates (чтение и запись) | Число предполагаемых кандидатов, возвращаемых по умолчанию методом suggest. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является только свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | Integer |
matchOutOfRange (чтение и запись) | Определяет, будет ли возвращаться совпадение, если искомый номер дома по улице немного выходит за пределы диапазона, содержащегося в сегменте данных, для которых был построен локатор. Если вы хотите сопоставить сегмент улицы, даже если номер улицы не существует на сегменте линии в ваших данных, но находится в пределах пороговых значений и скорее всего он есть, задайте для этого свойства значение True. Если для этого свойства установлено True, точка помещается в конец сегмента улицы, адрес по которой находится немного за пределами диапазона номеров домов. Это гарантирует, что вы не пропустите потенциальное совпадение из-за того, что данные не на 100 процентов актуальны. Свойство matchOutOfRange применяется только к локаторам, которые поддерживают и возвращают совпадения StreetAddress. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является только свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | Boolean |
maxCandidates (чтение и запись) | Максимальное число кандидатов, возвращаемых методом geocode. Если вы обнаружите, что геокодирование занимает много времени, и при этом вы также получаете высококачественные совпадения, убедитесь, что для этого свойства не выбрано слишком большое значение. Если вы получаете хорошие результаты, производительность может быть улучшена за счет получения меньшего количества результатов и фокусирования только на нескольких лучших. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | Integer |
maxSuggestCandidates (чтение и запись) | Максимальное число кандидатов, возвращаемых методом suggest. Если вы увидите, что метод suggest работает слишком медленно, это может быть вызвано тем, что локатор создает слишком большое число предложений. Чтобы ускорить работу, уменьшите это значение. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | Integer |
minCandidateScore (чтение и запись) | Минимальный балл, который должен быть у результата, чтобы он считался подходящим кандидатом для операции geocode. Минимальный балл кандидата для локатора - это значение между 0 и 100. Только кандидаты, превышающие минимальный балл для кандидата, возвращаются методом geocode. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | Integer |
minMatchScore (чтение и запись) | Минимальный балл, который должен быть у результата метода geocode, чтобы он считался подходящим. Минимальный балл - это порог, позволяющий контролировать, насколько близко адрес должен соответствовать наиболее вероятному кандидату в базовых данных, чтобы этот кандидат считался подходящим. Если потенциальный кандидат находится ниже порогового значения, адрес не сопоставляется с кандидатом. Минимальное количество очков для совпадения может быть от 0 до 100. Наилучшее совпадение эквивалентно 100 баллам. Если вашим рабочим процессам требуются совпадающие адреса с высоким уровнем достоверности, установите для этого свойства более высокий порог. Более высокое значение гарантирует, что будут возвращены только совпадения самого высокого качества. Если вы хотите увеличить число адресов для сопоставления и при этом не придаете большого значения тому факту, что некоторые из адресов, возможно, могут быть сопоставлены некорректно, тогда вы можете использовать меньшее значение порога. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | Integer |
multilineInputFields (только чтение) | Поля локатора для многострочного геокодирования. Это свойство возвращает список объектов arcpy.Field для нескольких входных многострочных полей локатора. При геокодировании таблицы многострочные поля таблиц геокодирования могут сопоставляться с объектом Field по свойству name. | Field |
numberOfThreads (чтение и запись) | Число ветвей пакетного геокодирования. Чтобы наилучшим образом использовать эту настройку, необходимо оценить компьютер, который вы будете использовать для геокодирования, и определить количество ядер процессора, доступных на вашем компьютере для выполнения геокодирования. Геокодирование может задействовать все ядра процессора для более быстрого выполнения задания геокодирования. По умолчанию эта настройка имеет меньшее значение, что позволяет выполнять геокодирование на любом компьютере независимо от количества доступных ядер. Но вы можете задать большее количество используемых ядер, если известно, что они доступны. Вы можете задать Auto для обнаружения ядер на компьютере и оптимизацию для вашего компьютера числа потоков. Или у вас есть возможность выделить определенное количество ядер для геокодирования, если вы знаете, что необходимо оставить ресурсы для других приложений. Если вы планируете предоставить общий доступ к локатору в ArcGIS Enterprise, рекомендуется установить для этого свойства значение 4. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | Integer |
singleLineInputField (только чтение) | Поле локатора для однострочного геокодирования. Это свойство возвращает объект arcpy.Field, представляющий входное поле для локатора однострочного геокодирования. При геокодировании таблицы однострочное поле таблицы геокодирования может сопоставляться для объекта Field со свойством name. | Field |
spatialReference (только чтение) | Пространственная привязка локатора. Пространственная привязка будет совпадать с привязкой данных, используемых для создания локатора. Примечание:Это свойство является свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | String |
supportedCountries (только чтение) | Страны, поддерживаемые локатором. Примечание:Это свойство является свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | String |
supportedRoles (только чтение) | Роли, поддерживаемые локатором. | String |
reverseGeocodeFeatureTypes (чтение и запись) | Типы объектов, поддерживаемые методом reverseGeocode. Это свойство для сервисов геокодирования работает в режиме «только для чтения». Чтобы изменить это свойство в опубликованном локаторе, измените его локально и снова опубликуйте свой локатор. Примечание:Это свойство является свойством среды runtime. Оно не сохраняется в локаторе вне вашего текущего сеанса, если вы не используете метод updateLocator. | 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})
Параметр | Описание | Тип данных |
searchText | An address or place-name to find the location of. | String |
forStorage | Specifies whether the results will be persisted. The default value is False, which indicates the results can't be stored, but they can be temporarily displayed on a map, for instance. If you store the results, in a database, for example, set this parameter to True. This parameter only applies to geocoding requests made with ArcGIS World Geocoding Service. For all other locators, the parameter is ignored. Примечание:Applications are contractually prohibited from storing the results of geocoding operations using ArcGIS World Geocoding Service unless they make the request by passing the forStorage parameter with a value of True. For a Locator using ArcGIS World Geocoding Service to be valid, you must log in to ArcGIS Online with a valid organizational account. ArcGIS Online service credits are deducted from the organizational account for each geocode transaction. | Boolean |
preferredSearchLocation | An origin point that is used to prefer or boost geocoding candidates based on their proximity to the location. Candidates near the location are prioritized relative to those farther away. | PointGeometry |
countryCode | A comma-delimited string of three-character country codes that limits geocoding results to the set of specified countries, which will improve the accuracy of geocoding in most cases. When no country is specified, geocoding with suggestions is performed against all countries supported by the locator. If you are using ArcGIS World Geocoding Service, refer to this list of supported countries. | String |
categories | A comma-separated list of categories that limits the types of places the locator searches, thus eliminating false positive matches and potentially speeding up the search process. See the REST API web help for details about category filtering. | String |
locationType | Specifies the preferred output location forPointAddress matches. If the preferred location does not exist in the data, the default location will be returned instead. For geocode results with Addr_type=PointAddress, the x,y attribute values describe the coordinates of the address along the street, while the DisplayX and DisplayY values describe the rooftop, or building centroid, coordinates. This argument only affects the geometry, not the attribute values.
| String |
outFields | The list of fields to be returned as part of the attributes in the result. This parameter supports a single field name or a comma-delimited string of field names (without spaces). To return the default output fields, outFields does not need to be passed. Use an asterisk ("*") to return all available output fields with the result. The output fields are described in What's included in the geocoded results. Примечание:This property is not supported for locators on disk. | String |
maxResults | The maximum number of locations, up to the maximum number allowed by the Locator. If not specified, all matching candidates up to the maximum specified in the Locator properties are returned. | Integer |
minScore | Limits the candidates that are returned to those with a score above the value set for this property. The value should be between 0 and 100. | Integer |
outputLanguageCode | The language in which the geocode results are returned. Since addresses and places in many countries are available in more than one language, this ensures that results are returned in the expected language. If you are using ArcGIS World Geocoding Service, refer to the list of supported countries to see what language codes are supported for those countries. | String |
searchExtent | An extent that limits the area to be searched. All results that are returned outside of the specified extent are excluded. | Extent |
Тип данных | Описание |
List | Выходными данными операции geocode является список объектов-словарей. Каждый объект-словарь соответствует одному результату геокодирования. Каждый результат геокодирования содержит информацию о совпавшем адресе или месте, информацию о геометрии, в том числе координаты x и y и дополнительные атрибуты в соответствии с используемым Locator и параметром outFields. |
Примечание:
Если вы работаете с локаторами на своем портале, убедитесь, что выполнили вход и задали его в качестве активного в ArcGIS Pro. Для доступа к локатору, расположенному на портале, отличном от активного, можно выполнить аутентификацию через SignInToPortal.Выполняется геокодирование для поиска расположения места или адреса с помощью локатора на диске.
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
# 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})
Параметр | Описание | Тип данных |
location | A point for which you want to find the nearest address, point of interest, or intersection. | PointGeometry |
forStorage | Specifies whether the results will be persisted. The default value is False, which indicates the results can't be stored, but they can be temporarily displayed on a map, for instance. If you store the results, in a database, for example, set this parameter to True. This parameter only applies to geocoding requests made with ArcGIS World Geocoding Service. For all other locators, the parameter is ignored. Примечание:Applications are contractually prohibited from storing the results of geocoding operations using ArcGIS World Geocoding Service unless they make the request by passing the forStorage parameter with a value of True. For a Locator using ArcGIS World Geocoding Service to be valid, you must log in to ArcGIS Online with a valid organizational account. ArcGIS Online service credits are deducted from the organizational account for each geocode transaction that includes the forStorage parameter with a value of True. (Значение по умолчанию — False) | Boolean |
featureTypes | Specify one or more match types to be returned. If only one value is specified, the search tolerance is adjusted. For more information on how this argument is used in ArcGIS World Geocoding Service, refer to the REST API documentation. | String |
locationType | Specifies the preferred output location. If the preferred location does not exist in the data, the default location will be returned instead. For reverse geocoding results with Addr_type=PointAddress, the x,y attribute values describe the coordinates of the address along the street, while the DisplayX and DisplayY values describe the rooftop, or building centroid, coordinates. For more information about this parameter, reference the information on the parameter in the Reverse Geocode REST API documentation. This argument only affects the geometry, not the attribute values.
| String |
outputLanguageCode | The language in which the reverse geocode results are returned. Since addresses and places in many countries are available in more than one language, this will ensure that results are returned in the expected language. If you are using ArcGIS World Geocoding Service, refer to the list of supported countries to see what language codes are supported for those countries. | String |
Тип данных | Описание |
List | Результат обратного геокодирования содержит информацию о соответствующем адресе или местоположении, геометрическую информацию, включая координаты x и y, а также дополнительные атрибуты в зависимости от используемого Locator, а также ключа Shape, для которого значение является объектом PointGeometry. |
Примечание:
Если вы работаете с локаторами на своем портале, убедитесь, что выполнили вход и задали его в качестве активного в ArcGIS Pro. Для доступа к локатору, расположенному на портале, отличном от активного, можно выполнить аутентификацию через SignInToPortal.Обратное геокодирование для поиска ближайшего места или адреса к заданному местоположению с помощью локатора на диске.
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
# 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})
Параметр | Описание | Тип данных |
searchText | The partial text for which you want to generate suggestions. | String |
preferredSearchLocation | An origin point that is used to prefer or boost suggestion candidates based on their proximity to the location. Candidates near the location are prioritized relative to those farther away. | PointGeometry |
countryCode | A comma-delimited string of three-character country codes that limits suggestion results to the set of specified countries, which will improve the accuracy of suggestions in most cases. When no country is specified, suggestions are generated from all countries supported by the locator. If you are using ArcGIS World Geocoding Service, refer to the list of supported countries in Geocode coverage. | String |
categories | A comma-separated list of categories that limits the types of places for which the locator generates suggestions, thus eliminating false positive matches and potentially speeding up the process. See the REST API web help for details about category filtering. | String |
maxResults | The maximum number of suggestions to be returned, up to the maximum number allowed by the Locator. If not specified, all matching suggestions up to the maximum specified in the Locator maxSuggestCandidates property are returned. | Integer |
searchExtent | An extent that limits the area to be searched. All results that are returned outside of the specified extent are excluded. | Extent |
Тип данных | Описание |
List | Выходные данные метода suggest представляют собой массив объектов словаря. Каждый словарь представляет собой отдельный результат предположения. Каждый результат предположения содержит следующие ключи: text, magicKey и isCollection. Чтобы использовать выходные данные метода suggest, в метод geocodeWithSuggest должен быть перенесен весь словарь с желаемым индексом списка. Примечание:Для получения дополнительных сведений о ключах словаря см. документацию REST API. |
Примечание:
Если вы работаете с локаторами на своем портале, убедитесь, что выполнили вход и задали его в качестве активного в ArcGIS Pro. Для доступа к локатору, расположенному на портале, отличном от активного, можно выполнить аутентификацию через SignInToPortal.Создайте предположения на основе неполной строки ввода пользователем с помощью локатора на диске.
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
# 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})
Параметр | Описание | Тип данных |
suggestResult | The output from the suggest method is used to locate an address or place. The suggestion result is a dictionary that contains text, magicKey, and isCollection keys. To learn more about the keys included in the suggestion result dictionary objects, refer to the REST API documentation. | Dictionary |
forStorage | Specifies whether the results will be persisted. The default value is False, which indicates the results of the operation can't be stored, but they can be temporarily displayed on a map, for instance. If you store the results, in a database, for example, set this parameter to True. This parameter only applies to geocoding requests made with ArcGIS World Geocoding Service. For all other locators, the parameter is ignored. Applications are contractually prohibited from storing the results of geocoding operations using ArcGIS World Geocoding Service unless they make the request by passing the forStorage parameter with a value of True. For a Locator using ArcGIS World Geocoding Service to be valid, you must log in to ArcGIS Online with a valid organizational account. ArcGIS Online service credits are deducted from the organizational account for each geocode transaction that stores results. | Boolean |
preferredSearchLocation | An origin point that is used to prefer or boost geocoding candidates based on their proximity to the location. Candidates near the location are prioritized relative to those farther away. | PointGeometry |
countryCode | A comma-delimited string of three-character country codes that limits geocoding results to the set of specified countries, which will improve the accuracy of geocoding in most cases. When no country is specified, geocoding with suggestions is performed against all supported countries of the locator. If you are using ArcGIS World Geocoding Service, refer to this list of supported countries. | String |
categories | A comma-separated list of categories that limits the types of places the locator searches, thus eliminating false positive matches and potentially speeding up the search process. See the REST API web help for details about category filtering. | String |
locationType | Specifies the preferred output geometry forPointAddress matches. If the preferred location does not exist in the data, the default location will be returned instead. For geocode results with Addr_type=PointAddress, the x,y attribute values describe the coordinates of the address along the street, while the DisplayX and DisplayY values describe the rooftop, or building centroid, coordinates. This argument only affects the geometry, not the attribute values.
| String |
outFields | The list of fields to be returned as part of the attributes in the result. This parameter supports a single field name or a comma-delimited string of field names (without spaces). To return the default output fields, outFields does not need to be passed. Use an asterisk ("*") to return all available output fields with the result. The output fields are described in What's included in the geocoded results. Примечание:This property is not supported for locators on disk. | String |
maxResults | The maximum number of locations, up to the maximum number allowed by the Locator. If not specified, all matching candidates up to the maximum specified by the maxCandidate property in the Locator properties are returned. | Integer |
minScore | Limits the candidates that are returned to those with a score above the value set for this property. The value should be between 0 and 100. | Integer |
outputLanguageCode | The language in which the geocode results are returned. Since addresses and places in many countries are available in more than one language, this will ensure that results are returned in the expected language. If you are using ArcGIS World Geocoding Service, refer to the list of supported countries to see what language codes are supported for those countries. | String |
searchExtent | An extent that limits the area to be searched. All results that are returned outside of the specified extent are excluded. | Extent |
Тип данных | Описание |
List |
Выходными данными метода geocodeWithSuggest является список объектов-словарей. Каждый словарь соответствует одному результату геокодирования. Каждый результат геокодирования содержит информацию о совпавшем адресе или месте, информацию о геометрии, в том числе координаты x и y и дополнительные атрибуты в соответствии с используемым Locator и параметром outFields. |
Примечание:
Если вы работаете с локаторами на своем портале, убедитесь, что выполнили вход и задали его в качестве активного в ArcGIS Pro. Для доступа к локатору, расположенному на портале, отличном от активного, можно выполнить аутентификацию через SignInToPortal.Создаются предложения на основе неполной пользовательской строки и выполняется геокодирование с одним из предложений в качестве выходных данных этой операции, чтобы найти местоположение расположенным на диске локатором.
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
# 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()