Name: geojson
Owner: rOpenSci
Description: GeoJSON classes for R
Created: 2016-04-01 17:36:59.0
Updated: 2017-11-09 01:08:12.0
Pushed: 2018-01-05 19:27:23.0
Size: 1102
Language: R
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
geojson
aims to deal only with geojson data, without requiring any of the
sp
/rgdal
/rgeos
stack. That means this package is light weight.
We've defined classes (S3
) following the GeoJSON spec. These
classes sort of overlap with sp
's classes, but not really. There's also some
overlap in GeoJSON classes with Well-Known Text (WKT) classes, but GeoJSON has a
subset of WKT's classes.
The package geoops supports manipulations on the classes defined in this package. This package is used within geojsonio to make some tasks easier.
Stable CRAN version
all.packages("geojson")
Dev version
ools::install_github("ropensci/geojson")
ary("geojson")
Essentially a character string with S3 class geojson
attached to make it
easy to perform operations on
"{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[-99.74,32.45]},\"properties\":{}}]}"
eojson(x)
geojson>
type: FeatureCollection
bounding box: 99.74 32.45 99.74 32.45
features (n): 1
features (geometry / length):
Point / 2
'{
pe": "GeometryCollection",
ometries": [
"type": "Point",
"coordinates": [100.0, 0.0]
,
"type": "LineString",
"coordinates": [ [101.0, 0.0], [102.0, 1.0] ]
- geometrycollection(x))
GeometryCollection>
geometries (n): 2
geometries (geometry / length):
Point / 2
LineString / 2
get the string
]]
1] "{\n \"type\": \"GeometryCollection\",\n \"geometries\": [\n {\n \"type\": \"Point\",\n \"coordinates\": [100.0, 0.0]\n },\n {\n \"type\": \"LineString\",\n \"coordinates\": [ [101.0, 0.0], [102.0, 1.0] ]\n }\n ]\n}"
get the type
type(y)
1] "GeometryCollection"
pretty print the geojson
pretty(y)
"type": "GeometryCollection",
"geometries": [
{
"type": "Point",
"coordinates": [
100.0,
0.0
]
},
{
"type": "LineString",
"coordinates": [
[
101.0,
0.0
],
[
102.0,
1.0
]
]
}
]
write to disk
write(y, f <- tempfile(fileext = ".geojson"))
lite::fromJSON(f, FALSE)
type
1] "GeometryCollection"
geometries
geometries[[1]]
geometries[[1]]$type
1] "Point"
geometries[[1]]$coordinates
geometries[[1]]$coordinates[[1]]
1] 100
geometries[[1]]$coordinates[[2]]
1] 0
geometries[[2]]
geometries[[2]]$type
1] "LineString"
geometries[[2]]$coordinates
geometries[[2]]$coordinates[[1]]
geometries[[2]]$coordinates[[1]][[1]]
1] 101
geometries[[2]]$coordinates[[1]][[2]]
1] 0
geometries[[2]]$coordinates[[2]]
geometries[[2]]$coordinates[[2]][[1]]
1] 102
geometries[[2]]$coordinates[[2]][[2]]
1] 1
Add properties
'{ "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ]}'
<- linestring(x) %>% feature() %>% properties_add(population = 1000)
Feature>
type: LineString
coordinates: [[100,0],[101,1]]
Get a property
erties_get(res, property = 'population')
000
Add crs
<- '{
ype": "name",
roperties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
x %>% feature() %>% crs_add(crs)
"type": "Feature",
"properties": {
},
"geometry": {
"type": "LineString",
"coordinates": [
[
100,
0
],
[
101,
1
]
]
},
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
}
Get crs
get(z)
type
1] "name"
properties
properties$name
1] "urn:ogc:def:crs:OGC:1.3:CRS84"
Add bbox
- x %>% feature() %>% bbox_add()
"type": "Feature",
"properties": {
},
"geometry": {
"type": "LineString",
"coordinates": [
[
100,
0
],
[
101,
1
]
]
},
"bbox": [
100,
0,
101,
1
]
Get bbox
_get(tt)
1] 100 0 101 1
'{ "type": "Point", "coordinates": [100.0, 0.0] }'
<- point(x))
Point>
coordinates: [100,0]
ary("tibble")
_frame(a = 1:5, b = list(pt))
A tibble: 5 x 2
a b
<int> <list>
1 <S3: geopoint>
2 <S3: geopoint>
3 <S3: geopoint>
4 <S3: geopoint>
5 <S3: geopoint>
'{ "type": "MultiLineString",
oordinates": [ [ [100.0, 0.0], [101.0, 1.0] ], [ [102.0, 2.0], [103.0, 3.0] ] ] }'
<- multilinestring(x))
MultiLineString>
no. lines: 2
no. nodes / line: 2, 2
coordinates: [[[100,0],[101,1]],[[102,2],[103,3]]]
_frame(a = 1:5, b = list(mls))
A tibble: 5 x 2
a b
<int> <list>
1 <S3: geomultilinestring>
2 <S3: geomultilinestring>
3 <S3: geomultilinestring>
4 <S3: geomultilinestring>
5 <S3: geomultilinestring>
_frame(a = 1:5, b = list(pt), c = list(mls))
A tibble: 5 x 3
a b c
<int> <list> <list>
1 <S3: geopoint> <S3: geomultilinestring>
2 <S3: geopoint> <S3: geomultilinestring>
3 <S3: geopoint> <S3: geomultilinestring>
4 <S3: geopoint> <S3: geomultilinestring>
5 <S3: geopoint> <S3: geomultilinestring>
geojson
in R doing citation(package = 'geojson')