Краткая информация
Конвертирует геометрию Esri JSON или GeoJSON в геометрию ArcPy, а наборы объектов Esri JSON в наборы объектов ArcPy. GeoJSON – это обменный формат геопространственных данных для кодирования структур географических данных.
Обсуждение
Пространственной привязкой для объекта геометрии, созданного из GeoJSON, будет WGS 1984.
Синтаксис
AsShape (geojson_struct, {esri_json})
Параметр | Описание | Тип данных |
geojson_struct | geojson_struct включает type и coordinates. Следующие строки включены для type: Point, LineString, Polygon, MultiPoint и MultiLineString. | Dictionary |
esri_json | Задает, является ли входной JSON Esri JSON или GeoJSON. Если True, входные данные оцениваются как Esri JSON. (Значение по умолчанию — False) | Boolean |
Тип данных | Описание |
Geometry | AsShape возвращает объект геометрии (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 use an 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 use an 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 use an 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 with a hole (полигон с отверстием) с помощью объекта 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)