GeoJSON
Документация по GeoJSON.
Сведения о наиболее часто применяемых методах см. в документации по GeoInterfaces.jl и Tables.jl.
#
GeoJSON.GeoJSON
— Module
GeoJSON
Этот пакет во многом вдохновлен и заимствует код из пакета JSONTables.jl, который решает те же задачи для общего формата JSON. GeoJSON помещает геометрию в столбец geometry
и добавляет все свойства в столбцы по отдельности.
Использование
GeoJSON предоставляет только простые методы read
и write
. GeoJSON.read
принимает путь к файлу, строку, поток ввода-вывода или байты.
julia> using GeoJSON, DataFrames
julia> fc = GeoJSON.read("path/to/a.geojson")
FeatureCollection with 171 Features
julia> first(fc)
Feature with geometry type Polygon and properties Symbol[:geometry, :timestamp, :version, :changeset, :user, :uid, :area, :highway, :type, :id]
# используем интерфейс Tables для преобразования формата, извлечения данных или перебора строк
julia> df = DataFrame(fc)
# запись в строку
julia> write(fc)
"{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[-69.99693762899992...
Доступ по HTTP
Чтобы прочитать данные JSON по URL-адресу, используйте HTTP.jl.
julia> using GeoJSON, HTTP
julia> resp = HTTP.get("https://path/to/file.json")
julia> fc = GeoJSON.read(resp.body)
#
GeoJSON.CRS
— Type
CRS(type::String, properties::Dict{String,Any})
Эталонная система координат для совместимости. Ее не следует использовать, так как она не входит в спецификацию GeoJSON. CRS объекта GeoJSON всегда равен WGS84.
#
GeoJSON.Feature
— Type
Feature{D,T}(id::Union{String,Nothing}, bbox::Union{Nothing,Vector{T}}, geometry::Union{Nothing,AbstractGeometry{D,T}}, properties::Union{Nothing,Dict{String,Any}})
Объект Feature с D
-мерной геометрией.
#
GeoJSON.FeatureCollection
— Type
FeatureCollection{D,T}(bbox::Union{Nothing,Vector{T}}, features::Vector{Feature{D,T}}, crs::Union{Nothing,CRS})
Объект FeatureCollection с D
-мерной геометрией признаков.
#
GeoJSON.GeometryCollection
— Type
GeometryCollection{D,T}(geometries::Vector{AbstractGeometry{D,T}})
Геометрия GeometryCollection с D
измерениями.
#
GeoJSON.LazyFeatureCollection
— Type
LazyFeatureCollection{D,T}(bbox::Union{Nothing,Vector{T}}, features::Vector{LazyFeature{D,T}}, crs::Union{Nothing,String})
Объект FeatureCollection с D
-мерной геометрией признаков, которые анализируются из строки GeoJSON в отложенном режиме. При обращении к коллекции по индексу производится анализ признака. Это может быть более эффективно, если вас интересуют только несколько функций из большой коллекции или требуется итеративный анализ очень большой коллекции без ее полной загрузки в память.
#
GeoJSON.LineString
— Type
LineString{D,T}(coordinates::Union{Nothing,Vector{NTuple{D,T}}})
Геометрия LineString с D
измерениями.
#
GeoJSON.MultiLineString
— Type
MultiLineString{D,T}(coordinates::Union{Nothing,Vector{Vector{NTuple{D,T}}}})
Геометрия MultiLineString с D
измерениями.
#
GeoJSON.MultiPoint
— Type
MultiPoint{D,T}(coordinates::Union{Nothing,Vector{NTuple{D,T}}})
Геометрия MultiPoint с D
измерениями.
#
GeoJSON.MultiPolygon
— Type
MultiPolygon{D,T}(coordinates::Union{Nothing,Vector{Vector{Vector{NTuple{D,T}}}}})
Геометрия MultiPolygon с D
измерениями.
#
GeoJSON.Point
— Type
Point{D,T}(coordinates::Union{Nothing,NTuple{D,T}})
Геометрия Point с D
измерениями.
#
GeoJSON.Polygon
— Type
Polygon{D,T}(coordinates::Union{Nothing,Vector{Vector{NTuple{D,T}}}})
Геометрия Polygon с D
измерениями.
#
GeoJSON.read
— Method
GeoJSON.read(json; lazyfc=false, ndim=2, numbertype=Float32)
Считывает данные GeoJSON в объект, совместимый с GeoInterface.jl.
Аргументы
-
json
: путь к файлу, строка, поток ввода-вывода или байты (AbstractVector{UInt8
) со считываемыми данными JSON. -
lazyfc::Bool=false
: при считывании очень больших коллекций признаков (более 1 млн)
задайте lazyfc=true
, чтобы они анализировались с передачей в память только при обращении к ним.
-
ndim::Int=2
: используйте значение 3 для трехмерных геометрий; оно также применяется в случае сбоя двухмерного анализа. -
numbertype::DataType=Float32
: если требуется точность, используйте Float64.
#
GeoJSON.write
— Method
write([io], geometry)
Записывает совместимый с GeoInterface.jl признак или геометрию в объект String
GeoJSON.
io
может быть строкой String
с именем файла или объектом IO
.