Projection de Mercator

Partagez votre expérience de PureBasic avec les autres utilisateurs.
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Projection de Mercator

Message par G-Rom »

non, mais si je devais le faire, j'utiliserais les pixels de ma carte, je déterminerais combien vaut un pixel suivant la résolution de ma carte , et un sqr( (x1-x2)^2 + (y1-y2)^2 ) pour avoir la distance multiplier par la valeur de mon pixel.
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Projection de Mercator

Message par MetalOS »

Oh putain...et en français ça donne quoi?

Tu l'a trouvé ou cette formule G-ROM ?
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Projection de Mercator

Message par Micoute »

Bonjour MetalOS, G-Rom a raison, c'est juste une question de proportions, donc on fait une règle de 3 et on extrapole !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Projection de Mercator

Message par G-Rom »

C'est juste une distance entre deux vecteur 2D , comme le dit micoute, une règle de 3 , et ton problème est résolu.
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Projection de Mercator

Message par MetalOS »

Ok, merci les gars ; -)
Marc56
Messages : 2147
Inscription : sam. 08/févr./2014 15:19

Re: Projection de Mercator

Message par Marc56 »

À la base, c'est le théorème de Pythagore
(diagonale au carré égale somme des carrés des deux côtés)
donc
diagonale = racine carrée de la somme des carrés des deux côtés,
donc
pas exactement sqr( (x1-x2)^2 + (y1-y2)^2 ) qui donnerait un nombre négatif,
(si x2 > x1)
mais

Distance entre les deux points = Racine carrée de ( (x2 - x1)² + (y2 - y1)² )

Qui s'écrit en PB

Distance = Sqr( Pow( x2 - x1, 2.0 ) + Pow( y2 - y1, 2.0 ) )

Code : Tout sélectionner

; Vérification théorème de Pythagore mis en formulation PB
; triangle 3 4 5 (un triangle rectangle ayant 2 et 3 de côté doit avoir 5 de diagonale)

x1 = 7
x2 = 10
y1 = 6
y2 = 10

Debug x2 - x1 ; (= 3)
Debug y2 - y1 ; (= 4)

Distance = Sqr( Pow( x2 - x1, 2.0 ) + Pow( y2 - y1, 2.0 ) )

Debug Distance   ; (= 5 si la formule est ok)
Après on fait la règle de trois pour convertir les unités de dessins par rapport à l'échelle de la carte.

Bonus
Pour mesurer des distances cumulées "à la louche" sur n'importe quelle carte, schéma, photo, il existe des curvimètres logiciels, donc l'excellent
http://www.misterxander.fr/info/curvimetre/
- Chargez une image (ayant une barre d'échelle)
- Pointez le début et la fin de la barre d'échelle
- Allez dans carte et sélectionnez Etalonner
Terminé: à chaque point pointé, il calcule la distance cumulée (elle s'affiche dans la barre d'état)

Très utile pour préparer une rando quand on n'a pas de GPS ou de carte et de curvimètre mécanique.

Ces fonctions existent déjà dans google map, google earth etc, mais ce curvimètre logiciel permet de mesurer sur n'importe quel vieux document ou même photo.

:wink:
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Projection de Mercator

Message par MetalOS »

Vous pensez qu'il est possible de créer une carte du monde OpenStreetMap en local (Tiles, layer...) avec une limite au niveau du zoom pour ne pas ce retrouver avec plusieurs Go de carte et de l'exploiter dans PB en lui passant des paramètres ?

PS: Merci Marc pour cet précision ;-)
Avatar de l’utilisateur
PK1157
Messages : 10
Inscription : jeu. 14/mai/2015 23:37
Localisation : FRANCE 66 PYRENEES ORIENTALES

Re: Projection de Mercator

Message par PK1157 »

Bonsoir,
Pour trouver la distance en ligne droite sur le terrain entre deux points (pas trop éloignés, moins de 500 km), on peut utiliser une approximation satisfaisante :
D'abord, on commence par convertir dans un système de projection métrique (Lambert 93 en France) les données géographiques données par le GPS, qui sont généralement issues du système WGS84/IAG GRS80.
On est alors en possession de deux couples de coordonnées cartésiennes (X1,Y1 et X2,Y2) qui permettent (merci Pythagore !) de trouver facilement la distance entre les deux points selon trois éventualités :
- si X1 = X2 alors distance = |Y1-Y2| (valeur absolue de Y1-Y2) ;
- si Y1=Y2 alors distance = |X1-X2| (valeur absolue de X1-X2) ;
- cas général (X1<>X2 et Y1<>Y2) : distance = racine carrée de [ (X1-X2)² + (Y1-Y2)² ].
Pour la conversion des coordonnées, tu peux jeter un oeil sur mon post consacré à la conversion de coordonnées Géo/Cartographiques.
PK1157
Windows 10 64 bits
Linux XUbuntu
Répondre