【问题标题】:Can QGIS server read projects from databaseQGIS服务器可以从数据库中读取项目吗
【发布时间】:2021-03-05 11:51:27
【问题描述】:

我有 QGIS 服务器工作。标准功能是将 ?map=path/to/projectfile.qgs 添加到服务器 URL。因此,您可以在 Web 应用程序中的项目之间动态切换。现在我制作我的项目并将我的项目文件上传到服务器,让它们在我的应用程序中工作。效果很好。

但我也可以将项目存储在数据库中。如果我可以告诉我的应用程序使用我的数据库中的项目会更好。跳过繁琐的文件更新过程。

研究这个我从 QGis 文档中发现了这个信息: https://docs.qgis.org/3.16/en/docs/server_manual/config.html 在第 5.2 节中。环境变量 我看到以下信息:

QGIS_PROJECT_FILE

.qgs 或 .qgz 项目文件,通常作为查询字符串中的参数传递(使用 MAP),您也可以将其设置为环境 变量(例如通过使用 mod_rewrite Apache 模块)。 postgresql://localhost:5432?sslmode=disable&dbname=mydb&schema=myschema&project=myproject

因此,您可以为 default 项目文件指向数据库中的项目文件。但这不是我想要的。我想动态地做。

我想要的是拥有类似 ?map=projectfile_in_my_database 的东西。并在我的 conf / 环境中指定这些存储在 de DB 中的服务器上。

这可能吗?

【问题讨论】:

    标签: database postgresql server project qgis


    【解决方案1】:

    您可以使用存储在数据库中的项目文件(在我的例子中是 postgres)。我是怎么做到的。

    1. 我在包含数据库连接凭据的主目录上创建了一个 pg_service 文件,让我们只需指定服务名称即可连接到数据库,例如使用 psql 你可以连接psql service=myservicename 并在 nginx 上设置 fastcgi 参数 fastcgi_param PGSERVICEFILE /home/qgis/.pg_service.conf;
    2. 我从 qgis 桌面连接到 postgres 数据库,指定了我在服务文件中设置的服务名称。
    3. 已将项目文件保存在数据库中。通过这样做,这个项目文件将包含通过服务名称的数据库连接。
    4. 为项目名称设置 fastcgi_param
    location / {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        gzip           off;
        include        fastcgi_params;
        fastcgi_param  QGIS_PROJECT_FILE postgresql:///?service=myservicename&schema=public&project=testproject;
        fastcgi_pass   unix:/var/run/fcgiwrap.socket;;
        }
    
    1. 默认的qgis项目,你可以通过url在你的Web应用程序的前端设置,这并不难。

    【讨论】:

      猜你喜欢
      • 2016-04-17
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多