Skip to content

Invalid LineString is not reported and breaks further #118

@ghost

Description

One of our GeoJSON features violates https://tools.ietf.org/html/rfc7946#section-3.1.4:

For type "LineString", the "coordinates" member is an array of two or more positions.

Our feature looks like this:

{
  "type": "Feature",
  "properties": {},
  "geometry": {
    "type": "LineString",
    "coordinates": []
  }
}

We normally generate the coordinates from a list of recorded locations, so if there aren't enough recorded locations, we violate the spec. Similar to this mapbox sample, which also runs into the same issue: https://docs.mapbox.com/mapbox-gl-js/example/animate-a-line/

However, mapbox-gl-js (internally geojson-vt) happily accepts this GeoJSON.

When we run geobuf on this, the generated feature looks like this:

{
  "type": "Feature",
  "properties": {},
  "geometry": {
    "type": "LineString"
  }
}

So the entire coordinates field is removed.

Suddenly mapbox-gl-js (internally geojson-vt) trips on this.
It's assumed to exist here and then accessed during conversion, which leads to errors.

I did not check if a similar issue exists for other types, but I'd assume so.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions