でゲット最寄りのポイントは、私は、次のケースクラスを持っています sub_block_geom:地理滑らかな
そして私は、指定された点の最も近いサブブロックを返すように関数を定義
override def getNearestSubBlock(point: Point): Future[SubBlock] = {
val query = sql"""SELECT sub_block_id,block_id,name,ST_AsText(geom_location),sub_block_geom from now.sub_block order by ST_Distance(geom_location, ST_MakePoint(${point.getX()}, ${point.getY()})::geography) limit 1""".as[SubBlock].head
db.run(query)
}
implicit val getSubBlock = GetResult(r => SubBlock(r.nextIntOption(), r.nextInt(), r.nextString(), Option(Location.location2Point(Location.fromWKT(r.nextString()))), Option(new WKTReader().read(r.nextString())))
私の要求は正しい結果を返しますが、サブスレッドの "例外"(メインスレッド "java.lang.NullPointerException")が発生した後、データベース内でsub_block_geomがnullであるため、暗黙のval getSubBlockまたはfilter、sortedBy、...とクエリを書くにはどうすればいいのかわかりません。
さて、あなたの質問は、今のところほとんど答えることができません。ここで必要な情報は、あなたの 'SubBlock'クラスは何ですか?正確なエラースタックトレースは何ですか? –
あなたの 'getSubBlock'で' null'の可能性を適切に処理するだけです。 –