Convertir des coordonnées sexagésimales en degrés et en radians

Souvent, les coordonnées géographiques sont exprimées en degrés, minutes, secondes.
Mais nos systèmes sont bien plus à l’aise avec des nombres décimaux, et il est donc nécessaire de convertir des coordonnées sexagésimales en degrés ou bien en radians.
Voici une petite fonction pour le faire …

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
-------------------------------
-- Nicolas SOUQUET - 28/10/2009
-------------------------------
ALTER FUNCTION Fn_CoordonneesSexagesimalesToDegresRadians
  (
    @degresLat TINYINT,
    @minutesLat TINYINT,
    @secondesLat TINYINT,
    --------------------
    @degresLong TINYINT,
    @minutesLong TINYINT,
    @secondesLong TINYINT
  )
  RETURNS TABLE
AS
RETURN
(
  SELECT latitudeDeg,
      longitudeDeg,
      RADIANS(latitudeDeg) AS latitudeRad,
      RADIANS(longitudeDeg) AS longitudeRad
  FROM
  (
    SELECT @degresLat + @minutesLat / 60.0 + @secondesLat / 3600.0 AS latitudeDeg,
        @degresLong + @minutesLong / 60.0 + @secondesLong / 3600.0 AS longitudeDeg
  ) AS TMP
)

ElSuket

Laisser un commentaire