Я думаю, это то, что вы ищете:
Предполагается, что BoundingBox является классом дела, а структура является следующей:
case class BoundingBox(lowerLeft: (Double, Double), lowerRight: (Double, Double), upperLeft: (Double, Double),
upperRight: (Double, Double))
val pointArray: Array[(Double, Double)] = Array((1, 2), (2, 1), (3, 3), (4, 8), (5, 6))
val listOfBBs = List(BoundingBox((1, 2), (2, 3), (4, 5), (6, 7)))
val x: Array[Map[(Double, Double), BoundingBox]] =for {
point <- pointArray
eachBB <- listOfBBs
if point._1 >= eachBB.lowerLeft._1 &&
point._1 <= eachBB.upperRight._1 &&
point._2 >= eachBB.lowerLeft._2 &&
point._2 <= eachBB.upperRight._2
} yield PointsMappedtoGrids1 + (point -> eachBB)