Extraction des Coordonnées GPS à partir d'une URL : Une Approche en JavaScript

  • Created : 26-06-2024 17:28
  • By : Ciscodev
  • Lors de l'intégration de services de cartographie dans vos applications, vous pourriez avoir besoin d'extraire des coordonnées GPS à partir d'URLs pour divers usages comme la mise en place de marqueurs sur une carte ou le calcul de distances entre deux points. La fonction que nous allons détailler ici permet de réaliser cette extraction de manière simple et efficace.

    La Fonction extractCoordinates

    La fonction extractCoordinates prend en paramètre une chaîne de caractères représentant une URL et retourne un objet contenant la latitude et la longitude. Si l'URL ne contient pas de coordonnées GPS, la fonction retourne un objet avec des valeurs par défaut de 0.0 pour la latitude et la longitude.

    /**
     * 
     * @param {String} url 
     * @returns 
     */
    function extractCoordinates(url) {
        const regex = /@(-?\d+\.\d+),(-?\d+\.\d+)/;
        const match = url.match(regex);
        if (match) {
            const lat = parseFloat(match[1]);
            const lng = parseFloat(match[2]);
            return { lat: lat, lng: lng };
        }
        return { lat: 0.0, lng: 0.0 };
    }
    

    Explication du Code

    1. Déclaration de la Fonction : La fonction extractCoordinates est déclarée avec un paramètre url de type String.
    2. Définition de l'Expression Régulière : Une expression régulière est utilisée pour identifier les coordonnées GPS dans l'URL. L'expression @(-?\d+\.\d+),(-?\d+\.\d+) recherche un symbole @ suivi par une latitude et une longitude. La latitude et la longitude peuvent être des nombres négatifs (indiqués par -?), suivis de chiffres, d'un point décimal, et de plus de chiffres.
    3. Recherche de Correspondance : La méthode match est utilisée pour rechercher la correspondance de l'expression régulière dans l'URL. Si une correspondance est trouvée, elle est stockée dans la variable match.
    4. Extraction et Conversion des Coordonnées : Si match contient une valeur (indiquant que la correspondance a été trouvée), les coordonnées sont extraites et converties en nombres flottants à l'aide de parseFloat. Un objet avec les propriétés lat et lng est retourné.
    5. Valeurs par Défaut : Si aucune correspondance n'est trouvée, la fonction retourne un objet avec des valeurs par défaut de lat: 0.0 et lng: 0.0.

    Exemple d'Utilisation

    Voici un exemple d'utilisation de la fonction extractCoordinates :

    const url = "https://www.google.com/maps/@48.8588443,2.2943506,15z";
    const coordinates = extractCoordinates(url);
    console.log(coordinates); // { lat: 48.8588443, lng: 2.2943506 }