当前位置: 首页 > news >正文

go gin gorm连接postgres postgis输出geojson

go gin gorm连接postgres postgis输出geojson

1. 技术环境

        go-gin-gorm

        postgres-postgis

        go vscode环境安装-智能提示配置

2. 简单实现代码

        思路就是:采用原生sql实现查询、更新等,采用gorm的raw来执行sql语句

package mainimport ("fmt""net/http""github.com/gin-gonic/gin""gorm.io/driver/postgres""gorm.io/gorm"
)
// 前提是在postgres中安装好postgis插件
func main() {dsn := "host=localhost user=postgres password=5241 dbname=test port=5432 sslmode=disable TimeZone=Asia/Shanghai"db, _ := gorm.Open(postgres.New(postgres.Config{DSN:                  dsn,PreferSimpleProtocol: true,}), &gorm.Config{})r := gin.Default()r.GET("/data/:table_name", func(c *gin.Context) {table_name := c.Param("table_name")// 从postgis中利用 ST 函数 获得的结果,以string返回,然后前端进行解析即可var result stringif db.Migrator().HasTable(table_name) {sqls := fmt.Sprintf("select json_build_object('type', 'FeatureCollection', 'name', '%s', 'features', json_agg(ST_ASGeoJSON(t.*)::json)) from %s AS t", table_name, table_name)db.Raw(sqls).Scan(&result)}fmt.Printf("%q", result)c.JSON(http.StatusOK, gin.H{"message": "ok","data":    result,})})r.Run(":8080")
}

3. 结果图片

        

http://www.lryc.cn/news/158585.html

相关文章:

  • 4. Java 的线程安全机制之`volatile`
  • ​Vue + Element UI前端篇(二):Vue + Element 案例 ​
  • Qt5中connect信号槽无效问题 C++
  • 服务端 TCP 连接的 TIME_WAIT 过多问题的分析与解决
  • 【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移
  • 肖sir__设计测试用例方法之编写测试用例12
  • Android 11.0 ota升级之Systemui下拉状态栏quick_settings_tiles_default值减少时更新的功能实现
  • Android Studio中创建java项目
  • 冠达管理:“旺季”来临,煤炭板块走高,云煤能源、陕西黑猫涨停
  • 【EI检索】第四届公共卫生与数据科学国际学术研讨会(ICPHDS 2023)
  • 对时序数据进行分类与聚类
  • Win10如何找回图片查看器
  • 【脑机接口】基于运动想象的康复指导在脑卒中偏瘫患者中的应用
  • vue-cli中vuex下$store”未在实例上定义
  • AutoSAR配置与实践(实践篇)12.1 BSW WatchDog功能的配置和实现
  • 【UI自动化测试】Jenkins配置
  • C#使用DataTable的Select方法来选择特定的字段
  • 总结梳理HTTP状态码
  • MySQL 8.0(winx64)安装笔记
  • vue封装wangEditor
  • 【Spring Boot 源码学习】深入 FilteringSpringBootCondition
  • docker 笔记6:高级篇 DockerFile解析
  • 微信小程序navigateTo进入页面后返回原来的页面需要携带数据回来
  • Python照片压缩教程详解
  • 软路由的负载均衡设置:优化网络性能和带宽利用率
  • CH06_第一组重构(上)
  • RHCSA-VMware Workstation Pro-Linux基础配置命令
  • YOLO-NAS详细教程-姿势估计实现
  • 【扩散模型 李宏毅B站教学以及基础代码运用】
  • SpringBoot隐藏文件