[postgis-users] How to generate a map grid given a GeoHash?
Regina Obe
lr at pcorp.us
Sat Dec 17 09:57:35 PST 2022
Denis,
Hadn’t thought about that but no I don’t think so.
If I try to convert your example, there are big gaps of area not covered.
I think if you wanted to use hashes to represent a grid, you’d be better off with using h3 hashes.
They would be hexagons instead of squares but still griddy. https://github.com/zachasme/h3-pg
I covered this a little bit in my PostGIS Day talk.
https://youtu.be/Hx17Ia7wn6Y?t=822
PostGIS windows latest bundle (3.3.2) which I packaged shortly after this talk, has it included now.
Of course there is also no reason you can’t create a grid with ST_SquareGrid and hash the j,j coordinates.
Those wouldn’t change given the same spatial ref sys and same grid size.
Thanks,
Regina
From: postgis-users [mailto:postgis-users-bounces at lists.osgeo.org] On Behalf Of Denis Rykov
Sent: Friday, December 16, 2022 1:30 PM
To: PostGIS Users Discussion <postgis-users at lists.osgeo.org>
Subject: Re: [postgis-users] How to generate a map grid given a GeoHash?
Thank you Regina for your detailed answer! Let me jump-in.
> For example this grid many of the tiles have the same geohash
That is correct, but can't it be solved just by specifying a proper geohash level, like:
postgres=# select i, j, ST_GeoHash(geom, 4) from ST_SquareGrid(0.5, ST_MakeEnvelope(-78,38,-77, 39, 4326));
i | j | st_geohash
------+----+------------
-156 | 76 | dqb9
-156 | 77 | dqbs
-156 | 78 | dqbx
-155 | 76 | dqc1
-155 | 77 | dqch
-155 | 78 | dqcp
-154 | 76 | dqc3
-154 | 77 | dqck
-154 | 78 | dqcr
(9 rows)
On Fri, Dec 16, 2022 at 5:58 PM Regina Obe <lr at pcorp.us <mailto:lr at pcorp.us> > wrote:
Not sure what you are looking for here, but I suspect the answer is no. You wouldn’t get a grid. More like a set of nested squares. Geohash is not of much use except possibly for very very small grids. Even then it’s not that great.
Maybe you can read this to get some ideas
https://en.wikipedia.org/wiki/Geohash
For example this grid many of the tiles have the same geohash:
SELECT i, j, geom , ST_GeoHash(geom) AS geohash
FROM ST_SquareGrid(0.5, ST_MakeEnvelope(-78,38,-77, 39, 4326))
ORDER BY geohash;
You could compute a bounding box from a GeoHash with https://postgis.net/docs/ST_GeomFromGeoHash.html
So if I take the above and compute a bounding box based on distinct GeoHash
SELECT DISTINCT ST_GeoHash(geom) AS geohash, ST_GeomFromGeoHash(ST_GeoHash(geom)) AS geom
FROM ST_SquareGrid(0.5, ST_MakeEnvelope(-78,38,-77, 39, 4326))
ORDER BY geohash;
I would get a result that looks like this
If you pick a smaller tile size such as:
SELECT DISTINCT ST_GeoHash(geom) AS geohash, ST_SetSRID(ST_GeomFromGeoHash(ST_GeoHash(geom)),4326) AS geom
FROM ST_SquareGrid(0.005, ST_MakeEnvelope(-78,38,-77, 39, 4326))
ORDER BY geohash;
The story is better, but still not something you can count on for gridding. So you were right the first time you asked about there being more to it than bounding box, the shorter than bounding box hash doesn’t necessarily mean the bounding box you generated from is bigger than another bounding box located elsewhere that has a longer hash. Also depends on position on the earth.
From: postgis-users [mailto:postgis-users-bounces at lists.osgeo.org <mailto:postgis-users-bounces at lists.osgeo.org> ] On Behalf Of Shaozhong SHI
Sent: Friday, December 16, 2022 8:39 AM
To: PostGIS Users Discussion <postgis-users at lists.osgeo.org <mailto:postgis-users at lists.osgeo.org> >
Subject: [postgis-users] How to generate a map grid given a GeoHash?
Can a map grid be worked out or generated given a Geohash?
Regards,
David
_______________________________________________
postgis-users mailing list
postgis-users at lists.osgeo.org <mailto:postgis-users at lists.osgeo.org>
https://lists.osgeo.org/mailman/listinfo/postgis-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20221217/443ca91d/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 119023 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20221217/443ca91d/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 193321 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20221217/443ca91d/attachment-0001.png>
More information about the postgis-users
mailing list