Bonjour,

J'ai la table "notes" avec les champs "latitude" et "longitude" (ce sont les "Notes" d'OpenStreetMap). Pour faire un heatmap (carte de chaleur) je souhaite avoir le compte des points (des "Notes") en "découpant la planète" en rectangles.

La requête actuelle fonctionne bien:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
set @dlon=10;
set @dlat=10;
select count(*) as count, lon, lat
from ( select
    round(longitude/@dlon)*@dlon as lon,
    round(latitude/@dlat)*@dlat as lat
    from notes N) N1
group by lon, lat
Comme il y a 3 000 000 de lignes et dans quelques mois encore plus ;-)

Voyez vous une autre façon de faire pour gagner en vitesse ?
Est-ce que les fonctions "spatial" pourraient apporter plus de performance ?

Merci à vous :-)