Data intiMobilitas

Pencarian Geospasial

Temukan pengemudi, toko, atau perangkat terdekat dalam radius atau kotak, dengan posisi langsung yang diperbarui setiap beberapa detik.

atau pencarian kotak
Radius
satuan
km, mi, m, ft
pembaruan posisi
Langsung
Langkah 1 dari 4
Pengemudi melaporkan posisi

Setiap pembaruan menggantikan posisi sebelumnya dari pengemudi.

Sesi contohplaying
# Pengemudi melaporkan posisi
hotkv> GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
(integer) 0

Panduan beranimasi dengan perintah HotKV yang sebenarnya dan balasan contoh. Klik langkah mana pun untuk melompat ke sana. Perintah dan balasan tetap dalam bahasa Inggris, persis seperti yang Anda ketik dan lihat di HotKV.

Masalahnya

Mencocokkan penumpang dengan pengemudi terdekat, atau pelanggan dengan toko terdekat yang punya stok, memerlukan pandangan segar atas ribuan posisi yang bergerak dan jawaban dalam milidetik. Database relasional dengan indeks spasial kewalahan dengan pembaruan sebanyak itu per detik.

Cara HotKV menanganinya

Posisi berada di indeks geospasial. Setiap pengemudi memperbarui posisinya sendiri setiap beberapa detik dengan GEOADD, dan GEOSEARCH mengembalikan semua orang dalam radius atau kotak, yang terdekat lebih dulu, beserta jaraknya. Indeks yang sama menjawab kueri pencari toko dan zona pengiriman.

Langkah demi langkah

Apa yang terjadi, perintah demi perintah

  1. 01

    Pengemudi melaporkan posisi

    Setiap pembaruan menggantikan posisi sebelumnya dari pengemudi.

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

    Penumpang meminta mobil

    Temukan lima pengemudi terdekat dalam 3 km, yang terdekat lebih dulu.

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

    Tawarkan perjalanan

    Kunci pengemudi agar dua penumpang tidak mendapat mobil yang sama.

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

    Jarak ke titik jemput

    Jarak antara dua anggota indeks.

    GEODIST drivers:berlin driver:17 driver:23 km
Di mana ini cocok

Skenario dunia nyata

Ride-hailing dan taksi

Pengemudi terdekat ditemukan dalam milidetik, dan kunci penawaran mencegah pemesanan ganda.

Platform pengiriman

Kurir di dekat restoran dicocokkan saat pesanan siap.

Pencari toko

Pelanggan melihat toko terdekat dalam kotak di sekitar tampilan peta.

Bawaan

Yang Anda dapatkan

Posisi langsung

GEOADD menambah atau memperbarui anggota berdasarkan bujur dan lintang.

GEOADD

Pencarian radius dan kotak

Di sekitar titik atau anggota, diurutkan berdasarkan jarak, dibatasi jumlahnya.

GEOSEARCHGEOSEARCHSTORE

Jarak dan posisi

Antaranggota, dalam satuan yang Anda pilih.

GEODISTGEOPOS

Sorted set biasa di bawahnya

Hapus anggota dan hitung dengan perintah sorted set yang sudah Anda kenal.

ZREMZCARD

Pertanyaan umum

Bagaimana menghapus pengemudi yang offline?

Indeks geospasial adalah sorted set, jadi ZREM menghapus anggotanya.

Bisakah saya mencari dalam persegi panjang?

Ya. GEOSEARCH BYBOX menerima lebar dan tinggi di sekitar titik atau anggota.

Satuan apa yang didukung?

Meter, kilometer, kaki, dan mil.

Kasus penggunaan terkait

Coba pada beban kerja Anda sendiri

HotKV berbicara protokol Redis, jadi Anda dapat mengarahkan klien yang sudah ada ke HotKV dan menjalankan perintah yang sama.