SphinxClient::setGeoAnchor()
(PECL sphinx >= 0.1.0)
Set anchor point for a geosphere distance calculations
说明
public SphinxClient::setGeoAnchor(string $attrlat,string $attrlong,float $latitude,float $longitude): bool
Sets anchor point for a geosphere distance(geodistance)calculations and enables them.
Once an anchor point is set, you can use magic "@geodist" attribute name in your filters and/or sorting expressions.
参数
- $attrlat
Name of a latitude attribute.
- $attrlong
Name of a longitude attribute.
- $latitude
Anchor latitude in radians.
- $longitude
Anchor longitude in radians.
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
参见
- SphinxClient::setFilterFloatRange
- SphinxClient::setFilterRange
- SphinxClient::setFilter
- SphinxClient::resetFilters
For this to work, attrlat and attrlng need to be in lower case otherwise you will get : "unknown latitude attribute ''"
When sorting on @geodist you have to use SetSortMode with SPH_SORT_EXTENDED, like below, if SPH_SORT_ATTR_ASC does not seem to work. $sphinx->SetSortMode(SPH_SORT_EXTENDED, '@geodist ASC');