江苏苏州建设行政主管部门网站,建网站怎样往网站传视频,管理网站英文,椒江网站建设公司go gin gorm连接postgres postgis输出geojson 1. 技术环境 go-gin-gorm postgres-postgis go vscode环境安装-智能提示配置
2. 简单实现代码 思路就是#xff1a;采用原生sql实现查询、更新等#xff0c;采用gorm的raw来执行sql语句
package mainimport (fmt采用原生sql实现查询、更新等采用gorm的raw来执行sql语句
package mainimport (fmtnet/httpgithub.com/gin-gonic/gingorm.io/driver/postgresgorm.io/gorm
)
// 前提是在postgres中安装好postgis插件
func main() {dsn : hostlocalhost userpostgres password5241 dbnametest port5432 sslmodedisable TimeZoneAsia/Shanghaidb, _ : 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. 结果图片