banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2026

L'appel à participation est ouvert jusqu'au 17 novembre 2025!

#1 Aujourd'hui 00:59

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 1024

[PostGis] Grille Hexagonale d'analyse

Bonsoir à tous,

J'ai plusieurs projets persos où je souhaite faire une synthèse par mailles hexagonales de jeux de données ponctuels volumineux (~200 000 entités) et d'emprise mondiale (pour ceux qui sont curieux : photothèque ou observations naturalistes, mais le principe est le même).
Voici un exemple de carte interactive utilisant ce principe de mailles hexagonales : https://api.gbif.org/v2/map/demo2.html

Plutôt que de générer des couches de mailles mondiales à chaque échelle, ce qui seraient extrêmement volumineux vu que je souhaite descendre jusqu'à des mailles de quelques centaines de mètres, j'essaie de générer les géométries de mailles à la volée depuis les points source.

J'ai trouvé pour cela les fonctions hexagon() et hexagoncoordinates() sur cette page github :
https://github.com/CrunchyData/pg_tiles … in-example

J'essaie de les adapter/comprendre, mais je constate un comportement étrange sur mes données : pour un point en entrée, les fonctions retournent plusieurs mailles hexagonales.

Voici un exemple qui illustre mon problème (1 seul point, et 1 maille de 0.1 degrés) :

Code:

WITH    point_test AS (SELECT st_geomfromtext('POINT (0.47003 47.65044)',4326) AS geom)
SELECT    geom,
        hexagoncoordinates(geom,0.1) AS hexagon_coordinates,
        ST_SetSRID(hexagon((hexagoncoordinates(geom, 0.1)).i, (hexagoncoordinates(geom, 0.1)).j, 0.1),4326) AS hexagon_geom
FROM    point_test

Cette requête depuis un point fictif ne devrait sortir qu'un polygone, mais il en sort 4 :

Code:

geom                    hexagon_coordinates
POINT (0.47003 47.65044)    (3,275)
POINT (0.47003 47.65044)    (3,276)
POINT (0.47003 47.65044)    (4,275)
POINT (0.47003 47.65044)    (4,276)

Si jamais un expert PostGis passe par là, et si le challenge l'intéresse, je serai très reconnaissant s'il me permet d'avancer ! big_smile

Dernière modification par Sylvain M. (Aujourd'hui 01:12)


Sylvain M.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo