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

Cannot decode geobuf from PostGIS #128

Open
Monzyy opened this issue May 23, 2022 · 1 comment
Open

Cannot decode geobuf from PostGIS #128

Monzyy opened this issue May 23, 2022 · 1 comment

Comments

@Monzyy
Copy link

Monzyy commented May 23, 2022

I have a geobuf string from PostGIS that look like this:
CgVjb3VudCLTAwoeChQIAhoQzvjgCNKYhzbmC/4F1jTIIGoCGAtyAgAAChoKEAgCGgyKueEImL+H NvIjlBZqAhgLcgIAAAomChwIAhoY/NzhCKzVhzbSEIQKygfsA5oKggS6C9gDagIYC3ICAAAKHgoU CAIaEOyK4gj26oc2/ArSApAMiAJqAhgLcgIAAAoaChAIAhoM+KHiCNDvhzbsWKIKagIYC3ICAAAK JgocCAIaGOT64gjy+Yc23gnkAd4IyALKB/ICkAfKA2oCGAtyAgAACiIKGAgCGhT6m+MI2oSINvIG ngSgF6QQvgykCmoCGAtyAgAACiAKFggCGhLO+OAI0piHNj7jASGNAZcopzlqAhgLcgIAAAoaChAI AhoM0tDgCLjchjaXDs0TagIYC3ICAAAKGgoQCAIaDLrC4AjqyIY28xHdGWoCGAtyAgAACkEKNwgC GjPGsOAIjK+GNtsC2wZBtQQTwQSWAZMFlgKpBMgJuQ3sAbMD7AGVBhW/A2vtA3+dA68GjRBqAhgL cgIAAAoZCg8IAhoLrrXgCJzkhTZs6wFqAhgLcgIAAAotCiMIAhofmrbgCLDihTaWAqUC/BXVENIZ wwzKBMcBqAMnxAXQAWoCGA1yAgAA

When I decode this I get an error:
Uncaught (in promise) Error: Unimplemented type: 4
at o.skip (index.js:211:20)

I'm using dash-leaflet to parse the geobuf:
https://github.com/thedirtyfew/dash-leaflet/blob/master/src/lib/utils.js#L54

As a temporary solution I instead use pygeobuf to decode the string, which works perfectly fine:
https://github.com/pygeobuf/pygeobuf

If I decode with pygeobuf and encode back, I can decode the string with geobuf.js/dash-leaflet. I also notice there are fewer newlines in the string after this:
CgVjb3VudCLTAwoeChQIAhoQzvjgCNKYhzbmC/4F1jTIIGoCGAtyAgAAChoKEAgCGgyKueEImL+HNvIjlBZqAhgLcgIAAAomChwIAhoY/NzhCKzVhzbSEIQKygfsA5oKggS6C9gDagIYC3ICAAAKHgoUCAIaEOyK4gj26oc2/ArSApAMiAJqAhgLcgIAAAoaChAIAhoM+KHiCNDvhzbsWKIKagIYC3ICAAAKJgocCAIaGOT64gjy+Yc23gnkAd4IyALKB/ICkAfKA2oCGAtyAgAACiIKGAgCGhT6m+MI2oSINvIGngSgF6QQvgykCmoCGAtyAgAACiAKFggCGhLO+OAI0piHNj7jASGNAZcopzlqAhgLcgIAAAoaChAIAhoM0tDgCLjchjaXDs0TagIYC3ICAAAKGgoQCAIaDLrC4AjqyIY28xHdGWoCGAtyAgAACkEKNwgCGjPGsOAIjK+GNtsC2wZBtQQTwQSWAZMFlgKpBMgJuQ3sAbMD7AGVBhW/A2vtA3+dA68GjRBqAhgLcgIAAAoZCg8IAhoLrrXgCJzkhTZs6wFqAhgLcgIAAAotCiMIAhofmrbgCLDihTaWAqUC/BXVENIZwwzKBMcBqAMnxAXQAWoCGA1yAgAA

I think there must be a problem with the js decoder, since the python decoder works fine with PostGIS.

For context this is the GeoJson:
{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1827584,56.6820249],[9.1835135,56.6824076],[9.1868848,56.684492]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1868848,56.684492],[9.1891818,56.6859091]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1891818,56.6859091],[9.1902469,56.6865514],[9.1907314,56.6867975],[9.1913843,56.6870543],[9.1921178,56.6872902]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1921178,56.6872902],[9.1928196,56.6874594],[9.1935952,56.6875912]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1935952,56.6875912],[9.1992813,56.6882486]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1992813,56.6882486],[9.1999049,56.6883627],[9.2004634,56.6885262],[9.2009485,56.688712],[9.2014049,56.6889408]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.2014049,56.6889408],[9.2018453,56.6892112],[9.2033332,56.6902532],[9.2041326,56.6909117]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1827584,56.6820249],[9.1827898,56.6819101],[9.1827726,56.6818394],[9.1802005,56.6781717]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1802005,56.6781717],[9.1792926,56.676917]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1792926,56.676917],[9.1781464,56.6752693]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1781464,56.6752693],[9.1779721,56.6748395],[9.1779399,56.6745565],[9.1779292,56.6742677],[9.1780043,56.6739376],[9.1781437,56.6736606],[9.1787553,56.6728],[9.1788733,56.6725819],[9.1789913,56.6721869],[9.1789806,56.6719629],[9.178927,56.6717153],[9.1788626,56.671509],[9.1784549,56.6704774]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1784549,56.6704774],[9.1785085,56.6703595]]},"properties":{"count":"11"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[9.1785085,56.6703595],[9.178648,56.6702121],[9.1800535,56.6691451],[9.181695,56.6683434],[9.1819873,56.6682431],[9.1821992,56.668224],[9.1825533,56.6683271]]},"properties":{"count":"13"}}]}

@jmealo
Copy link

jmealo commented Aug 22, 2024

I'm getting this error as well. Did you find a solution?

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