This was launched in redis version 3.2. It can be used to calculate geographical location information, the distance between two places, the people around it, etc. .
Add the specified geospatial location (latitude, longitude, name) to the specified key.
Here you can use some online latitude and longitude query tools to obtain 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
Go to the key china:city
and add the longitude and latitude of 5 places: Shanghai, Suzhou, Beijing, Guangzhou, and Haizhu District of Guangzhou.
Return the positions (longitude and latitude) of all given position elements from the key.
geopos china:city suzhou shanghai
Returns the coordinates of the location.
Returns the distance between two given positions.
If one of the two positions does not exist, the command returns a null value.
The parameter unit that specifies the unit must be one of the following units:
m means the unit is meters (default).
km means the unit is kilometers.
mi means the unit is miles.
ft means feet.
geodist china:city suzhou shanghai km
With the given longitude and latitude as the center, return the position element contained in the key, and the center All position elements whose distance does not exceed the given maximum distance.
georadius china:city 121.49295 31.22337 30 km
I am looking for cities within 30km with the coordinates 121.49295 31.22337 of Shanghai Huangpu District as the center.
Further away, within 100km, you can also find suzhou
, add withdist
to show the distance.
Added withcoord
can return the latitude and longitude.
plus count
returns only the amount I specify.
georadius china:city 121.49295 31.22337 100 km withdist withcoord count 1
This command is the same as the georadius command. It can find elements within the specified range.
But here we do not specify the center point coordinates, but specify which element is the center point.
georadiusbymember china:city suzhou 100 km withdist
Here, taking element suzhou
as the center point, find other elements within 100km on Friday.
One or more positional elements, represented by hash.
geohash china:city suzhou shanghai
Returns an 11-character Geohash string, a string representing the current longitude and latitude, which is a different form, converting the two-dimensional longitude and latitude into a one-dimensional String.
If the two strings in the structure above are closer, the distance between the two positions will be closer. This is all you need to know.
The underlying principle of geo is still zset. We can use the zset command to operate geo, such as removing cities from geo.
zrem china:city haizhuqu
The above is the detailed content of How to use Redis special data type Geospatial. For more information, please follow other related articles on the PHP Chinese website!