首页 > 其他分享 >基于posthgis 按照距离排序

基于posthgis 按照距离排序

时间:2022-12-23 10:57:27浏览次数:34  
标签:基于 name postgis 4326 ST geom posthgis mylocation 排序

安装环境 postsql 需要安装拓展 postgis 使用dcoker

version: '3'
services:
  postgis:
    image: mdillon/postgis:latest
    container_name: postgis
    ports:
      - 5432:5432
    environment:
      POSTGRES_PASSWORD: postgis
    volumes:
      - ~/work/data_postgis_dir:/var/lib/postgresql/data

安装后数据 用户名:postgres 密码:postgis

创建数据 使用投影坐标 4326单位

CREATE TABLE mylocation ( 
  id SERIAL PRIMARY KEY,
  geom GEOMETRY(Point, 4326),
  name VARCHAR(128),
  x double precision,
  y double precision
); 

出入测试数据

INSERT INTO mylocation (geom,name,x,y) VALUES (
  ST_GeomFromText('POINT(0.0001 0)', 4326),'zhangsan',0.0001,0
);
INSERT INTO mylocation (geom,name,x,y) VALUES (
  ST_GeomFromText('POINT(0.001 0)', 4326),'zhangsan',0.001,0
);
INSERT INTO mylocation (geom,name,x,y) VALUES (
  ST_GeomFromText('POINT(0.001 0)', 4326),'zhangsan',0.001,0
);
INSERT INTO mylocation (geom,name,x,y) VALUES (
  ST_GeomFromText('POINT(0.1 0)', 4326),'zhangsan',0.1,0
);

查询附近 1000m的距离

SELECT id, name,geom,x,y,   ST_DistanceSphere(
                      geom,
                      ST_GeometryFromText('POINT(0 0)')) distance
FROM mylocation
WHERE ST_DWithin(
  geom::geography, 
  ST_GeomFromText('POINT(0 0)', 4326)::geography,
  1000
) ORDER BY distance asc;

标签:基于,name,postgis,4326,ST,geom,posthgis,mylocation,排序
From: https://www.cnblogs.com/guanchaoguo/p/17000200.html

相关文章

  • 基于容器的PaaS混合云的几种形式
    概述这是Gartner的一个图,提供了全球的基于容器的PaaS公有云、混合云服务的梳理展示:这里提供一个其他的视角:中国市场,基于容器的PaaS混合云(公有云+私有云)的相关......
  • [datatable]排序时指定某列不可排序
    datatable是一个jquery扩展的表格插件。其提供了强大的表格功能。官方地址:http://www.datatables.net/ 在官方示例中,对于表格的是否可排序是在初始化中设置的一个值来决定......
  • Gridview排序与分页-不使用“DataSourceControl DataSource”的情况下如何分页和排序
    如果你在GridView控件上设置AllowPaging="true"orAllowSorting="true"而没有使用使用数据源控件DataSource(i.e.SqlDataSource,ObjectDataSource),运行则会出现下列......
  • WPF 基于Geometry的橡皮擦功能
    这是我大约半年前就想写的随笔。功能很简单。就是基于Geometry的画布,记录鼠标轨迹生成PathGeometry。再就是添加删除Path的功能也就是path笔迹删除。目前是实现了两种方......
  • R语言基于决策树的银行信贷风险预警模型|附代码数据
    原文链接:http://tecdat.cn/?p=2783最近我们被客户要求撰写关于信贷风险预警的研究报告,包括一些图形和统计输出。我国经济高速发展,个人信贷业务也随着快速发展,而个人信贷......
  • m基于数字锁相环DPLL的分频器simulink仿真
    1.算法概述       随着数字电路技术的发展,数字锁相环在调制解调、频率合成、FM立体声解码、彩色副载波同步、图象处理等各个方面得到了广泛的应用。数字锁相环不......
  • 基于.NetCore开发博客项目 StarBlog - (25) 图片接口与文件上传
    前言上传文件的接口设计有两种风格,一种是整个项目只设置一个接口用来上传,然后其他需要用到文件的地方,都只存一个引用ID;另一种是每个需要文件的地方单独管理各自的文件。这......
  • 【TEA算法】基于FPGA的TEA算法的实现
    1.软件版本MATLAB2013b,quartusii12.12.本算法理论知识标准的TEA算法使用64位的明文分组和128位的密钥,它使用Feistel分组加密框架,至少32轮的加密循环次数。该算法使用......
  • 【Unity】基于波函数坍塌算法实现赛道自动化生成
    前言:很久没有写博客了,最近忙里偷闲准备恢复写博客的习惯,一是整理之前的笔记,二是梳理下知识点以供回顾。想写的内容很多,准备先针对以往做过的项目写个总结,最近在网上看到利......
  • 八大排序算法
    1.冒泡排序特点:相邻元素两两比较,把值大的元素往下交换。缺点:冒泡排序的时间复杂度太高冒泡排序的过程如下图所示,其展示了一趟排序的过程,在下一趟的排序过程中,最后一个排......