Mongo Spatial#
Warning
Ce contenu est une archive. Son contenu n'est sûrement plus très frais...
Tuto GeoTribu d'introduction à MongoDB pour l'information spatiale. Nécessite de légère base de Javascript, rien de sorcier.
Je recommande vivement l'utilisation de l'excellent editeur de code open source Brackets.
Introduction#
Le but de ce tutorial est de découvrir via un exemple simple comment assembler une architecture de données spatiales avec mongodb, puis dans un second tutoriel, en y ajoutant node.js.
Mongo et node sont deux technologies qui font beaucoup parler d'elles. Beaucoup s'y opposent arguant que javascript est une abération, spécialement côté serveur. Revenir aussi sur 40 ans de maturation de SQL, simplement par effet de mode, serait pour certains une perte de temps. Ça se défend. De mon point de vue, je prends mon pieds avec ces outils et en participant au bouillaunement qui les entoure, notamment dans le domaine de la carto. Ça innove de partout. Malgrès quelques contraintes, Javascript apporte aussi une forme de simplicité et d'accessibilité. Si vous ne vous y êtes pas encore mis, les compétances que vous développerez en vous plongeant dans mongo et node vous serviront par la suite à mieux appréhender D3.js et pourquoi pas Three.js. La dynamique autour de javascript ne semble pas ralentir, bien au contraire.
Installation#
Je ne vais pas m'étendre ici, pour node, rendez vous simplement sur nodejs.org et sélectionner votre OS. Si vous utilisez Ubuntu, vous pouvez ouvrir un terminal et entrer:
1 2 3 4 |
|
Vous pouvez ensuite lancer un node --version
pour vérifier que l'instalation s'est bien passée.
Pour MongoDB, c'est la même chose, vous n'avez qu'à suivre le Guide d'installation
Configurer Mongo#
Si vous avez suivi le guide mongo, votre serveur de base de données devrait être actif. Si la commande mongo
retourne Error: couldn't connect to server 127.0.0.1:27017
... c'est qu'il ne l'est pas. Rien de plus simple:
1 2 |
|
La première chose à faire est de créer une base de données. C'est extrèment simple. Toujours dans le terminal, lancer la commande mongo
pour ouvrir une connection à la base de données par defaut "test":
1 2 3 4 |
|
Vous remarquerez que le curseur a changé. A partir de maintenant, mongo n'acceptera plus que du javascript, mais extrèmemnt simple. Commençons par créer une base de données:
1 2 3 |
|
Fermer la connection en pressant Ctrl + C
.
La base de données est prete.
Insertion de données spatiales#
Passons à l'étape de l'insertion des données. De base, mongodb propose un outil pour importer les formats JSON, CSV or TSV. Même s'il gère une sorte de GEOJSON, l'objet FeatureCollection pose encore problème. Rien de grâve car il suffit juste d'extrère l'array features
:
Au lieu d'utiliser ça:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Utiliser ceci:
1 2 3 4 5 6 7 8 9 10 |
|
Nos données étant au bon format, passons à la commande mongoimport
. Par defaut cette commande se connecte au serveur local, ce qui réduit dans notre cas le nombre d'arguments à passer :
1 |
|
Si tout ce passe bien, vous devriez voir ça:
1 2 3 |
|
En ouvrant une connection au serveur avec la commande mongo
, nous pouvons maintenant accéder à nos données:
1 2 3 4 5 6 7 |
|
C'est aussi simple que ça !
C'est certes simple, mais à part stocker un pseudo geojson, ça ne sert pas à grand chose. Pour "activer" la fonction spatiale, mongo a besoin d'un index spacial. Toujours dans le terminal, serveur demarré [mongod
] et connection active [mongo
]...
1 |
|
C'est prêt :).
Guillaume
Commentaires
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.Propulsé par Isso.