pg入门18—怎样使用pg gis

打印 上一主题 下一主题

主题 1019|帖子 1019|积分 3057

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 下载postgre gis镜像




2. 运行镜像

  1. docker run -p 15432:5432 -d  -e POSTGRES_PASSWORD=Ab123456! postgis/postgis:12-3.4-alpine
复制代码

3. 使用gis

  1. # 进入容器,登录pg
  2. docker exec -it bash
  3. # 登录数据库
  4. psql -U postgres
  5. # 创建数据库
  6. CREATE DATABASE mygeotest;
  7. # 使用mygeotest数据库
  8. /c mygeotest
  9. # 创建gis扩展
  10. CREATE EXTENSION postgis;
  11. ###### 存储地点 #######################################################
  12. # 创建表,数据类型为Point
  13. CREATE TABLE places (
  14.     id SERIAL PRIMARY KEY,
  15.     name VARCHAR(100),
  16.     geom GEOGRAPHY(Point, 4326)  -- 使用 WGS 84 坐标系
  17. );
  18. # 插入数据
  19. INSERT INTO places (name, geom)
  20. VALUES ('My Location', ST_GeomFromText('POINT(30 10)', 4326));
  21. # 查询数据
  22. SELECT id, name, ST_AsText(geom) FROM places;
  23. ##### 存储路线 #######################################################
  24. # 创建表,数据类型为LINESTRING
  25. CREATE TABLE routes (  id SERIAL PRIMARY KEY,  name VARCHAR(100),  geom GEOMETRY(LINESTRING, 4326) );
  26. # 插入数据
  27. INSERT INTO routes (name, geom)
  28. VALUES ('Route 1', ST_GeomFromText('LINESTRING(30 10, 40 40, 50 50)', 4326));
  29. # 查询数据
  30. SELECT id, name, ST_AsText(geom) FROM routes;
  31. # 存储3维空间信息
  32. # 创建表,数据类型为POINTZ
  33. CREATE TABLE locations (  id SERIAL PRIMARY KEY,   name VARCHAR(100),  geom GEOMETRY(POINTZ, 4326) );
  34. # 插入数据
  35. INSERT INTO locations (name, geom)
  36. VALUES ('Location A', ST_GeomFromText('POINT(30 10 100)', 4326));
  37. # 查询数据
  38. SELECT id, name, ST_AsText(geom) FROM locations;
复制代码
4. 使用空间函数

PostGIS 提供了许多空间函数,例如计算面积、距离、缓冲区等。例如,计算两点之间的距离:
  1. SELECT ST_Distance( ST_GeomFromText('POINT(30 10)', 4326), ST_GeomFromText('POINT(30.1 10.1)', 4326) );
复制代码
5. 其他功能



  • 空间索引:为了提高查询性能,可以为几何列创建空间索引:
    1. CREATE INDEX idx_places_geom ON places USING GIST(geom);
    复制代码
  • 支持多种数据类型:PostGIS 支持多种几何类型,包括点、线、多边形等,可以使用这些类型来表示复杂的地理对象。
6. 使用工具和库

你可以使用诸如 QGIS、GeoServer、Leaflet 等工具和库与 PostGIS 数据举行交互,举行可视化和进一步分析。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表