本文整理汇总了Golang中github.com/skypies/flightdb/gae.FlightDB.NewIter方法的典型用法代码示例。如果您正苦于以下问题:Golang FlightDB.NewIter方法的具体用法?Golang FlightDB.NewIter怎么用?Golang FlightDB.NewIter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/skypies/flightdb/gae.FlightDB
的用法示例。
在下文中一共展示了FlightDB.NewIter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: serfr1AtReport
func serfr1AtReport(c appengine.Context, s, e time.Time, opt ReportOptions) ([]ReportRow, ReportMetadata, error) {
meta := ReportMetadata{}
fdb := fdb.FlightDB{C: c}
maybeMemcache(&fdb, e)
tags := []string{flightdb.KTagSERFR1}
pos := sfo.KFixes[opt.Waypoint]
out := []ReportRow{}
iter := fdb.NewIter(fdb.QueryTimeRangeByTags(tags, s, e))
nSerfr1 := 0
for {
f, err := iter.NextWithErr()
if err != nil {
fdb.C.Errorf("serfr1AtReport iterator failed: %v", err)
return nil, nil, err
} else if f == nil {
break // We've hit EOF
}
nSerfr1++
if _, exists := f.Tracks["ADSB"]; exists == true {
meta["[B] with data from "+f.Tracks["ADSB"].LongSource()]++
}
if _, exists := f.Tracks["FA"]; exists == true {
meta["[B] with data from "+f.Tracks["FA"].LongSource()]++
} else {
meta["[B] with data from "+f.Track.LongSource()]++
}
if itp, err := f.BestTrack().PointOfClosestApproach(pos); err != nil {
c.Infof("Skipping flight %s: err=%v", f, err)
} else {
url := template.HTML(fmt.Sprintf("%s&waypoint=%s", flight2Url(*f), opt.Waypoint))
f.Tracks = nil // avoid running out of F1 RAM!
row := SERFR1AtRow{url, *f, itp}
out = append(out, row)
}
}
meta["[A] Total SERFR1 flights "] = float64(nSerfr1)
return out, meta, nil
}