[OSM-dev-fr] Une non base de données pour stoker les coordonnées des nodes...

Jocelyn Jaubert jocelyn.jaubert at gmail.com
Mar 6 Déc 20:58:22 GMT 2011


Le 6 décembre 2011, Christian Quest a écrit :
> D'où une idée sotte et grenue de maintenir un fichier "à plat" ne
> stockant QUE les coordonnées des noeuds.
> Vu que les ID des noeuds s'incrémentent et le peu de noeuds supprimés
> sur les 1,5 milliards de noeuds créés depuis le début il n'y aura pas
> trop de place de perdue.
> Sachant que 24bits suffisent pour une précision de l'ordre de 2,5m, il
> faut 6 octets par noeuds pour stocker sa position.
> Le fichier "plat" fait 9Go pour les 1,5 milliards de noeuds actuels et
> pour récupérer la position d'un noeud il suffit d'un fseek sur l'ID du
> noeud x 6 puis d'un fread de 6 octets.

Pour info, il y a déjà une base de ce genre sur osm3, mise en place par
Étienne Chové. Elle stocke les nodes dans un fichier avec 8 octets par
node, et en réservant de la place pour 2^32 nodes. Les ways sont
stockés sous la forme d'un fichier indexé par l'id, qui pointe vers une
position d'un autre fichier qui contient la liste des id des nodes. Les
relations ont droit à un fichier texte par ID.

Tous les fichiers utilisés sont là:
http://osm3.crans.org/~osmbin/

En particulier, la librairie se trouve là:
http://osm3.crans.org/~osmbin/modules/OsmBin.py


La base est mise à jour tous les jours, et je peux donner un accès un
lecture seule à qui veut. Il y a aussi un accès en cgi sur la page
suivante:
http://osm3.crans.org/osmbin/
http://osm3.crans.org/osmbin/src/   (pour la "doc")


-- 
Jocelyn



Plus d'informations sur la liste de diffusion dev-fr