Page 1 sur 2

Projection de Mercator

Publié : sam. 16/mai/2015 15:50
par MetalOS
Grace à l'aide d'un utilisateur du forum anglais voici un exemple de placement d'un point sur une carte qui utilise une projection de mercator.

Voici la carte utilisé:

Image

Voici les limites de la carte:

Nord: 52
Ouest: -5.5
Est: 10
Sud: 40.9166

Et voici le code pour placer le point sur la carte:

Code : Tout sélectionner

EnableExplicit

Procedure.d MercatorProjection(b.d)
  ProcedureReturn(Log(Tan(#PI / 4.0 + b * #PI / 360.0)))
EndProcedure

Procedure.d MercatorScaleFactor(XSize.i, East.d, West.d)
  ProcedureReturn(XSize / (Radian(East) - Radian(West)))
EndProcedure

Procedure.d MercatorY(b.d, Scale.d, North.d) ; using Latitude
  ProcedureReturn((Scale * (MercatorProjection(North) - MercatorProjection(b))))
EndProcedure

Procedure.d MercatorX(l.d, Scale.d, West.d) ; using Longitude
  ProcedureReturn((Scale * (Radian(l) - Radian(West))))
EndProcedure


Define.i Img, ImgWidth, ImgHeight, X, Y
Define.d Latitude, Longitude, Scale


#ImgNorth = 52
#ImgWest = -5.5
#ImgEast = 10
#ImgSouth = 40.9166

;Coordonnées de Paris
Latitude = 48.853
Longitude = 2.35

UsePNGImageDecoder()

Img = LoadImage(#PB_Any, "Map.png")
If Img  
  
  ImgWidth = ImageWidth(Img)
  ImgHeight = ImageHeight(Img)
  
  Scale = MercatorScaleFactor(ImgWidth, #ImgEast, #ImgWest)
  X = MercatorX(Longitude, Scale, #ImgWest)
  Y = MercatorY(Latitude, Scale, #ImgNorth)
  
  StartDrawing(ImageOutput(Img))
  Circle(X, Y, 5, $0000FF)
  StopDrawing()
  
  OpenWindow(0, 0, 0, ImgWidth, ImgHeight, "Mercator", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ImageGadget(0, 0, 0, 0, 0, ImageID(Img))
  
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
  
EndIf
Pour créer des carte à projection de mercator vous pouvez utiliser ceci: http://gmt.soest.hawaii.edu/

Bonne utilisation

Re: Projection de Mercator

Publié : sam. 16/mai/2015 16:29
par Micoute
Bonjour MetalOS et merci beaucoup pour ce partage.

Re: Projection de Mercator

Publié : sam. 16/mai/2015 19:26
par MetalOS
De rien c'est un truc que je cherche à faire depuis 4 ans et c'était si simple.

Re: Projection de Mercator

Publié : sam. 16/mai/2015 20:20
par G-Rom
Tu aurais posé la question ici je t'aurais donner la solution !
J'avais codé une application qui reproduisait en 3D toutes les villes de la terre , chaque ville était un point ( j'avais trouvé une liste sur le net de qq centaine de mo )
et je faisait tourné mon beau globe ^^

Re: Projection de Mercator

Publié : sam. 16/mai/2015 22:42
par MetalOS
J'avais déjà posté il y à un moment sur le forum francophone. Pas grave ça permet aussi de ce creuser la tête.

Re: Projection de Mercator

Publié : lun. 18/mai/2015 19:16
par Kwai chang caine
Impressionnant ce code, j'ai essayé avec mes coordonnées et ça marche nickel
Merci MetalOs 8)

Re: Projection de Mercator

Publié : mar. 19/mai/2015 17:13
par MetalOS
De rien, le plus dur et de trouver une carte perso. Je me demande si il n'est pas possible le d'utiliser ce code avec une carte Google Map dans un Web gadget.

Re: Projection de Mercator

Publié : mer. 20/mai/2015 12:53
par Kwai chang caine
Alors la ... tu imagines que je peux pas te le dire....mais c'est super intéréssant comme sujet à l'époque ou on peux pas aller aux toilettes sans être géolocalisé :?

Pour ce qui est de l'utilisation avec Google Map, Goddle seul le sait :mrgreen:

Re: Projection de Mercator

Publié : mer. 20/mai/2015 20:57
par MetalOS
Suis les traces pour retrouver les toilettes :-D

Re: Projection de Mercator

Publié : jeu. 21/mai/2015 9:35
par Kwai chang caine
:lol:
Ou alors il faudrait installer un "Sniffer" sur la machine :lol:

Re: Projection de Mercator

Publié : jeu. 21/mai/2015 10:03
par MetalOS
Pour créer des cartes interactive ou statiques vous pouvez utiliser le logiciel Tilemill sur mapbox.

https://www.mapbox.com/tilemill/

Re: Projection de Mercator

Publié : jeu. 21/mai/2015 10:14
par Kwai chang caine
Un truc que j'ai pas compris (Etonnant non ?? :mrgreen:)
Une fois que tu as ta carte comme la france que tu as créé, tu n'as pas besoin d'en créér d'autres ??
Juste si par exemple, tu n'as besoin que d'une carte de PARIS avec les rues et "tout le toutim" pour positionner les coordonnées GPS dessus, alors tu auras besoin de créé une nouvelle carte, c'est bien ça ?? :oops:

Re: Projection de Mercator

Publié : jeu. 21/mai/2015 11:01
par MetalOS
Oui

Re: Projection de Mercator

Publié : jeu. 21/mai/2015 11:03
par Kwai chang caine
Merci METALOS 8)

Re: Projection de Mercator

Publié : sam. 23/mai/2015 6:40
par MetalOS
Quelqu'un sait comment faire pour calculer une distance entre deux points avec coordonnées géographique décimal ?