points-index.go
func NewExpiringPointsIndex(resolution Meters, expiration Minutes) *PointsIndex {
	currentPosition := make(map[string]Point)

	newExpiringSet := func() interface{} {
		set := newExpiringSet(expiration)

		set.OnExpire(func(id string, value interface{}) {
			point := value.(Point)
			delete(currentPosition, point.Id())
		})

		return set
	}

	return &PointsIndex{newGeoIndex(resolution, newExpiringSet), currentPosition}
}
func NewExpiringPointsIndex(resolution Meters, expiration Minutes) *PointsIndex {
	currentPosition := make(map[string]Point)

	newExpiringSet := func() interface{} {
		set := newExpiringSet(expiration)

		set.OnExpire(func(id string, value interface{}) {
			point := value.(Point)
			delete(currentPosition, point.Id())
		})

		return set
	}

	return &PointsIndex{newGeoIndex(resolution, newExpiringSet), currentPosition}
}
func NewExpiringPointsIndex ( resolution Meters , expiration Minutes ) * PointsIndex { currentPosition := make ( map [ string ] Point ) newExpiringSet := func ( ) interface { } { set := newExpiringSet ( expiration ) set . OnExpire ( func ( id string , value interface { } ) { point := value . ( Point ) delete ( currentPosition , point . Id ( ) ) } ) return set } return & PointsIndex { newGeoIndex ( resolution , newExpiringSet ) , currentPosition } }
// NewExpiringPointsIndex creates new PointIndex that expires the points in each cell after expiration minutes.
NewExpiringPointsIndex creates new PointIndex that expires the points in each cell after expiration minutes .