Tools for linting 'GeoJSON'. Includes tools for interacting with the online tool < http://geojsonlint.com>, the 'Javascript' library 'geojsonhint' (< https://www.npmjs.com/package/geojsonhint>), and validating against a 'GeoJSON' schema via the 'Javascript' library (< https://www.npmjs.com/package/is-my-json-valid>). Some tools work locally while others require an internet connection.
GeoJSON linters available in geojsonlint
geojson_lint()
geojson_hint()
- currently using geojsonhint
v1.2.1
geojson_validate()
All three functions return the same outputs. If the GeoJSON is valid, they return TRUE
.
If the GeoJSON is invalid, they return FALSE
, plus reason(s) that the GeoJSON is invalid
in an attribute named errors as a data.frame. The fields in the data.frame's are not
the same across functions unfortunately, but they can be easily coerced to combine via
e.g., plyr::rbind.fill
or dplyr::bind_rows
or data.table::rbindlist(fill = TRUE)
The parameters for the three functions are similar, though geojson_validate()
has an
extra parameter greedy
that's not available in the others, and geojson_hint()
has
...
parameter to pass on curl options as it works with a web service.
from CRAN
install.packages("geojsonlint")
Dev version
remotes::install_github("ropensci/geojsonlint")
library("geojsonlint")
geojsonlint.com web service
geojson_lint(x = '{"type": "Point", "coordinates": [-100, 80]}')#> [1] TRUE
geojsonhint JS library
geojson_hint(x = '{"type": "Point", "coordinates": [-100, 80]}')#> [1] TRUE
is-my-json-valid JS library
geojson_validate(x = '{"type": "Point", "coordinates": [-100, 80]}')#> [1] TRUE
geojsonlint.com web service
geojson_lint('{"type": "FooBar"}')#> [1] FALSE
geojsonhint JS library
geojson_hint('{"type": "FooBar"}')#> [1] FALSE
is-my-json-valid JS library
geojson_validate('{ "type": "FeatureCollection" }')#> [1] FALSE
geojsonlint.com web service
geojson_lint('{"type": "FooBar"}', inform = TRUE)#> [1] FALSE#> attr(,"errors")#> message status#> 1 "FooBar" is not a valid GeoJSON type. error
geojsonhint JS library
geojson_hint('{"type": "FooBar"}', inform = TRUE)#> [1] FALSE#> attr(,"errors")#> line message#> 1 1 The type FooBar is unknown
is-my-json-valid JS library
geojson_validate('{ "type": "FeatureCollection" }', inform = TRUE)#> [1] FALSE#> attr(,"errors")#> field message#> 1 data no (or more than one) schemas match
geojsonlint.com web service
geojson_lint('{"type": "FooBar"}', error = TRUE)#> Error: invalid GeoJSON#> - "FooBar" is not a valid GeoJSON type.
geojsonhint JS library
geojson_hint('{"type": "FooBar"}', error = TRUE)#> Error: Line 1#> - The type FooBar is unknown
is-my-json-valid JS library
geojson_validate('{ "type": "FeatureCollection" }', error = TRUE)#> Error: 1 error validating json:#> - data: no (or more than one) schemas match
geojsonlint
in R doing citation(package = 'geojsonlint')
geojsonhint
to v2.1.0
(#11)httr
with crul
(#12)verbose
replaced with inform
throughout the package. take note if you have verbose
parameter in use in any R codegeojsonhint
(v2.0.0-beta2
)
(#9) - see geojsonhint
Changelog for changes to the JS library:
https://github.com/mapbox/geojsonhint/blob/master/CHANGELOG.md