·
注意点:
1创建的时候要必须点定义
val wktReader = new WKTReader() wktReader 用于把前端传进来的Point类型的定位转成postSql数据库存的类型geom.Geometry2.传入方式和转过过程举例: val point = (req.body \ "point").as[String] //用户定位 val location = wktReader.read(point).asInstanceOf[Point]
3.slick层存储方式的定义类型:
point: com.vividsolutions.jts.geom.Geometry
4.silck返回到scala的时候不能直接返回,需要类型转换:
ret为从slcik直接查询返回的geom.Geometry类型 显示转换: ret.cllLocation.asInstanceOf[Point].toText
在此处添加文本段落简易基本操作:
1.根据传进来的定位做圆半径筛选。
比如当前定位的3.5公里内的位置筛选:
.filter(r => {(r.cllLocation <-> apPoint) < 3.5.bind})
2.根据传进来的定位做距离由近到远排序: .
sortBy( i => (i.orid, i.cllLocation <-> point)) 去每一个类别的第一项在postSql中用去重的方式可直接获取。
map(i => (i.orid, i.cllAdd, i.cllLocation)).distinctOn(_._1)