func (this *Index) GetWayInBBox(bb geo.Bbox, tag string) ([]int64, error) { var ret []int64 size := bb.Size() iter := this.db.NewIterator(util.BytesPrefix([]byte(tag+":")), nil) for iter.Next() { key := iter.Key() //log.Println(iter.Key()) if key[0] != byte('_') { tmp := Bboxfrombytes(iter.Value()) //TODO determine best ratio if bb.IntersectWith(tmp) && size < tmp.Size()*1000 && size*1000 > tmp.Size() { //log.Println(iter.Key()) // ret = append(ret, Int64frombytes(key)) k, _ := strconv.ParseInt(strings.Split(string(key[:]), ":")[1], 10, 64) ret = append(ret, k) } } } iter.Release() err := iter.Error() log.Printf("%d Ways found in %v", len(ret), bb) return ret, err }