Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GeoJSONs cannot be read when the properties are ordered differently than expected #227

Open
henleo opened this issue Jan 11, 2023 · 2 comments
Labels

Comments

@henleo
Copy link

henleo commented Jan 11, 2023

For example, reading this GeoJSON results in a NullPointerException:
{"coordinates":[[[1,0.01],[1,-0.01],[2,-0.02],[3,-0.01],[3,0.01],[1,0.01]]],"type":"Polygon"}

This might not be desirable behaviour, since JSON objects are unordered collections afaik and some JSON parsers do not preserve the order of the properties when serializing/deserializing, but instead order them alphabetically, for example.

It also sounds like this is not intended by the standard (https://www.rfc-editor.org/rfc/rfc7946#section-1.2):
"The ordering of the members of any JSON object defined in this
document MUST be considered irrelevant, as specified by [RFC7159]."

@dsmiley
Copy link
Contributor

dsmiley commented Jan 13, 2023

Can you share the NPE stack trace please?
At least Spatial4J has multiple options for GeoJSON reading. I recall JTS has one as well, and off the top of my head I think it's exposed as a first class thing in Spatial4J. I'm certain there is a WKT option at least (not helpful to you I know).

@dsmiley dsmiley added the bug label Jan 13, 2023
@henleo
Copy link
Author

henleo commented Jan 14, 2023

java.lang.NullPointerException
at org.locationtech.spatial4j.io.GeoJSONReader.readShapeFromCoordinates(GeoJSONReader.java:300)
at org.locationtech.spatial4j.io.GeoJSONReader.readShape(GeoJSONReader.java:248)
at org.locationtech.spatial4j.io.GeoJSONReader.read(GeoJSONReader.java:48)
at org.locationtech.spatial4j.io.GeoJSONReader.read(GeoJSONReader.java:54)
at com.example.App.main(App.java:29)

No worries, I just ordered my JSONs. Just thought you might want to know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants