mirror of https://github.com/tidwall/tile38.git
Include "distance" to output when user specifically requests
fixes #599
This commit is contained in:
parent
dd26839351
commit
901919c4e3
|
@ -172,11 +172,12 @@ func fenceMatch(
|
|||
sw.fullFields = true
|
||||
sw.msg.OutputType = JSON
|
||||
sw.writeObject(ScanWriterParams{
|
||||
id: details.id,
|
||||
o: details.obj,
|
||||
fields: details.fields,
|
||||
noLock: true,
|
||||
distance: distance,
|
||||
id: details.id,
|
||||
o: details.obj,
|
||||
fields: details.fields,
|
||||
noLock: true,
|
||||
distance: distance,
|
||||
distOutput: fence.distance,
|
||||
})
|
||||
|
||||
if sw.wr.Len() == 0 {
|
||||
|
|
|
@ -66,6 +66,7 @@ type ScanWriterParams struct {
|
|||
o geojson.Object
|
||||
fields []float64
|
||||
distance float64
|
||||
distOutput bool // query or fence requested distance output
|
||||
noLock bool
|
||||
ignoreGlobMatch bool
|
||||
clip geojson.Object
|
||||
|
@ -433,7 +434,7 @@ func (sw *scanWriter) writeObject(opts ScanWriterParams) bool {
|
|||
|
||||
wr.WriteString(jsfields)
|
||||
|
||||
if opts.distance > 0 {
|
||||
if opts.distOutput || opts.distance > 0 {
|
||||
wr.WriteString(`,"distance":` + strconv.FormatFloat(opts.distance, 'f', -1, 64))
|
||||
}
|
||||
|
||||
|
@ -496,7 +497,7 @@ func (sw *scanWriter) writeObject(opts ScanWriterParams) bool {
|
|||
vals = append(vals, resp.ArrayValue(fvals))
|
||||
}
|
||||
}
|
||||
if opts.distance > 0 {
|
||||
if opts.distOutput || opts.distance > 0 {
|
||||
vals = append(vals, resp.FloatValue(opts.distance))
|
||||
}
|
||||
|
||||
|
|
|
@ -380,6 +380,7 @@ func (server *Server) cmdNearby(msg *Message) (res resp.Value, err error) {
|
|||
o: o,
|
||||
fields: fields,
|
||||
distance: meters,
|
||||
distOutput: s.distance,
|
||||
noLock: true,
|
||||
ignoreGlobMatch: true,
|
||||
skipTesting: true,
|
||||
|
|
Loading…
Reference in New Issue