如何从 web 界面添加栅格数据 postgis

how to add raster data postgis from a web interface

在设计框架和开发一个用于传播空间数据的GIS平台WEB(Web Mapping),我需要创建一个web界面,帮助管理员通过web界面将这些空间数据添加到postgis中我尝试了这段代码,我没有收到任何错误,但没有添加数据

<form method="post" action="" enctype="multipart/form-data">
     <label for="fichier">Ajouter raster :</label><br />
     <input type="file" name="fichier"  />
     <input type="submit" name="submit" value="Envoyer" />
</form>
<?php 
        $db = pg_connect('host=5432 dbname=gisdb user=postges password=ou$$am@16'); 

        $raster = pg_escape_string($_POST['fichier']); 
        $name = $_FILES['$raster']['name']; 

        $query = "INSERT INTO eau_param_hydro(rast,filname) VALUES('". addslashes($raster) ."','" . $name . "')"; 
        $result = pg_query($query); 
        if (!$result) { 
            $errormessage = pg_last_error(); 
            echo "Error with query: " . $errormessage; 
            exit(); 
        } 
        pg_close(); }
        ?> 

  </body>

您不能像这样在光栅列中插入文件。

您应该使用 raster2pgsql 导入该文件(例如 raster2pgsql -s -t 50x50 -f -I -Y myRaster.tif rasterSchema.RasterName > raster.sql)。

此命令将生成一个 raster.sql 文件,其中包含 SQL 以插入光栅数据。

您可以使用 php exec() 函数执行该命令,传递 $_FILES['fichier']['tmp_name']