Краткая информация
Функция AsShape конвертирует геометрию Esri JSON или GeoJSON в геометрию ArcPy, а наборы объектов Esri JSON в наборы объектов ArcPy. GeoJSON – это обменный формат геопространственных данных для кодирования структур географических данных.
Обсуждение
Пространственной привязкой для объекта геометрии, созданного из GeoJSON, будет WGS84.
Примечание:
Объекты геометрии имеют свойство JSON, которое возвратит геометрию Esri JSON.
Синтаксис
AsShape (geojson_struct, {esri_json})| Параметр | Описание | Тип данных |
geojson_struct | The geojson_struct includes type and coordinates. The following strings are included for type: Point, LineString, Polygon, MultiPoint, and MultiLineString. | Dictionary |
esri_json | Specifies whether the input JSON is evaluated as Esri JSON or GeoJSON. If True, the input is evaluated as Esri JSON. (Значение по умолчанию — False) | Boolean |
| Тип данных | Описание |
| Geometry | Возвращает объект геометрии (PointGeometry, Multipoint, Polyline или Polygon) на базе входного объекта GeoJSON или Esri JSON. Если Esri JSON является набором объектов, то AsShape возвратит FeatureSet. Спецификация ArcGIS REST API определяет набор объектов как коллекцию объектов с определенным типом геометрии, полями и пространственной привязкой. Можно использовать инструмент JSON в пространственные объекты, чтобы конвертировать Esri JSON напрямую в класс пространственных объектов. |
Пример кода
Создает объект PointGeometry с помощью объекта GeoJSON.
import arcpy
geojson_point = {
"type": "Point",
"coordinates": [5.0, 5.0]}
point = arcpy.AsShape(geojson_point)Создает объект PointGeometry с помощью объекта Esri JSON.
import arcpy
esri_json = {
"x": -122.65,
"y": 45.53,
"spatialReference": {
"wkid": 4326}}
# Set the second parameter to True to evaluate as Esri JSON
point = arcpy.AsShape(esri_json, True)Создает объект Multipoint с помощью объекта GeoJSON.
import arcpy
geojson_multipoint = {
"type": "MultiPoint",
"coordinates": [[5.0, 4.0], [8.0, 7.0]]}
multipoint = arcpy.AsShape(geojson_multipoint)Создает объект Multipoint с помощью объекта Esri JSON.
import arcpy
esri_json = {
"points" : [
[-97.06138, 32.837],
[-97.06133, 32.836],
[-97.06124, 32.834],
[-97.06127, 32.832]],
"spatialReference" : {"wkid" : 4326}}
# Set the second parameter to True to evaluate as Esri JSON
multipoint = arcpy.AsShape(esri_json, True)Создает объект Polyline с помощью объекта GeoJSON.
import arcpy
geojson_linestring = {
"type": "LineString",
"coordinates": [[5.0, 4.0], [8.0, 7.0]]}
polyline = arcpy.AsShape(geojson_linestring)Создает объект Polyline с помощью объекта Esri JSON.
import arcpy
esri_json = {
"paths" : [
[[-97.08, 32.8], [-97.05, 32.6], [-97.06, 32.7],
[-97.07, 32.6]],
[[-97.4, 32.5], [-97.2, 32.75]]],
"spatialReference" : {"wkid" : 4326}}
# Set the second parameter to True to evaluate as Esri JSON
polyline = arcpy.AsShape(esri_json, True)Создает составной объект Polyline с помощью объекта GeoJSON.
import arcpy
geojson_multilinestring = {
"type": "MultiLineString",
"coordinates": [
[[5.0, 4.0], [8.0, 7.0]],
[[4.0, 5.0], [7.0, 8.0]]]}
polyline = arcpy.AsShape(geojson_multilinestring)Создает объект Polygon с помощью объекта GeoJSON.
import arcpy
geojson_polygon = {
"type": "Polygon",
"coordinates": [
[[10.0, 0.0], [20.0, 0.0], [20.0, 10.0], [10.0, 10.0],
[10.0, 0.0]]]}
polygon = arcpy.AsShape(geojson_polygon)Создает объект Polygon с отверстием с помощью объекта GeoJSON.
import arcpy
geojson_polygon = {
"type": "Polygon",
"coordinates": [
[[10.0, 0.0], [20.0, 0.0], [20.0, 10.0], [10.0, 10.0],
[10.0, 0.0]],
[[12.0, 2.0], [18.0, 2.0], [18.0, 8.0], [12.0, 8.0],
[12.0, 2.0]]]}
polygon = arcpy.AsShape(geojson_polygon)