首页
学习
活动
专区
工具
TVP
发布

两千万级别的空间查询最近点

基础数据范围

边界方位

lat [18.2 - 53.6] 3541 y

lon [73.4 - 135.1] 6165 x

time lat lon time,y,x

大概每隔 0.01° 一个点。

数据库初始化

批量插入数据

省略….

添加 geometry 字段

更新 geom 字段内容

创建空间索引

查询最近点

-- 性能很差。查询一次大概要20秒左右。后来发现把排序去掉效率很高。

解决方式

1、查询该点的一个缓冲区。缓冲区稍微大一些。

2、查询在该点缓冲区的所有点。

3、在通过第二步的结果之上,再查询最近点。

结果:发现性能之间达到毫秒级。(1000次循环查询用时大概1秒左右)

查询一个点的缓冲区

查询在该点缓冲区的所有点,再查询最近点

环境:

1、windows环境(win10,16G,i7)

2、postgresql9.4

3、postgis2.3

4、rgf 表中共用 21830265 条数据

参考链接

PostGIS 操作geometry方法

PostGIS根据已有列创建Geometry,并计算距离

WKT和Geometry

PostGIS 操作geometry方法 - 转

大批量查询1公里范围内的地标点方法

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190113G0TGZU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券