> 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 zones géographiques que vous possédez déjà dans Navixy au sein des flux IoT Logic, afin d’agir lorsqu’un appareil entre dans une zone ou en sort, ou d’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 faites référence à une zone géographique au lieu de décrire une zone avec des coordonnées, ainsi les limites restent les mêmes que celles que vous utilisez déjà pour les Règles d’alertes et les Rapports.

## Quelle fonction vous faut-il

| Si vous souhaitez                                                                              | À utiliser                                                                                                                  |
| ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Agir sur une zone géographique particulière, lorsqu’un appareil s’y trouve, y entre ou en sort | `inGeofence()`, `enterGeofence()`, `leaveGeofence()`. Consultez [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()`. Consultez [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 y faire référence dans les expressions IoT Logic. Pour créer ou gérer des zones géographiques, consultez [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 par 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 importe. Chacune répond oui ou non pour la plupart des paquets de données envoyés par l’appareil, afin qu’un flux puisse envoyer ces données vers une branche ou une autre. Pour certains paquets, une fonction ne peut pas répondre et renvoie à la place une valeur vide. Voir [Quand 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 de pénétrer dans la zone géographique      |
| `leaveGeofence(id)` | L’appareil vient de sortir de la zone géographique          |

Vous les ajoutez à la condition d’un **nœud Logique.** Le `id` est l’identifiant numérique de la zone géographique dans votre compte Navixy, et un sélecteur le renseigne pour vous, si bien 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 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 quand même testée, donc un faible positionnement GPS 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 lorsque vous enregistrez le flux est rejetée au moment de l’enregistrement.

Une valeur vide arrête la condition à laquelle elle appartient. Lorsque la fonction constitue toute la condition, les données vont vers la branche ELSE. Ce routage est généralement ce que vous souhaitez. Lorsque la fonction est combinée à autre chose, la valeur vide peut arrêter toute la condition, y compris les termes qui avaient bien une valeur. Pour que le reste de la condition continue de fonctionner, comparez la fonction à `== true`:

```jexl
leaveGeofence(51577 /* Entrepôt d’Austin */) == true || leaveGeofence(85269 /* Chantier de construction 1 */) == true
```

Pour la règle complète, consultez [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 /* Zone de livraison n° 4 */)
enterGeofence(51577 /* Entrepôt d’Austin */)
leaveGeofence(85269 /* Chantier de construction 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 remontant depuis le paquet courant. 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’identifiant de la Zone géographique et rien d’autre. Les deux comparent la position actuelle avec la précédente, il n’y a donc pas d’index à choisir. Un flux qui transmet un deuxième paramètre à l’une ou l’autre fonction ne peut pas être enregistré, et l’erreur indique le nom de la fonction.

Conservez 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 exactement ce nom et renvoie toujours une valeur vide.

Pour `value()` les détails de la fonction, voir [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 **nœud Logique.** panneau de configuration du Nœud comprend un sélecteur dédié de Zone géographique <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 du système standard de [saisie semi-automatique 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 **nœud 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` - à utiliser lorsque vous devez vérifier si un appareil se trouve actuellement à l’intérieur de la zone sélectionnée.
* `enterGeofence` - à utiliser lorsque vous devez détecter qu’un appareil est passé de l’extérieur de la zone sélectionnée à l’intérieur.
* `leaveGeofence` - à utiliser 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 de fonction complet à 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. Voir [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 avec une seule zone géographique</summary>

Routage des données selon que l’appareil se trouve actuellement dans une zone de livraison :

```jexl
inGeofence(35229 /* Zone de livraison n° 4 */)
```

* **Branche THEN**: Les données des appareils situés dans la zone arrivent ici. Utilisez cette branche pour déclencher un traitement spécifique à la zone, par exemple ajuster les seuils de vitesse ou démarrer un attribut de temporisation d’immobilisation.
* **Branche ELSE**: Les données 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**: Connectez cette branche à un **Webhook** nœud pour notifier la sécurité du site, ou à un **Action de l’appareil** nœud pour enregistrer l’événement d’entrée.
* **Branche ELSE**: Continuez le traitement normal des données pour les appareils qui n’entrent 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
```

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

</details>

<details>

<summary>Combiner plusieurs zones géographiques</summary>

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

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

Chaque fonction est comparée à `== true`, ainsi un paquet pour lequel l’une d’elles ne peut pas trancher n’arrête pas toute la condition. Sans cette 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 pas de 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 des appareils situés en dehors de toutes les zones répertoriées.

</details>

<details>

<summary>Zone géographique combinée à 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
```

* **Branche THEN**: Enregistrez un excès de vitesse limité à cette zone, ou envoyez une alerte ciblée.
* **Branche ELSE**: Continuez 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 suivant l’entrée d’un appareil dans la zone géographique. `enterGeofence()` fait la même chose en un seul appel, utilisez donc 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 précédente est connue et se trouvait hors de la zone géographique. Un appareil sans position précédente valide ne correspond pas. N’écrivez pas le deuxième terme sous la forme `!inGeofence(...)`, ce qui ne produit aucun résultat lorsqu’il n’existe pas de position antérieure à tester.

</details>

## Enregistrement de 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 choisie à l’avance. Il renvoie le nom sous forme de texte, et vous stockez ce texte dans un attribut dédié.

Une seule formule couvre toutes vos zones géographiques. Vous ne créez 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 l’attribut contient pour un véhicule de livraison qui transmet des données tout au long 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 capteur personnalisé, et il peut être transmis à un système externe.

### Avant de commencer

**L’option doit être activée pour votre compte.** `geofenceName()` Elle est vendue séparément et est désactivée 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 est utile de mentionner le nom interne de la fonctionnalité, `iot_logic_recherche_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 « Résoudre la zone actuelle » (#2) n'est pas disponible pour votre compte
```

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

**Vous avez également besoin de géorepères à 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 uniquement une partie de vos géorepères, ajoutez-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), et saisissez l'une des formules ci-dessous dans le **Formule** champ.

Saisissez vous-même le nom de la fonction. L'autocomplétion des attributs ne propose pas `geofenceName`, et le sélecteur de zone géographique est disponible uniquement dans le **nœud 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 que cela renvoie                                                                                             |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------- |
| `geofenceName()`               | Le nom de n'importe quelle zone géographique dans laquelle l'appareil se trouve actuellement                    |
| `geofenceName('depots')`       | Le nom d'une zone géographique étiquetée `depots` dans laquelle l'appareil se trouve actuellement               |
| `geofenceName('', 1, 'valid')` | Le nom de n'importe quelle zone géographique dans laquelle l'appareil se trouvait un paquet de données plus tôt |

Les trois paramètres sont facultatifs :

* **Les Mots clés**, en premier lieu, limite la recherche aux géorepères que vous avez associés à ce nom. Les majuscules et les minuscules ne font aucune différence, et un Mots clés vide signifie tous les géorepères. Le fait d’utiliser des Mots clés est important lorsque vous avez de nombreux géorepères et que seuls certains d’entre eux sont pertinents pour cet attribut, par exemple les dépôts, mais pas les sites clients.
* **Le numéro de paquet**, en second lieu, indique jusqu’à quelle période 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**, en troisième lieu, 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 aucun nom à renvoyer. 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 porte le mot clé que vous avez transmis.

Une valeur vide se présente de la même façon dans ces trois cas. Dans une formule, cette valeur vide s'écrit `null`, ce qui est vérifié dans l'exemple de routage ci-dessous.

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

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

Lorsqu'une position se trouve dans deux zones géographiques qui se chevauchent, la fonction renvoie l'un des deux noms. Navixy ne hiérarchise 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 formule

<details>

<summary>Nom actuel de la zone géographique comme 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 auxquelles vous avez attribué un mot clé</summary>

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

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

Un appareil situé dans un dépôt reçoit le nom de ce dépôt. Un appareil n'importe où ailleurs reçoit `En transit`, y compris un appareil à l'intérieur d'une zone géographique qui n'a aucun `depots` mot clé.

</details>

<details>

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

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

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

* **Branche THEN**: Données enregistrées à l'intérieur d'une zone restreinte. Connectez-le à un **Webhook** nœud pour avertir un répartiteur.
* **Branche ELSE**: Toutes les autres données.

Comparez le résultat avec `==` ou `!=` seulement. 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 ne se déclencher que 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 lu comme un nom de zone géographique vide, et la condition signale un changement qui n'a pas eu lieu.

</details>

## Foire aux questions

#### Où puis-je trouver l’identifiant de la zone géographique ?

Le sélecteur de zones géographiques affiche le nom et l’identifiant numérique de chaque zone géographique dans la liste. Vous pouvez également trouver l’identifiant dans l’interface des zones géographiques Navixy. Lorsque vous sélectionnez une zone géographique dans le sélecteur, l’identifiant 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 vous 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 **nœud Logique.** nœud, donc dans une formule d’attribut, vous saisissez vous-même la fonction et l’identifiant 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 **nœud Logique.** nœud qui utilise la fonction de manière autonome, les données transitent par la connexion ELSE. Le nœud stocke son propre attribut comme une valeur vide, et non comme `faux`. Dans une condition qui combine la fonction avec d’autres termes, la valeur vide peut mettre fin à toute la condition. Dans un **Initialiser un Attribut** nœud l’attribut n’a pas de 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 reste en cours d’exécution, mais vous ne pouvez plus l’enregistrer tant que vous n’avez pas corrigé l’expression. Le réenregistrement échoue avec `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, donc le résultat reflète la position de l'appareil au moment où ce paquet a été reçu. Un paquet qui ne contient aucune position reçoit une valeur vide au lieu de `true` ou `faux`.

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

`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 provenant de l'intérieur de la zone. Utilisez `enterGeofence` lorsque vous devez réagir spécifiquement à l'événement de franchissement de la limite.

#### Pourquoi mon attribut Zone géographiqueName 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 Mots clés que vous avez transmis n’est associé à aucune Zone géographique. Les noms des Mots clés doivent correspondre à un Mots clés qui existe dans votre compte.
3. L’appareil est bien en dehors de toute Zone géographique que vous avez recherchée.
4. Vous avez un très grand nombre de Zones géographiques et la formule ne transmet aucun Mots clés. Transmettez un Mots clés pour rechercher un ensemble plus restreint. Le seuil exact se trouve 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.
