En supposant que vous ne recherchiez pas la modélisation complète du paysage, mais une approximation simple, cela ne devrait pas être trop difficile. Fondamentalement, une première approximation de votre image se réduit à une caméra avec une distance focale connue en regardant dans un plan. Nous pouvons donc créer très facilement un modèle du système en 3D - ce n'est pas trop loin de l'observateur classique qui regarde une démo en damier.
Normalement, notre problème graphique serait de projeter le modèle 3D en 2D afin que nous puissions rendre l'image. Bien que la plupart des programmes utilisent aujourd'hui une API (comme OpenGL) pour ce faire, les équations ne sont pas particulièrement complexes ou difficiles à comprendre. J'ai écrit mon premier code en utilisant les exemples de 3D Graphics In Pascal qui est un bon traité clair, mais il y aura beaucoup d'autres sources similaires (bien que probablement moins de nos jours comme une API matérielle est invariablement utilisée). Ce qui est utile à ce sujet est que les équations de projection sont commutatives, en ce que si vous avez un point sur l'image et le modèle, vous pouvez retourner les données à travers la projection pour récupérer les coordonnées 3D originales - ce que vous souhaitez faire. Donc, quelques approches suggèrent: soit écrire le code pour faire soi-même le directement ci-dessus, ou probablement utiliser plus simplement OpenGL (je recommanderais le GLUT toolkit pour cela). Si vos maths sont bons et que la manipulation de matrices ne vous pose aucun problème, je vous recommande la première car la solution sera plus serrée et intéressante. Sinon, adoptez l'approche OpenGL. Vous voudrez probablement transformer l'approximation caméra/plan en caméra/sphère assez tôt aussi.
Si cela n'est pas suffisant pour vos besoins, alors en théorie aller à la modélisation du paysage réel serait réalisable. Les données SRTM sont disponibles gratuitement (mais pas sous la forme la plus conviviale). Ainsi, en combinaison avec votre position GPS, il devrait être possible de créer un modèle de maillage avec lequel vous appliquez les mêmes algorithmes que ci-dessus.
Si vous voulez la distance réelle entre deux points de votre photo, vous aurez également besoin de la hauteur de l'appareil, je crois. Mais que se passe-t-il si vous voulez la largeur de ce lac, par rapport à la largeur d'une petite "baie"? – MPelletier