> 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, afin 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                                                                                | Utilisez                                                                                                               |
| ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Agir sur une zone géographique particulière, lorsque l’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 [Enregistrement de 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 pour chaque compte sur demande. Les trois autres fonctions ne sont pas concernées et ne nécessitent aucune option supplémentaire.

Contactez votre fournisseur de services pour l’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 concernée. Chacune répond 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 alors une valeur vide à la place. Voir [Quand une fonction de zone géographique ne donne aucune 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. Le `id` est l’ID 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).

### Quand une fonction de zone géographique ne donne aucune 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 ces cas :

* Le paquet de données ne contient aucune coordonnée. Une position de qualité médiocre est tout de même testée, donc un signal GPS faible donne une vraie réponse 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 lorsque vous enregistrez le flux est alors rejetée lors de l’enregistrement.

Une valeur vide arrête la condition dont elle fait partie. Lorsque la fonction constitue toute la condition, les données sont envoyées vers la branche 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" %}
C’est 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 /* Delivery zone #4 */, 1)
inGeofence(35229 /* Delivery zone #4 */, 1, 'valid')
inGeofence(35229 /* Delivery zone #4 */, 'valid')
```

Le deuxième paramètre indique à partir de quel paquet de données prendre la position, en comptant à rebours depuis le paquet actuel. Le troisième indique s’il faut compter les paquets qui ne contiennent aucune 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. Elles comparent toutes deux la position actuelle à la précédente, il n’y a donc aucun index à choisir. Un flux qui transmet un deuxième paramètre à l’une ou l’autre de ces fonctions ne peut pas être enregistré, et l’erreur nomme la fonction.

Gardez l’index dans la plage de 0 à 11. `inGeofence()` accepte un index plus élevé, s’enregistre sans erreur, puis renvoie une valeur vide pour chaque paquet.

N’imbriquez 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 ce nom littéral et renvoie toujours une valeur vide.

Pour `value()` les détails sur la fonction, consultez [Expressions et 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 du **Logique** panneau de configuration du nœud comprend un sélecteur dédié aux zones géographiques <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 la saisie semi-automatique standard des attributs [saisie semi-automatique](/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 **champ Expression de condition (JEXL)** 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 combine la zone géographique dont vous avez besoin avec la fonction correspondant à 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 à 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 à l’extérieur.

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

{% step %}

#### Combinez-la 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 **Appliquez les modifications** pour confirmer la configuration du nœud.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Le sélecteur de zone géographique répertorie uniquement 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 l’utiliser `geofenceName()`, saisissez-la vous-même dans le champ.

### Exemples de conditions

<details>

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

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

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

* **Branche THEN**: Les données provenant des appareils situés 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 minuterie de présence.
* **Branche ELSE**: Les données provenant des appareils situés hors 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 */)
```

