Rumah > pangkalan data > Redis > Cara menggunakan Geospatial jenis data khas Redis

Cara menggunakan Geospatial jenis data khas Redis

PHPz
Lepaskan: 2023-05-26 14:55:06
ke hadapan
613 orang telah melayarinya

Redis jenis data khas Ruang geografi geospatial

Ini telah dilancarkan dalam redis versi 3.2 Ia boleh digunakan untuk mengira maklumat lokasi geografi, jarak antara dua tempat, orang di sekelilingnya, dsb.

1. geoadd

Menambah lokasi geospatial yang ditentukan (latitud, longitud, nama) pada kunci yang ditentukan.

Di sini anda boleh menggunakan beberapa alatan pertanyaan latitud dan longitud dalam talian untuk mendapatkan data.

geoadd china:city 121.472644 31.231706 shanghai
geoadd china:city 120.619585 31.299379 suzhou
geoadd china:city 116.405285 39.904989 beijing
geoadd china:city 113.280637 23.125178 guangzhou 113.26197 23.10379 haizhuqu
Salin selepas log masuk

Tambah longitud dan latitud 5 tempat pada kekunci china:city: Shanghai, Suzhou, Beijing, Guangzhou dan Daerah Haizhu di Guangzhou.

Cara menggunakan Geospatial jenis data khas Redis

2. geopos

Mengembalikan kedudukan (longitud dan latitud) semua elemen kedudukan yang diberikan daripada kunci.

geopos china:city suzhou shanghai
Salin selepas log masuk

Mengembalikan koordinat lokasi.

Cara menggunakan Geospatial jenis data khas Redis

3. Geodist

Mengembalikan jarak antara dua lokasi yang diberikan.

Jika salah satu daripada dua kedudukan tidak wujud, arahan itu mengembalikan nilai nol.

Unit parameter yang menyatakan unit mestilah salah satu daripada unit berikut:

  • m bermaksud unit ialah meter (lalai).

  • km bermaksud unit ialah kilometer.

  • mi bermaksud batu.

  • kaki bermaksud kaki.

geodist china:city suzhou shanghai km
Salin selepas log masuk

Cara menggunakan Geospatial jenis data khas Redis

4 georadius

Mengambil longitud dan latitud sebagai pusat, antara elemen kedudukan yang terkandung dalam kunci pulangan. , pusat Semua elemen kedudukan yang jaraknya tidak melebihi jarak maksimum yang diberikan.

georadius china:city 121.49295 31.22337 30 km
Salin selepas log masuk

Saya sedang mencari bandar dalam jarak 30km dengan koordinat 121.49295 31.22337 Daerah Huangpu, Shanghai sebagai pusatnya.

Cara menggunakan Geospatial jenis data khas Redis

Jauh sikit, dalam 100km, masih boleh jumpa suzhou, tambah withdist untuk tunjuk jarak.

tambah withcoord boleh mengembalikan latitud dan longitud.

Cara menggunakan Geospatial jenis data khas Redis

tambah count hanya mengembalikan jumlah yang saya nyatakan.

georadius china:city 121.49295 31.22337 100 km withdist withcoord count 1
Salin selepas log masuk

Cara menggunakan Geospatial jenis data khas Redis

5. georadiusbymember

Arahan ini adalah sama dengan arahan georadius, dan boleh mencari elemen dalam julat yang ditentukan.

Tetapi di sini kami tidak menyatakan koordinat titik tengah, tetapi menentukan elemen mana yang merupakan titik tengah.

georadiusbymember china:city suzhou 100 km withdist
Salin selepas log masuk

Di sini, mengambil elemen suzhou sebagai titik tengah, cari elemen lain dalam jarak 100km pada hari Jumaat.

Cara menggunakan Geospatial jenis data khas Redis

6. geohash

Satu atau lebih elemen kedudukan, diwakili oleh cincang.

geohash china:city suzhou shanghai
Salin selepas log masuk

Cara menggunakan Geospatial jenis data khas Redis

Mengembalikan rentetan Geohash 11 aksara, rentetan yang mewakili longitud dan latitud semasa, iaitu untuk menukar bentuk dan menukar longitud dan latitud dua dimensi kepada Rentetan satu dimensi.

Jika dua rentetan dalam struktur di atas lebih dekat, jarak antara kedua-dua kedudukan akan lebih dekat Ini sahaja yang anda perlu tahu.

Prinsip asas geo masih zset. Kita boleh menggunakan perintah zset untuk mengendalikan geo, seperti mengalih keluar bandar daripada geo.

zrem china:city haizhuqu
Salin selepas log masuk

Cara menggunakan Geospatial jenis data khas Redis

Atas ialah kandungan terperinci Cara menggunakan Geospatial jenis data khas Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan