Geocerca about:blank
tile38.com /topics/geofencing
Geocerca
Editar
Una geocerca es un límite virtual que puede detectar cuándo un objeto
entra o sale del área. Este límite puede ser un radio o cualquier formato de
área de búsqueda , como un cuadro delimitador , un objeto GeoJSON ,
1 de 5 31-01-2024, 21:50
Geocerca about:blank
etc. Tile38 puede convertir cualquier búsqueda estándar en un monitor de
geocerca agregando la palabra clave FENCE a la búsqueda.
Para demostrarlo, usaremos un canal pubsub para escuchar notificaciones de geovallas. Abra dos
terminales:
Terminal 1
Conéctese al servidor Tile38 y cree la geocerca usando el SETCHANo SETHOOKdominio.
En este ejemplo utilizamos un canal pubsub.
$ tile38-cli
localhost:9851> SETCHAN warehouse NEARBY fleet FENCE POINT 33.462 -112.268 6000
{"ok":true,"elapsed":"21.712µs"}
Suscríbete en el canal pubsub de geofence que acabas de crear
localhost:9851> SUBSCRIBE warehouse
{"ok":true,"command":"subscribe","channel":"warehouse","num":1,"elapsed":"7.361µs"}
La conexión se mantendrá abierta mediante el comando SUBSCRIBE. Si algún objeto entra o sale del radio
de 6 km alrededor 33.462,-112.268el servidor responderá en tiempo real con notificaciones de geovalla.
Terminal 2
Conéctese al servidor Tile38 y cree un punto en el fleetcolección que activará una notificación de
geocerca
$ tile38-cli
localhost:9851> SET fleet bus POINT 33.460 -112.260
{"ok":true,"elapsed":"12.988µs"}
El evento aparecerá en la Terminal 1 y se verá así:
{
"command": "set",
"group": "5c5203ccf5ec4e4f349fd038",
2 de 5 31-01-2024, 21:50
Geocerca about:blank
"detect": "inside",
"hook": "warehouse",
"key": "fleet",
"time": "2019-01-30T13:06:36.769273-07:00",
"id": "bus",
"object": { "type": "Point", "coordinates": [-112.26, 33.46] }
}
Detectar
El detectpuede ser uno de los siguientes valores.
• insidees cuando un objeto está dentro del área especificada.
• outsidees cuando un objeto está fuera del área especificada.
• enteres cuando un objeto que no estaba previamente en la valla ha entrado en la zona.
• exites cuando un objeto que anteriormente estaba en la valla ha salido del área.
• crosses cuando un objeto que no estaba previamente en la valla ha entrado y salido del área.
De forma predeterminada, todos se devuelven los tipos y comandos de detección. Si desea tener solo unos
pocos seleccionados, utilice el DETECTopción, por ejemplo:
$ tile38-cli
localhost:9851> SETCHAN warehouse NEARBY fleet FENCE DETECT inside,outside POINT
33.462 -112.268 6000
{"ok":true,"elapsed":"12.988µs"}
Este comando solo le indicará a la cerca que solo desea detección interna y externa .
Dominio
El servidor notificará a los clientes suscritos si el commandes delo seto drop.
• delnotifica al cliente que un objeto ha sido eliminado de la colección que se está cercando.
• dropnotifica al cliente que se descarta toda la colección.
• setnotifica al cliente que se ha agregado o actualizado un objeto, y cuando la cerca detecta su
posición.
También es posible enmascarar qué comandos se devuelven usando el COMMANDSopción, por ejemplo:
$ tile38-cli
localhost:9851> SETCHAN warehouse NEARBY fleet FENCE DETECT enter COMMANDS set POINT
33.462 -112.268 6000
{"ok":true,"elapsed":"12.988µs"}
3 de 5 31-01-2024, 21:50
Geocerca about:blank
Esto especifica que solo desea la detección de entrada para el comando set .
Dónde
De manera similar a las búsquedas, la geocerca puede excluir eventos según los filtros establecidos en
WHERE, WHEREINy WHEREEVAL.
Para demostrar el comportamiento se utiliza el ejemplo de una geocerca que solo emite un evento para
objetos con una velocidad de >50 mph.
$ tile38-cli
localhost:9851> SETCHAN warehouse INTERSECTS fleet WHERE speed 50 +inf FENCE DETECT
outside,inside POINT 33.462 -112.268 6000
{"ok":true,"elapsed":"12.988µs"}
Al configurar un objeto en la colección de flota con un speed FIELDeso no coincide con el WHEREexpresión
de filtro de la geocerca, la geocerca emite un evento externo .
$ tile38-cli
localhost:9851> SET fleet bus FIELD speed 20 POINT 33.460 -112.260
{"ok":true,"elapsed":"12.988µs"}
{
"command": "set",
"group": "5c5203ccf5ec4e4f349fd038",
"detect": "outside",
"hook": "warehouse",
"key": "fleet",
"time": "2019-01-30T13:06:36.769273-07:00",
"id": "bus",
"object": { "type": "Point", "coordinates": [-112.26, 33.46] },
"fields":{"speed": 20}
}
Aunque el vehículo está físicamente dentro de la geocerca, no coincide con el WHEREexpresión de la
geocerca y, por lo tanto, se considera fuera del alcance de esta geocerca en particular.
Al colocar el objeto en la misma posición física, pero con una velocidad que coincida con la
WHEREexpresión, la geocerca emite un evento interno .
$ tile38-cli
localhost:9851> SET fleet bus FIELD speed 51 POINT 33.460 -112.260
{"ok":true,"elapsed":"12.988µs"}
4 de 5 31-01-2024, 21:50
Geocerca about:blank
{
"command": "set",
"group": "5c5203ccf5ec4e4f349fd038",
"detect": "inside",
"hook": "warehouse",
"key": "fleet",
"time": "2019-01-30T13:06:36.769273-07:00",
"id": "bus",
"object": { "type": "Point", "coordinates": [-112.26, 33.46] },
"fields":{"speed": 51}
}
5 de 5 31-01-2024, 21:50