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

Sketch - Upload features CRS Requirement #727

Open
chughes-lincoln opened this issue Apr 7, 2022 · 1 comment
Open

Sketch - Upload features CRS Requirement #727

chughes-lincoln opened this issue Apr 7, 2022 · 1 comment

Comments

@chughes-lincoln
Copy link
Contributor

For uploading features for a sketch from a file, is the file required to be in 4326?
When I try to upload a GeoJSON with my local CRS or 3857, I get an
error saying there were invalid features found. If I reproject the data
to 4326, the file uploads successfully.

If there is a CRS requirement it would probably be helpful to add that information
to the Upload Features dialog.

@klassenjs
Copy link
Member

GeoJSON (and KML) is always EPSG:4326 [1,2]. I'm +1 on adding that as a note to the docs.

[1] https://datatracker.ietf.org/doc/html/rfc7946#section-4
[2] https://gdal.org/drivers/vector/kml.html#kml-keyhole-markup-language

Rant:

No, I don't agree with the committee decision to punt just because CRSes are hard. CRS transformation is not a lossless operation. Aside from rounding errors, it also often breaks topology, and changes the ground path that lines and curves follow between the points/vertices. To fix this either requires knowing the exact transformation steps so it can be exactly reversed, or introducing new vertices to limit the error to an acceptable level. Neither of these options are very appealing. This means that GeoJSON is fundamentally not usable in a standard compliant way in situations where the source data is not already in EPSG:4326 and the accuracy of the data matters.

Yes, I do use GeoJSON with "invalid" CRSes between my internal endpoints to avoid the above issue, but that doesn't really work for things with a public endpoint.

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

No branches or pull requests

2 participants