vectorpipe
vectorpipe copied to clipboard
Convert Vector data to VectorTiles with GeoTrellis.
# Overview This PR updates the scala version to 2.12 and any required dependencies to enable this upgrade. ## Checklist - [x] Add entry to CHANGELOG.md
There is a bug in `ChangesetSource` here: https://github.com/geotrellis/vectorpipe/blob/v2.2.0/src/main/scala/vectorpipe/sources/ChangesetSource.scala#L79 This line should not access `state.yaml` directly, but instead should use the provided filename. This prevents us from using the `###.state.txt` files...
The recent addition of `RobustFeature` (in #147 and #148) permitted `AugmentedDiffSource` to properly handle streams containing bad geometries. This does not, however, permit features with bad data fields. See [this...
The official conversion at https://wiki.openstreetmap.org/wiki/Overpass_API/Augmented_Diffs#Time_slices_and_numbering uses the epoch offset of `1347432960` and the sequence id refers to the timestamp at the end of the minute. Vectorpipe defines its conversion as...
Initially, this would entail a split to `core` and `examples` and was attempted in #93 which provides some prior art but is out of date. Probably more pressing if we...
This task is blocked until GeoMesa publishes a 2.12-compatible release.
After processing OSM or other inputs into a DataFrame of JTS geometry and added attributes, we may find it useful to produce line-delimited GeoJSON output. Some workflows will prefer this...
Pursuant to the conversation [here](https://github.com/azavea/osmesa/pull/157#discussion_r309825010), there are two different ways to name the fields provided by a changeset source. The streaming source (accessed by `spark.read.format(Source.Changesets)`) uses snake case for its...
It may make sense to supply a default location for changeset replications to point at `https://planet.osm.org/replication/changesets` to avoid duplicating this value in many client applications. Similarly, `https://planet.osm.org/replication/minute/` could be used...
Right now, boilerplate looks like: ```scala def isForest(tags: Column): Column = array_contains(splitDelimitedValues(tags.getItem("landuse")), "forest") as 'isForest ``` Let's see if we can fold up the `array_contains` and `splitDelimitedValues` to avoid mistakes...