' Programme de conversion de coordonnées géographiques sexagécimales (DD.MM.SS)
' en Degrés et décimales et inversement.
' Possibilité d'utiliser Google Maps pour visualiser la position.
left 0,223
top 0,200
width 0,716
height 0,301
caption 0,"Convert F6DTL"
alpha 1
left 1,110
top 1,10
width 1,241
height 1,34
font_size 1,12
caption 1,"Convertisseur coordonnées géographiques sexagecimales / décimales"
alpha 2
left 2,130
top 2,60
width 2,100
caption 2,"Latitude"
alpha 3
left 3,380
top 3,60
width 3,100
caption 3,"Longitude"
' Saisie ou affichage de la Latitude en décimal
edit 4
left 4,110
top 4,90
width 4,140
' Saisie ou affichage de la Longitude en décimal
edit 5
left 5,360
top 5,90
width 5,140
alpha 6
left 6,110
top 6,120
width 6,140
caption 6,"Négative pour Lat Sud"
alpha 7
left 7,360
top 7,120
width 7,140
caption 7,"Négative pour Long Ouest"
' Voir la position en décimal dans Google Maps
button 8
left 8,530
top 8,90
height 8,37
caption 8,"Voir"
' Saisie ou affichage Nord Sud (N ou S)
edit 9
left 9,260
top 9,170
width 9,78
' Degrés Latitude sexagécimale
edit 11
left 11,110
top 11,170
width 11,40
' Minutes Latitude sexagécimale
edit 12
left 12,160
top 12,170
width 12,40
' Secondes et décimales Latitude sexagécimale
edit 13
left 13,210
top 13,170
width 13,41
' Saisie ou affichage Est Ouest (E ou W)
edit 14
left 14,530
top 14,170
width 14,78
' Degrés Longitude sexagécimale
edit 16
left 16,360
top 16,170
width 16,40
' Minutes Longitude sexagécimale
edit 17
left 17,410
top 17,170
width 17,40
' Secondes et décimales Longitude sexagécimale
edit 18
left 18,460
top 18,170
width 18,41
alpha 19
left 19,110
top 19,210
width 19,42
caption 19,"Degrés"
alpha 20
left 20,160
top 20,210
width 20,42
caption 20,"Minutes"
alpha 21
left 21,210
top 21,210
width 21,42
caption 21,"Secondes"
alpha 22
left 22,360
top 22,210
width 22,42
caption 22,"Degrés"
alpha 23
left 23,410
top 23,210
width 23,42
caption 23,"Minutes"
alpha 24
left 24,460
top 24,210
width 24,42
caption 24,"Secondes"
' Calcul de la position en Degrés Minutes Secondes
button 25
left 25,35
top 25,90
width 25,55
height 25,51
caption 25,"D.M.S"
' Calcul de la position en Degrés et décimales
button 26
left 26,35
top 26,170
width 26,55
height 26,51
caption 26,"DEC"
label start,decimal,sexagecimal,voir
dim latfull,latdec,latdeg,latmin,latsec,longfull,longdec,longdeg,longmin,longsec,mapsparam$
rem --------------------------- Programme principal ----------------------------
text 4,0
text 5,0
gosub sexagecimal
on_click 25,sexagecimal
on_click 26,decimal
on_click 8,voir
start:
end
rem --------------------- Sous programmes --------------------------------------
decimal:
' Détection des erreurs de saisie (DD.MM.SS) de la Latitude
if val(text$(11))>90 or val(text$(11))<-90
message "Degrés Latitude: -90 à 90"
goto start
end_if
if val(text$(12))=>60 or val(text$(12))<0
message "Minutes Latitude: 0 à 59"
goto start
end_if
if val(text$(13))=>60 or val(text$(13))<0
message "Secondes Latitude: 0 à 59"
goto start
end_if
' Calcul de la latitude décimale
latdec=val(text$(11))+(val(text$(12))/60)+(val(text$(13))/3600)
' Détection du signe de la latitude
if text$(9)="S" or text$(9)="s"
latdec=latdec*(-1)
end_if
text 4,latdec
' Détection des erreurs de saise (DD.MM.SS) de la Longitude
if val(text$(16))>180 or val(text$(16))<-180
message "Degrés Longitude: -180 à 180"
goto start
end_if
if val(text$(17))=>60 or val(text$(17))<0
message "Minutes Longitude: 0 à 59"
goto start
end_if
if val(text$(18))=>60 or val(text$(18))<0
message "Secondes Longitude: 0 à 59"
goto start
end_if
' Calcul de la longitude décimale
longdec=val(text$(16))+(val(text$(17))/60)+(val(text$(18))/3600)
' Détection du signe de la longitude
if text$(14)="W" or text$(14)="w" or text$(14)="O" or text$(14)="o"
longdec=longdec*(-1)
end_if
text 5,longdec
return
rem ----------------------------------------------------------------------------
sexagecimal:
' Détection des erreurs de saisie de la Latitude
if val(text$(4))>90 or val(text$(4))<-90
message "Latitude: -90 à 90"
goto start
end_if
' Détection N ou S
if val(text$(4))>0
text 9,"N"
end_if
if val(text$(4))<0
text 9,"S"
end_if
' Calcul de la Latitude sexagecimale
latfull=abs(val(text$(4)))
latdeg=int(latfull)
text 11,latdeg
latmin=int(frac(latfull)*60)
text 12,latmin
latsec=((frac(latfull)*60)-latmin)*60
text 13,latsec
' Détection des erreurs de saisie de la Longitude
if val(text$(5))>180 or val(text$(5))<-180
message "Longitude: -180 à 180"
goto start
end_if
' Détection E ou W
if val(text$(5))>0
text 14,"E"
end_if
if val(text$(5))<0
text 14,"W"
end_if
' Calcul de la longitude sexagesimale
longfull=abs(val(text$(5)))
longdeg=int(longfull)
text 16,longdeg
longmin=int(frac(longfull)*60)
text 17,longmin
longsec=((frac(longfull)*60)-longmin)*60
text 18,longsec
return
rem ------------------ Voir dans Google Maps -----------------------------------
voir:
' Affichage dans Google Maps de la position affichée
mapsparam$="http://maps.google.fr/maps?f=q&source=s_q&hl=fr&geocode=&q="+text$(4)+"+"+text$(5)
execute mapsparam$
mapsparam$=""
return