Conception
Introduction

SIGHT (Système d'information Géographique, Histoire & Traditions) est un petit projet de SIG initialement créé pour étudier des sites dans la région lyonnaise mais bon, pourquoi restreindre son utilisation à une région en particulier ? voilà, SIGHT est né :-p


Comme ce genre d'application a pour finalité d'être utilisé quand on est en rase campagne, donc sur un portable, je cible donc plutôt les "petites" config... mais bon, qui peut le plus peut le moins :>


Cela sous entend aussi que les informations devront être stockées en local. Donc pas de serveur sur le grand ternet pour centraliser le tout... mais l'idée traine toujours du côté de mes idées folles :).


Qui dit rase campagne, dit pas de connexion Internet (sauf si vous avez une liaison satellite), le fond de carte doit donc pouvoir être utilisé hors ligne. Il faudra donc pouvoir sélectionner une zone sur la Terre et lancer la récupération des carreaux correspondants.

Interface / Rendu

Une vue satellite constamment orientée selon l'axe nord-sud. Les déplacements sur la Terre se font à la souris.


Les noms de localité et de sites seront de simple cadre avec le nom et une icone pour représenter le type du site.

Ergonomie

de la souris:

du clavier :

Informations
Données
Fond de carte

Après avoir pas mal galéré pour en trouver un avec une précision correcte, j'ai constaté que Google Earth utilise le protocole Web Map Service défini par le consortium Open Geospatial.


Un serveur WMS est mis à disposition par la NASA (OnEarth) et propose un calque couvrant toute la Terre avec une précision de 15 m/pixel. Pas de restriction, pas de frais (no fees), j'aime la NASA :-)


J'ai retenu la résolution de 256×256 pour les carreaux afin d'éviter de remplir trop vite la mémoire vidéo (mais bon, ça peut changer).

Noms de localité

Un truc pas mal serait de pouvoir afficher les noms de villes/villages/lieux dits mais je n'ai trouvé de service OpenGIS pour ça...

Développement
Qt
Qt et les textures OpenGL
Qt utilise des images au format ARGB mais pas OpenGL (RGBA ou ABGR). Il faut donc se farcir la conversion (mon Athlon 1500 l'a bien senti). Donc vive le chargement à la mano via la libjpeg.
QHttp
QHttp n'utilise pas de thread mais la boucle d'évènement. L'interface de SIGHT se fige de temps en temps (quand une nouvelle image est téléchargée/recoupée/sauvegardée). Utiliser un thread Qt pour s'occuper de ces tâches permet une meilleure réactivité.
Données

Télécharger une image de 1024×1024, la recouper en 16 sous images et sauvegarder le tout prend en gros 6-7 secondes (comparé à 4-5 secondes pour télécharger et sauvegarder une nouvelle image en 256×256).