* **Branche THEN**: Raccordez-le à 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.
* **Branche ELSE**: Poursuivez le traitement normal des données pour les appareils qui n’entrent pas sur 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
```

* **Branche THEN**: Envoyez une alerte via un **Webhook** nœud vers un système de répartition.
* **Branche 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 à `== 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 [Quand une fonction de zone géographique ne donne aucune réponse](#when-a-geofence-function-gives-no-answer).

* **Branche THEN**: Appliquez des règles ou des notifications spécifiques à la zone.
* **Branche 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 d’appareil</summary>

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

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

* **Branche THEN**: Enregistrez un Excès de vitesse propre à cette zone, ou envoyez une alerte ciblée.
* **Branche ELSE**: Poursuivez le traitement standard pour les données conformes ou 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`, donc l’expression se déclenche uniquement lorsque la position antérieure est connue et se trouvait hors de la zone géographique. Un appareil sans position valide antérieure ne correspond pas. N’écrivez pas le deuxième terme sous la forme `!inGeofence(...)`, qui ne produit aucun résultat lorsqu’il n’y a pas de position antérieure à tester.

</details>

## Enregistrement de la zone géographique actuelle

`geofenceName()` Cela 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. Il renvoie le nom sous forme de texte, et vous stockez ce texte dans un attribut distinct.

Une seule formule couvre toutes vos zones géographiques. Vous ne construisez pas une chaîne de vérifications par zone géographique, et vous ne modifiez pas le flux chaque fois que vous ajoutez une zone géographique. Voici ce que contient l’attribut pour un véhicule de livraison signalant sa position au fil de la journée :

| Paquet de données | `zone_actuelle`    |
| ----------------- | ------------------ |
| 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. À partir 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 il peut être 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 Zone géographique pour votre compte. Il peut être utile de citer le nom interne de la fonctionnalité, `recherche_iot_logic_geofence_search`.

Tant qu’elle n’est pas activée, 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 « Résoudre la zone actuelle » (#2) n'est pas disponible pour votre compte
```

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

**Vous avez également besoin de Zone géographique à rechercher.**

* 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 seulement une partie de vos Zone géographique, attribuez-leur des Mots clés. Voir [Utilisez 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'attribut d'autocomplétion n'en propose pas `geofenceName`, et le sélecteur de zone géographique n'est disponible que dans le **Logique** nœud.

### Formules

Les deux premiers formats couvrent la plupart des cas. Le 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 un paquet de données plus tôt          |

Les trois paramètres sont facultatifs :

* **Le mot clé**, en premier lieu, limite la recherche aux zones géographiques auxquelles vous avez associé ce nom. La casse n’a aucune importance, et un mot clé vide signifie toutes les zones géographiques. L’utilisation de mots clés est importante 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 deuxième lieu, 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 nom 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 pas de nom à fournir. Il est vide lorsque :

* L'appareil 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 les mots clés que vous avez transmis.

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

Pour obtenir un texte lisible au lieu d'une valeur vide, ajoutez une valeur de repli avec l' `?:` opérateur :

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

Lorsqu'une position se trouve 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 l'appareil reste dans la zone de chevauchement.

### Exemples de formules

<details>

<summary>Nom actuel de la zone géographique en tant qu'attribut</summary>

Dans un **Initialiser un Attribut** Nœud, créez un attribut nommé `zone_actuelle` 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>Uniquement les zones géographiques que vous avez étiquetées</summary>

Attribuez les mots clés « depots » à vos zones géographiques de garage `dépôts`, puis créez un attribut avec cette formule :

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

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

</details>

<details>

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

`geofenceName()` fonctionne aussi comme condition, ce qui est utile lorsque de nombreuses zones géographiques partagent une même règle. Pour envoyer les données enregistrées à l'intérieur de toute zone géographique étiquetée restreinte vers la branche THEN, utilisez cette condition : `restreinte` vers la branche THEN, utilisez cette condition :

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

* **Branche THEN** : Données enregistrées à l'intérieur d'une zone restreinte. Connectez-les à un **Webhook** nœud pour alerter un répartiteur.
* **Branche 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 uniquement sur le paquet où l'appareil 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'` fait que la comparaison ignore 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>

## Foire aux questions

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

Le sélecteur de zones géographiques affiche dans la liste le nom et l'ID numérique de chaque zone géographique. Vous pouvez également trouver l'ID dans l'interface des zones géographiques 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 n’apparaît que 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 de manière autonome, les données transitent par la connexion ELSE. Le nœud enregistre 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 bloquer 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. Toute nouvelle tentative d’enregistrement échoue avec `Le Nœud « <titre du nœud> » (#<id du nœud>) contient des zones géographiques inexistantes ou inaccessibles`. Mettez à jour ou supprimez l’expression pour rétablir à la fois le routage et la possibilité d’enregistrer.

#### inZone géographique é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 ; le résultat reflète donc la position de l’appareil au moment où ce paquet a été reçu. Un paquet ne contenant aucune position reçoit une valeur vide au lieu de `true` ou `false`.

#### Quelle est la différence entre inZone géographique et enterZone géographique ?

`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 est entré dans la Zone géographique. Utilisez `inGeofence` lorsque vous devez appliquer une logique à toutes les données situées à l’intérieur de la zone. Utilisez `enterGeofence` lorsque vous devez réagir spécifiquement à l’événement de franchissement de la limite.

#### Pourquoi l’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é précédemment 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 est bel et bien 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é. Passez un mot clé pour rechercher un ensemble plus restreint. Le seuil exact est indiqué dans [fonction de nom 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
