Géolocalisation des missions

La géolocalisation des missions sur l'API permet d'utiliser les filtres de localisation afin de connaître les missions proches d'un lieu choisi, en France. Pour cela, il faut connaître la longitude et la latitude de l’adresse de la mission. Le traitement de l'API lors de l'importation consiste à récupérer ces valeurs si elles ne sont pas renseignées.

Champs de l'adresse

Les champs pris en compte lors de la géolocalisation de l'adresse sont les suivants:

Procédure

Si la longitude et la latitude ne sont pas renseignées ou mal renseignées (valeurs fausses), l’API utilise l'api-adresse pour retrouver ces valeurs

La mission est géolocalisée dans les cas où au moins l’un des champs address, city ou postalCode est renseigné.

La mission n’est pas géolocalisée si elle a déjà été géolocalisée une fois.

Géolocalisation

La géolocalisation est faite suivant le code simplifié suivant:

const q = `${mission.address} ${mission.postalCode} ${mission.city}`;
const url = encodeURI(`https://api-adresse.data.gouv.fr/search/?q=${q}&limit=1`);
const res = await fetch(url).then((response) => response.json());

Le premier résultat est récupéré afin de renseigner la localisation.

Exemple : localisation renseigné

<mission>
	{...}
	<address><![CDATA[1 rue les trois cornieres]]></address>
	<postalCode><![CDATA[56430]]></postalCode>
	<departmentCode><![CDATA[56]]></departmentCode>
	<departmentName><![CDATA[Morbihan]]></departmentName>
	<city><![CDATA[Mauron]]></city>
	<region><![CDATA[Bretagne]]></region>
	<country><![CDATA[FR]]></country>
	<lonlat><![CDATA[-2.297475,48.088759]]></lonlat>
<mission>

Aucune géolocalisation n'est effectuée ici car tous les champs sont renseignées

Exemple : localisation manquante mais adresse + ville + code postal connus

<mission>
	{...}
	<address><![CDATA[1 rue les trois cornieres]]></address>
	<postalCode><![CDATA[56430]]></postalCode>
	<departmentCode><![CDATA[56]]></departmentCode>
	<city><![CDATA[Mauron]]></city>
	<region><![CDATA[Bretagne]]></region>
	<country><![CDATA[FR]]></country>
<mission>

L’adresse, la ville et le code postal sont connus, alors cette requête est envoyée :

GET <https://api-adresse.data.gouv.fr/search/?q=1%20rue%20les%20trois%20cornieres%2056430%20Mauron&limit=1>

La réponse récupérée est la suivante :

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [
            -2.297475,
            48.088759
        ]
    },
    "properties": {
        "label": "1 Les 3 Cornieres 56430 Mauron",
        "score": 0.6043526573426573,
        "housenumber": "1",
        "id": "56127_b341_00001",
        "name": "1 Les 3 Cornieres",
        "postcode": "56430",
        "citycode": "56127",
        "x": 305874.02,
        "y": 6789712.68,
        "city": "Mauron",
        "context": "56, Morbihan, Bretagne",
        "type": "housenumber",
        "importance": 0.41711,
        "street": "Les 3 Cornieres"
    }
}

Exemple : localisation + adresse manquantes, mais ville + code postal connus

<mission>
	{...}
	<postalCode><![CDATA[56430]]></postalCode>
	<departmentCode><![CDATA[56]]></departmentCode>
	<city><![CDATA[Mauron]]></city>
	<region><![CDATA[Bretagne]]></region>
	<country><![CDATA[FR]]></country>
<mission>

Seuls la ville et le code postal sont connus, alors cette requête est envoyée :

GET <https://api-adresse.data.gouv.fr/search/?q=56430%20Mauron&limit=1>

La réponse récupérée est la suivante :

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [
            -2.307683,
            48.090167
        ]
    },
    "properties": {
        "label": "Mauron",
        "score": 0.9407090909090908,
        "id": "56127",
        "type": "municipality",
        "name": "Mauron",
        "postcode": "56430",
        "citycode": "56127",
        "x": 305126.21,
        "y": 6789919.8,
        "population": 3145,
        "city": "Mauron",
        "context": "56, Morbihan, Bretagne",
        "importance": 0.3478,
        "municipality": "Mauron"
    }
}

On remarque que la longitude et latitude sont moins précises mais permettent toujours de géolocaliser la mission. Il en est de même si seul le code postal est renseigné.

Attention, si seule l’adresse ou la ville est renseignée il se peut qu’il y ait des doublons et donc que la géolocalisation choisie corresponde au mauvais doublon : le code postal est une valeur sûre.

Last updated