Read GeoJSON files using JSON3.jl, and provide the Tables.jl interface.
This package is heavily inspired by, and borrows code from, JSONTables.jl, which
does the same thing for the general JSON format. GeoJSON puts the geometry in a geometry
column, and adds all
properties in the columns individually.
GeoJSON only provides simple read
and write
methods.
GeoJSON.read
takes a file path, string, IO, or bytes.
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]
# use the Tables interface to convert the format, extract data, or iterate over the rows
julia> df = DataFrame(fc)
# write to string
julia> write(fc)
"{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[-69.99693762899992...
To read JSON from a URL, use HTTP.jl
julia> using GeoJSON, HTTP
julia> resp = HTTP.get("https://path/to/file.json")
julia> fc = GeoJSON.read(resp.body)