Postgresql 地理位置操作
来源:互联网 发布:c语言嵌入式汇编 编辑:程序博客网 时间:2024/05/29 14:31
(longitude:经度 latitude:纬度 radius:范围/m)
insert/update 地理位置:
例:(业务为:上传车的位置,更改driver_status表中的curr_loc(类型:geometry(Point,4326))字段,实时记录车当前位置)
st_geomfromtext('point(longitude latitude)',4326);update driver_status set curr_loc = st_geomfromtext('point(113.22 115.25)',4326) where driver_id=4
【注:这里 不要使用 ?注入的方式填写 经纬度,通过字符串拼接的方式】
另外,还可以通过这种方法直接注入对象:
核心代码和引用包:
import org.postgis.Point;import org.postgis.PGgeometry;long timestamp = System.currentTimeMillis();String sql = "update driver_status set curr_loc = ? where driver_id=4";Point point = new Point(longitude,latitude);point.setSrid(4326);PGgeometry geometry = new PGgeometry();geometry.setGeometry(point);statement.setString(1,geometry);
select 位置范围:
ST_DWithin(curr_loc, ST_GeomFromText('POINT(longitude latitude)', 4326)::geography, radius)例:(业务为:查询坐标点radius米范围内所有的车,"curr_loc"为car表的坐标字段)
select * from car where ST_DWithin(curr_loc, ST_GeomFromText('POINT(? ?)', 4326)::geography,radius)
order by根据距离排序:
order by origin_loc <-> ST_GeomFromText('POINT(longitude latitude)', 4326) asc例:(业务为:查询中心坐标点周围1公里内,且时间在2分钟之内 的数据,按据中心点距离升序)
select * from reserve where ST_DWithin(origin_loc, ST_GeomFromText('POINT(? ?)', 4326), 1) andreserve_time+'2 minutes' >= now() order by origin_loc <-> ST_GeomFromText('POINT(? ?)', 4326)
阅读全文
0 0
- Postgresql 地理位置操作
- 用postgreSQL做基于地理位置的app
- 用postgreSQL做基于地理位置的app
- 用postgreSQL做基于地理位置的app
- [postgresql]postgresql操作记录
- 【PostgresQL】PostgresQL 基本操作
- 【PostgreSQL】PostgreSQL基础操作
- postgresql 操作
- PostgreSQL操作
- postgresql 操作
- postgresql操作
- PostgreSQL操作
- Redis,Geo,(地理位置信息操作)
- 地理位置
- 地理位置
- 地理位置
- 地理位置
- 地理位置
- 算法的一些小栗子4(归并排序)
- java常量池测试总结
- 线程的知识点总结1。Join线程的使用
- 二叉树的遍历非递归
- POJ
- Postgresql 地理位置操作
- 关于c语言srand函数
- 读文件到链表+界面管理
- JAVA异常处理
- Struts2+Spring+MyBatis环境整合开发案例(MVC架构)
- 对象交换排序面试题
- Java7提供了简化关闭资源的try语句:try-with-resources自动关闭资源的try语句
- java设计模式学习—桥接(Bridge)模式
- Spring-三种依赖注入方式