> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/fr/guide/account/iot-logic/nodes/geofence-functions.md).

# Fonctions de zone géographique

Utilisez les géofences que vous avez déjà dans Navixy dans les flux IoT Logic, pour agir lorsqu'un appareil entre dans une zone ou la quitte, ou pour enregistrer la zone dans laquelle il se trouve.

Les fonctions de zone géographique permettent à un flux de réagir à l’emplacement d’un appareil, en utilisant les zones géographiques que vous avez déjà dans Navixy. Vous référencez une zone géographique au lieu de décrire une zone avec des coordonnées, de sorte que les limites restent les mêmes que celles que vous utilisez déjà pour les Règles d’alertes et les Rapports.

## De quelle fonction avez-vous besoin

| Si vous souhaitez                                                                                | À utiliser                                                                                                             |
| ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Agir sur une zone géographique particulière, lorsqu’un appareil s’y trouve, y entre ou la quitte | `inGeofence()`, `enterGeofence()`, `leaveGeofence()`. Voir [Réagir à une zone géographique](#reacting-to-one-geofence) |
| Déterminer dans quelle zone géographique se trouve un appareil, sans en nommer une à l’avance    | `geofenceName()`. Voir [Enregistrer la zone géographique actuelle](#recording-the-current-geofence)                    |

{% hint style="warning" %}
Vous devez créer des zones géographiques dans Navixy avant de pouvoir les référencer dans les expressions IoT Logic. Pour créer ou gérer des zones géographiques, voir [Zones géographiques](/docs/user/fr/guide/tracking/map-tools/geofences.md).
{% endhint %}

{% hint style="danger" %}
**`geofenceName()` est une option payante, vendue séparément.** Elle est désactivée par défaut pour chaque compte, et votre fournisseur de services l’active sur demande pour chaque compte. Les trois autres fonctions ne sont pas concernées et ne nécessitent aucune option supplémentaire.

Contactez votre fournisseur de services pour la faire activer. Voir [Avant de commencer](#before-you-start).
{% endhint %}

## Réagir à une zone géographique

Utilisez ces trois fonctions lorsque vous savez déjà quelle zone géographique est pertinente. Chacune répond par oui ou non pour la plupart des paquets de données envoyés par l’appareil, de sorte qu’un flux peut envoyer ces données vers l’une ou l’autre branche. Pour certains paquets, une fonction ne peut pas répondre et renvoie à la place une valeur vide. Voir [Lorsqu’une fonction de zone géographique ne donne pas de réponse](#when-a-geofence-function-gives-no-answer).

| Fonction            | Répond oui lorsque                                          |
| ------------------- | ----------------------------------------------------------- |
| `inGeofence(id)`    | L’appareil se trouve actuellement dans la zone géographique |
| `enterGeofence(id)` | L’appareil vient d’entrer dans la zone géographique         |
| `leaveGeofence(id)` | L’appareil vient de sortir de la zone géographique          |

Vous les ajoutez à la condition d’un **Logique** nœud. `id` est l’identifiant numérique de la zone géographique dans votre compte Navixy, et un sélecteur le renseigne pour vous, de sorte que vous le saisissez rarement manuellement. Voir [Comment ajouter une condition de zone géographique](#how-to-add-a-geofence-condition).

### Lorsqu’une fonction de zone géographique ne donne pas de réponse

`inGeofence()`, `enterGeofence()`, et `leaveGeofence()` renvoient une valeur vide au lieu de oui ou non lorsqu’elles ne peuvent pas répondre. Une fonction ne peut pas répondre dans les cas suivants :

* Le paquet de données ne contient aucune coordonnée. Une position de mauvaise qualité est tout de même testée, donc un fix GPS faible donne un vrai oui ou non.
* La zone géographique a été supprimée de votre compte Navixy ou est devenue inaccessible après l’enregistrement du flux. Une zone géographique déjà absente au moment où vous enregistrez le flux est alors rejetée lors de l’enregistrement.

Une valeur vide interrompt la condition dont elle fait partie. Lorsque la fonction constitue toute la condition, les données sont envoyées vers le chemin ELSE. Ce routage est généralement celui que vous souhaitez. Lorsque la fonction est combinée à autre chose, la valeur vide peut interrompre toute la condition, y compris les termes qui avaient bien des valeurs. Pour que le reste de la condition continue de fonctionner, comparez la fonction à `== true`:

```jexl
leaveGeofence(51577 /* Austin Warehouse */) == true || leaveGeofence(85269 /* Construction site 1 */) == true
```

Pour la règle complète, voir [Valeurs manquantes dans les expressions](/docs/user/fr/guide/account/iot-logic/nodes/missing-values-in-expressions.md).

### Syntaxe

{% tabs %}
{% tab title="Position actuelle" %}
Voici le format que le sélecteur de zone géographique insère automatiquement. Le nom de la zone géographique apparaît en commentaire pour la lisibilité, mais n’a aucun effet sur l’évaluation.

```jexl
inGeofence(35229 /* Delivery zone #4 */)
enterGeofence(51577 /* Austin Warehouse */)
leaveGeofence(85269 /* Construction site 1 */)
```

{% endtab %}

{% tab title="Position historique" %}
`inGeofence()` accepte deux paramètres supplémentaires, afin de pouvoir tester une position antérieure au lieu de la position actuelle :

```jexl
inGeofence(35229 /* zone de livraison n° 4 */, 1)
inGeofence(35229 /* zone de livraison n° 4 */, 1, 'valid')
inGeofence(35229 /* zone de livraison n° 4 */, 'valid')
```

Le deuxième paramètre indique de quel paquet de données prendre la position, en comptant à rebours à partir du paquet actuel. Le troisième indique s'il faut compter les paquets qui ne contiennent pas de position. Les deux sont facultatifs et suivent la même convention que la `value()` fonction.

`enterGeofence()` et `leaveGeofence()` prennent l'ID de la zone géographique et rien d'autre. Toutes deux comparent la position actuelle à la précédente, donc aucun index n'est à choisir. Un flux qui transmet un deuxième paramètre à l'une ou l'autre fonction ne peut pas être enregistré, et l'erreur nomme la fonction.

Conservez l'index dans la plage de 0 à 11. `inGeofence()` accepte un index plus élevé, peut être sauvegardé sans erreur, puis renvoie une valeur vide pour chaque paquet.

N'encapsulez pas une fonction de zone géographique dans `value()`. Le premier paramètre de `value()` est un nom d'attribut, et non une expression, donc un appel tel que `value("inGeofence(35229)", 1, 'valid')` recherche un attribut portant exactement ce nom et renvoie toujours une valeur vide.

Pour `value()` des détails sur la fonction, consultez [les expressions et la syntaxe de Logique](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).
{% endtab %}
{% endtabs %}

### Comment ajouter une condition de zone géographique

Le champ d'expression dans le **Logique** panneau de configuration du nœud comprend un sélecteur de zone géographique dédié <img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-f1ad9487846cd008c17c7a3a86c7f52b4f8d899d%2Fgeofence-picker.png?alt=media" alt="" data-size="line">, distinct de l'autocomplétion standard [des attributs](/docs/user/fr/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md#autofill-attribute-names). Il répertorie toutes les zones géographiques définies dans votre compte Navixy, regroupées par nom et ID.

Pour ajouter une fonction de zone géographique à votre expression :

{% stepper %}
{% step %}

#### Ouvrez la configuration du nœud

Ouvrez le **Logique** nœud en cliquant dessus sur le canevas.
{% endstep %}

{% step %}

#### Ouvrez le sélecteur de zone géographique

Dans le **expression de condition (JEXL)** champ, cliquez sur l'icône du sélecteur de zone géographique pour ouvrir la liste des zones géographiques.

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4e9a17bca5a836559c33502a97f6c418f3504898%2Fgeofence-picker-list.png?alt=media" alt="Geofence picker list example, with all three options (in, enter, leave geofence)"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Recherchez et sélectionnez une zone géographique

Saisissez une partie du nom de la zone géographique pour filtrer la liste. Chaque zone géographique apparaît trois fois, une fois pour chaque fonction disponible. Sélectionnez l'entrée qui associe la zone géographique dont vous avez besoin à la fonction qui correspond à votre condition :

* `inGeofence` - utilisez-la lorsque vous devez vérifier si un appareil se trouve actuellement à l'intérieur de la zone sélectionnée.
* `enterGeofence` - utilisez-la lorsque vous devez détecter qu'un appareil est passé de l'extérieur de la zone sélectionnée vers l'intérieur.
* `leaveGeofence` - utilisez-la lorsque vous devez détecter qu'un appareil est passé de l'intérieur de la zone sélectionnée vers l'extérieur.

Le sélecteur insère l'appel complet à la fonction à la position du curseur dans le champ d'expression.
{% endstep %}

{% step %}

#### Combinez avec d'autres conditions si nécessaire

Utilisez des opérateurs logiques pour combiner la fonction de zone géographique avec d'autres conditions. Consultez [Exemples de conditions](#condition-examples).
{% endstep %}

{% step %}

#### Enregistrez la configuration

Cliquez sur **Appliquer les modifications** pour confirmer la configuration du nœud.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Le sélecteur de zone géographique ne répertorie que les zones géographiques qui existent dans votre compte Navixy au moment où vous ouvrez le nœud. Si vous ajoutez une nouvelle zone géographique après avoir ouvert le nœud, fermez-le puis rouvrez-le pour actualiser la liste.
{% endhint %}

Le sélecteur insère uniquement les trois fonctions basées sur l'ID. Pour utiliser `geofenceName()`, saisissez-le vous-même dans le champ.

### Exemples de conditions

<details>

<summary>Condition de zone géographique unique</summary>

Données d’itinéraire selon qu’un appareil se trouve actuellement dans une zone de livraison :

```jexl
inGeofence(35229 /* Delivery zone #4 */)
```

* **Chemin THEN**: Les données provenant des appareils dans la zone arrivent ici. Utilisez cette branche pour déclencher un traitement spécifique à la zone, par exemple l’ajustement des seuils de vitesse ou le démarrage d’un attribut de temporisation d’arrêt.
* **Chemin ELSE**: Les données provenant des appareils en dehors de la zone arrivent ici pour un traitement standard.

</details>

<details>

<summary>Détection d’entrée</summary>

Déclenchez une action lorsqu’un véhicule entre dans un site restreint :

```jexl
enterGeofence(85269 /* Construction site 1 */)
```

* **Chemin THEN**: Connectez-vous à un **Webhook** nœud pour avertir la sécurité du site, ou à un **Action du traceur** nœud pour consigner l’événement d’entrée.
* **Chemin ELSE**: Poursuivez le traitement normal des données pour les appareils n’entrant pas dans le site.

</details>

<details>

<summary>Détection de sortie</summary>

Détectez lorsqu’un véhicule quitte une zone de service autorisée pendant les heures ouvrables :

```jexl
leaveGeofence(51577 /* Austin Warehouse */) == true && value('business_hours', 0, 'valid') == true
```

* **Chemin THEN**: Envoyez une alerte via un **Webhook** nœud vers un système de répartition.
* **Chemin ELSE**: Poursuivez le traitement normal.

</details>

<details>

<summary>Combinaison de plusieurs zones géographiques</summary>

Vérifiez si un appareil se trouve dans l’une de plusieurs zones restreintes :

```jexl
inGeofence(35229 /* Delivery zone #4 */) == true || inGeofence(85269 /* Construction site 1 */) == true
```

Chaque fonction est comparée avec `== true`, de sorte qu’un paquet dont l’une d’elles ne peut pas décider n’arrête pas toute la condition. Sans la comparaison, la première fonction qui renvoie une valeur vide arrête la condition, et les autres zones ne sont jamais testées. Voir [Lorsqu’une fonction de zone géographique ne donne pas de réponse](#when-a-geofence-function-gives-no-answer).

* **Chemin THEN**: Appliquez des règles ou des notifications spécifiques à la zone.
* **Chemin ELSE**: Traitez les données provenant des appareils situés en dehors de toutes les zones listées.

</details>

<details>

<summary>Zone géographique combinée avec un paramètre de l’appareil</summary>

Détectez un excès de vitesse dans une zone urbaine spécifique :

```jexl
inGeofence(84762 /* destination1 */) == true && value('speed', 0, 'valid') > 50
```

* **Chemin THEN**: Journalisez un excès de vitesse propre à cette zone, ou envoyez une alerte ciblée.
* **Chemin ELSE**: Poursuivez le traitement standard pour les données conformes ou situées hors zone.

</details>

<details>

<summary>Comparaison avec la position précédente</summary>

Détectez une transition de l’extérieur vers l’intérieur en comparant la position actuelle à la précédente :

```jexl
inGeofence(35229 /* Delivery zone #4 */) == true && inGeofence(35229 /* Delivery zone #4 */, 1, 'valid') == false
```

Cette expression renvoie `true` uniquement sur le premier paquet après qu’un appareil entre dans la zone géographique. `enterGeofence()` fait la même chose en un seul appel, donc utilisez cette forme uniquement lorsque vous avez besoin d’un index différent de celui du paquet précédent.

Le deuxième appel est comparé à `== false`, de sorte que l’expression ne se déclenche que lorsque la position antérieure est connue et se trouvait en dehors de la zone géographique. Un appareil sans position valide précédente ne correspond pas. N’écrivez pas le second terme sous la forme `!inGeofence(...)`, qui ne produit aucun résultat lorsqu’il n’existe pas de position antérieure à tester.

</details>

## Enregistrer la zone géographique actuelle

`geofenceName()` vous indique dans quelle zone géographique se trouve un appareil, au lieu de tester une zone géographique que vous avez choisie à l’avance. Elle renvoie le nom sous forme de texte, et vous stockez ce texte dans un attribut dédié.

Une seule formule couvre toutes les zones géographiques dont vous disposez. Vous ne construisez pas une chaîne de vérifications zone par zone, et vous ne modifiez pas le flux à chaque fois que vous ajoutez une zone géographique. Voici ce que l’attribut contient pour un véhicule de livraison qui transmet des données au fil de la journée :

| Paquet de données | `current_zone`     |
| ----------------- | ------------------ |
| 08:14             | `Garage principal` |
| 09:02             | (vide)             |
| 09:47             | `Site client 3`    |

Vous le créez comme attribut calculé dans un **Initialiser un Attribut** Nœud. De là, il se comporte comme n’importe quel autre attribut calculé : il apparaît dans [Analyseur de données](/docs/user/fr/guide/account/iot-logic/data-stream-analyzer.md), il peut être affiché sur la plateforme comme un capteur personnalisé et transmis à un système externe.

### Avant de commencer

**L’option doit être activée pour votre compte.** `geofenceName()` est vendu séparément et est désactivé par défaut pour tout le monde. Contactez votre fournisseur de services et demandez-lui d’activer la fonction de nom de la Zone géographique pour votre compte. Il est utile de citer le nom interne de la fonctionnalité, `iot_logic_recherche_de_Zone géographique`.

Tant qu’il n’est pas activé, un flux qui utilise la fonction ne peut pas être enregistré. Le Nœud est marqué par cette erreur :

```
La fonction geofenceName() dans le nœud « Resolve current zone » (#2) n’est pas disponible pour votre compte
```

Supprimez la fonction du Nœud pour enregistrer le flux, ou attendez que votre fournisseur de services active l’option.

**Vous avez également besoin de zones géographiques pour effectuer une recherche.**

* Au moins une zone géographique existe dans votre compte. Voir [Zones géographiques](/docs/user/fr/guide/tracking/map-tools/geofences.md).
* Pour rechercher uniquement une partie de vos zones géographiques, ajoutez-leur des mots clés. Voir [Utiliser des mots clés](/docs/user/fr/guide/tracking/map-tools/geofences.md#use-tags) et [Mots clés](/docs/user/fr/guide/account/tags.md).

### Ajoutez l'attribut

Créez un attribut calculé de la manière habituelle, comme décrit dans [Gestion des attributs](/docs/user/fr/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md#creating-attributes), puis saisissez l'une des formules ci-dessous dans le **Formule** champ.

Saisissez vous-même le nom de la fonction. L’autocomplétion de l’attribut ne propose pas `geofenceName`, et le sélecteur de zone géographique est disponible uniquement dans le **Logique** nœud.

### Formules

Les deux premières formes couvrent la plupart des cas. La troisième lit une position antérieure au lieu de la position actuelle.

| Formule                        | Ce qu’elle renvoie                                                                                            |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------- |
| `geofenceName()`               | Le nom de toute zone géographique dans laquelle l’appareil se trouve actuellement                             |
| `geofenceName('depots')`       | Le nom d’une zone géographique associée à un mot clé `dépôts` dans laquelle l’appareil se trouve actuellement |
| `geofenceName('', 1, 'valid')` | Le nom de toute zone géographique dans laquelle l’appareil se trouvait dans le paquet de données précédent    |

Les trois paramètres sont facultatifs :

* **Le mot clé**, en premier, limite la recherche aux zones géographiques que vous avez associées à ce nom. La casse n’a aucune importance, et un mot clé vide signifie toutes les zones géographiques. L’ajout de mots clés est utile lorsque vous avez de nombreuses zones géographiques et que seules certaines d’entre elles sont pertinentes pour cet attribut, par exemple les dépôts, mais pas les sites clients.
* **Le numéro du paquet**, en second, indique jusqu’où remonter : `0` est le paquet en cours de traitement, `1` celui qui le précède, et ainsi de suite. Omettez-le pour la position actuelle.
* **Le filtre de position**, troisièmement, est `'valide'` pour ignorer les paquets qui ne contenaient aucune position, ou `'tous'` pour les compter. Omettez-le et les paquets sans position sont comptés.

Pour connaître les limites exactes de chaque paramètre, consultez [Fonction de nommage de Zone géographique](/docs/iot-logic-api/technical-details/geofence-name.md) dans la documentation de l'API IoT Logic.

### Ce que vous obtenez en retour

L'attribut contient le nom de la zone géographique sous forme de texte, ou une valeur vide lorsqu'il n'y a aucun nom à fournir. Il est vide lorsque :

* Le dispositif se trouve en dehors de toutes les zones géographiques recherchées.
* Le paquet de données ne contient aucune position.
* Aucune zone géographique de votre compte ne possède le mot-clé que vous avez fourni.

Une valeur vide se présente de la même façon dans les trois cas. Dans une formule, cette valeur vide s'écrit comme `null`, ce qui est la manière dont l'exemple de routage ci-dessous la teste.

Pour obtenir un texte lisible plutôt qu'un blanc, ajoutez une valeur de secours avec l' `?:` opérateur :

```jexl
geofenceName() ?: 'Outside all geofences'
```

Lorsqu'une position tombe dans deux zones géographiques qui se chevauchent, la fonction renvoie l'un des deux noms. Navixy ne classe pas les zones géographiques qui se chevauchent, et le même nom est renvoyé tant que le dispositif reste dans la zone de chevauchement.

### Exemples de formules

<details>

<summary>Nom actuel de la zone géographique comme attribut</summary>

Dans un **Initialiser un Attribut** nœud, créez un attribut nommé `current_zone` avec cette formule :

```jexl
geofenceName()
```

Chaque paquet de données enregistré à l'intérieur d'une zone géographique reçoit le nom de cette zone géographique. Les paquets enregistrés en dehors de toutes les zones géographiques reçoivent une valeur vide.

</details>

<details>

<summary>Seules les zones géographiques auxquelles vous avez attribué un mot-clé</summary>

Attribuez un mot-clé à vos zones géographiques de garage `dépôts`, puis créez un attribut avec cette formule :

```jexl
geofenceName('depots') ?: 'In transit'
```

Un dispositif à l'intérieur d'un garage reçoit le nom de ce garage. Un dispositif ailleurs reçoit `En transit`, y compris un dispositif à l'intérieur d'une zone géographique qui n'a pas de `dépôts` mot-clé.

</details>

<details>

<summary>Routage par zone dans un nœud Logique</summary>

`geofenceName()` fonctionne également comme condition, ce qui est utile lorsque de nombreuses zones géographiques partagent une seule règle. Pour envoyer les données enregistrées à l'intérieur de toute zone géographique associée au mot-clé `restreint` sur la branche THEN, utilisez cette condition :

```jexl
geofenceName('restricted') != null
```

* **Chemin THEN**: Données enregistrées à l'intérieur d'une zone restreinte. Raccordez-la à un **Webhook** nœud pour alerter un répartiteur.
* **Chemin ELSE**: Toutes les autres données.

Comparez le résultat avec `==` ou `!=` uniquement. Les `<`, `>`, `<=`, et `>=` opérateurs ne donnent pas de résultat exploitable lorsque la valeur est vide.

</details>

<details>

<summary>Détection d'un changement de zone</summary>

Pour déclencher l'action uniquement sur le paquet où le dispositif change de zone géographique, comparez le nom actuel avec le nom à la position précédente :

```jexl
geofenceName() != geofenceName('', 1, 'valid')
```

Le premier paramètre vide signifie toutes les zones géographiques, et `'valide'` cela permet à la comparaison d'ignorer les paquets qui ne contenaient aucune position. Sans `'valide'`, un paquet sans position est interprété comme un nom de zone géographique vide, et la condition signale un changement qui ne s'est pas produit.

</details>

## Questions fréquemment posées

#### Où puis-je trouver l'ID de la zone géographique ?

Le sélecteur de zones géographiques affiche le nom et l'ID numérique de chaque zone géographique dans la liste. Vous pouvez également trouver l'ID dans l'interface des zones géographiques de Navixy. Lorsque vous sélectionnez une zone géographique dans le sélecteur, l'ID est inséré automatiquement dans l'expression.

#### Puis-je stocker une vérification de zone géographique dans un attribut ?

Oui. Les quatre fonctions fonctionnent aussi bien dans une formule d'attribut que dans une condition de routage. `geofenceName()` est le choix naturel, car il vous donne un texte lisible. Les trois autres donnent une valeur oui ou non, ou une valeur vide lorsque la position est inconnue. Une valeur oui ou non est généralement plus utile pour le routage que pour le stockage.

Le sélecteur de zone géographique apparaît uniquement dans le **Logique** nœud, donc dans une formule d'attribut, vous saisissez vous-même la fonction et l'ID de la zone géographique.

#### Pourquoi ne puis-je pas enregistrer un flux qui utilise geofenceName ?

`geofenceName()` est une option payante et est désactivée par défaut. Contactez votre fournisseur de services pour l'activer sur votre compte. Voir [Avant de commencer](#before-you-start).

#### Que se passe-t-il si la zone géographique référencée est supprimée ?

Si une zone géographique référencée dans une expression est supprimée de votre compte Navixy, la fonction ne peut plus répondre et renvoie une valeur vide. Dans un **Logique** nœud qui utilise la fonction seule, les données passent par la connexion ELSE. Le nœud stocke son propre attribut comme une valeur vide, et non comme `false`. Dans une condition qui combine la fonction avec d'autres termes, la valeur vide peut interrompre toute la condition. Dans un **Initialiser un Attribut** nœud, l'attribut n'a aucune valeur pour ce paquet. Voir [Valeurs manquantes dans les expressions](/docs/user/fr/guide/account/iot-logic/nodes/missing-values-in-expressions.md).

Le flux continue de s’exécuter, mais vous ne pouvez plus l’enregistrer tant que vous n’avez pas corrigé l’expression. Une nouvelle tentative d’enregistrement échoue avec `Le Nœud "<node title>" (#<node id>) contient des géozones inexistantes ou inaccessibles`. Mettez à jour ou supprimez l’expression pour rétablir à la fois le routage et la possibilité d’enregistrer.

#### inGeofence évalue-t-il la position GPS actuelle de l'appareil ?

Oui. `inGeofence()` vérifie la position signalée dans le paquet de données actuel par rapport aux limites de la Zone géographique. Chaque paquet est évalué indépendamment, de sorte que le résultat reflète la position de l’appareil au moment de la réception de ce paquet. Un paquet qui ne contient aucune position reçoit une valeur vide au lieu de `true` ou `false`.

#### Quelle est la différence entre inGeofence et enterGeofence�a0?

`inGeofence()` renvoie `true` pour chaque paquet qui signale une position à l’intérieur de la Zone géographique. `enterGeofence()` renvoie `true` uniquement pour le paquet qui enregistre le moment où l'appareil a franchi la Zone géographique. Utilisez `inGeofence` lorsque vous devez appliquer une logique à toutes les données depuis l'intérieur de la zone géographique. Utilisez `enterGeofence` lorsque vous devez réagir spécifiquement à l'événement de franchissement de la limite.

#### Pourquoi mon attribut geofenceName est-il toujours vide ?

Vérifiez ces causes dans l'ordre :

1. L'option n'est pas activée pour votre compte. Un flux enregistré auparavant continue de s'exécuter, et la fonction renvoie une valeur vide pour chaque paquet. Voir [Avant de commencer](#before-you-start).
2. Le mot-clé que vous avez transmis n'est attribué à aucune zone géographique. Les noms des mots-clés doivent correspondre à un mot-clé existant dans votre compte.
3. L'appareil se trouve réellement en dehors de toutes les zones géographiques que vous avez recherchées.
4. Vous avez un très grand nombre de zones géographiques et la formule ne transmet aucun mot-clé. Transmettez un mot-clé pour rechercher un ensemble plus restreint. Le seuil exact est indiqué dans [Fonction de nommage de Zone géographique](/docs/iot-logic-api/technical-details/geofence-name.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/user/fr/guide/account/iot-logic/nodes/geofence-functions.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
