Voici la carte utilisé:
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
Bonne utilisation