KerndataMobiliteit

Geospatiaal zoeken

Vind de dichtstbijzijnde chauffeurs, winkels of apparaten binnen een straal of een vak, met live posities die om de paar seconden worden bijgewerkt.

of zoeken in een vak
Straal
eenheden
km, mi, m, ft
positie-updates
Live
Stap 1 van 4
Chauffeurs melden posities

Elke update vervangt de vorige positie van de chauffeur.

Voorbeeldsessieplaying
# Chauffeurs melden posities
hotkv> GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
(integer) 0

Een geanimeerde walkthrough met echte HotKV-commando's en voorbeeldantwoorden. Klik op een stap om ernaartoe te springen. Commando's en antwoorden blijven Engels, precies zoals je ze in HotKV typt en ziet.

Het probleem

Een passagier koppelen aan de dichtstbijzijnde chauffeur, of een klant aan de dichtstbijzijnde winkel met voorraad, vereist een actueel overzicht van duizenden bewegende posities en een antwoord in milliseconden. Een relationele database met ruimtelijke indexen heeft moeite met zoveel updates per seconde.

Hoe HotKV het aanpakt

Posities leven in een geospatiale index. Elke chauffeur werkt om de paar seconden zijn eigen positie bij met GEOADD, en GEOSEARCH geeft iedereen binnen een straal of een vak terug, de dichtstbijzijnde eerst, met hun afstand. Dezelfde index beantwoordt queries voor winkelzoekers en bezorgzones.

Stap voor stap

Wat er gebeurt, commando voor commando

  1. 01

    Chauffeurs melden posities

    Elke update vervangt de vorige positie van de chauffeur.

    GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
  2. 02

    Een passagier vraagt om een auto

    Vind de vijf dichtstbijzijnde chauffeurs binnen 3 km, de dichtstbijzijnde eerst.

    GEOSEARCH drivers:berlin FROMLONLAT 13.4000 52.5190 BYRADIUS 3 km ASC COUNT 5 WITHDIST
  3. 03

    De rit aanbieden

    Vergrendel de chauffeur zodat twee passagiers niet dezelfde auto kunnen krijgen.

    SET offer:driver:17 rider:42 NX EX 15
  4. 04

    Afstand tot het ophaalpunt

    Afstand tussen twee leden van de index.

    GEODIST drivers:berlin driver:17 driver:23 km
Waar het past

Praktijkscenario's

Ritdiensten en taxi's

Chauffeurs in de buurt worden in milliseconden gevonden, en een aanbiedingslock voorkomt dubbele boekingen.

Bezorgplatforms

Koeriers in de buurt van een restaurant worden gematcht zodra bestellingen klaar zijn.

Winkelzoekers

Klanten zien de dichtstbijzijnde winkels binnen een vak rond de kaartweergave.

Ingebouwd

Wat je krijgt

Live posities

GEOADD voegt leden toe of werkt ze bij op lengte- en breedtegraad.

GEOADD

Zoeken op straal en vak

Rond een punt of een lid, gesorteerd op afstand, beperkt op aantal.

GEOSEARCHGEOSEARCHSTORE

Afstanden en posities

Tussen leden, in de eenheid die je kiest.

GEODISTGEOPOS

Eronder gewone sorted sets

Verwijder leden en tel ze met de sorted-set-commando's die je kent.

ZREMZCARD

Veelgestelde vragen

Hoe verwijder ik een chauffeur die offline gaat?

Een geospatiale index is een sorted set, dus ZREM verwijdert het lid.

Kan ik in een rechthoek zoeken?

Ja. GEOSEARCH BYBOX neemt een breedte en hoogte rond een punt of een lid.

Welke eenheden worden ondersteund?

Meters, kilometers, voet en mijlen.

Verwante use cases

Probeer het op je eigen workload

HotKV spreekt het Redis-protocol, dus je kunt een bestaande client erop richten en dezelfde commando's uitvoeren.