Краткая информация
Конвертирует Esri JSON или GeoJSON в объекты геометрии ArcPy или в объекты набора объектов. GeoJSON – это обменный формат геопространственных данных для кодирования структур географических данных.
Описание
Синтаксис
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 в пространственные объекты (JSON to Features), чтобы конвертировать Esri JSON напрямую в класс пространственных объектов. |
Пример кода
AsShape пример 1
Создает объект PointGeometry с помощью объекта GeoJSON.
import arcpy
geojson_point = {
"type": "Point",
"coordinates": [5.0, 5.0]}
point = arcpy.AsShape(geojson_point)
AsShape пример 2
Создает объект 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)
AsShape пример 3
Создает объект Multipoint с помощью объекта GeoJSON.
import arcpy
geojson_multipoint = {
"type": "MultiPoint",
"coordinates": [[5.0, 4.0], [8.0, 7.0]]}
multipoint = arcpy.AsShape(geojson_multipoint)
AsShape пример 4
Создает объект 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)
AsShape пример 5
Создает объект Polyline с помощью объекта GeoJSON.
import arcpy
geojson_linestring = {
"type": "LineString",
"coordinates": [[5.0, 4.0], [8.0, 7.0]]}
polyline = arcpy.AsShape(geojson_linestring)
AsShape пример 6
Создает объект 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)
AsShape пример 7
Создает составной объект 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)
AsShape пример 8
Создает объект 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)
AsShape пример 9
Создает объект 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)