GeoServer - 一次将一个 shapefile 上传到同一个商店
GeoServer - Rest upload shapefiles one at a time to the same store
我可以通过以下命令使用 REST 上传 shapefile 来创建新商店
curl -v -u admin:geoserver -XPUT -H "Content-type: application/zip"
--data-binary @road1.zip
http://localhost:8080/geoserver/rest/workspaces/acme/datastores/roads/file.shp
但是,如果我尝试使用相同的命令将另一个 shapefile 添加到同一商店,但仅更改 shapefile 名称(见下文),则会删除前一层 (road1) 并添加新层 (road2)到这家店。
curl -v -u admin:geoserver -XPUT -H "Content-type: application/zip"
--data-binary @road2.zip
http://localhost:8080/geoserver/rest/workspaces/acme/datastores/roads/file.shp
所以看起来每次你 运行 这个命令,如果商店已经存在,那么 GeoServer 会删除其中的层并创建一个新的商店。因此问题是,是否可以在同一家商店中 一次 添加一层?以及如何去做?目前看来,每次你想添加一层时我们都必须创建一个新的数据存储,这并不理想,因为我想将几层分组到一个存储中。请注意,我不想上传 shapefile 目录,在这种情况下,可以通过 REST 将一堆 shapefile 上传到同一商店。
不,一个 Shapefile 数据存储不可能包含多个 Shapefile。因此,您看到的行为是正确且符合预期的。
如果您需要在单个商店中使用多个图层,您可以使用 shapefile 目录或基于数据库的商店之一(JDBC 或 GeoPackage)。
我可以通过以下命令使用 REST 上传 shapefile 来创建新商店
curl -v -u admin:geoserver -XPUT -H "Content-type: application/zip"
--data-binary @road1.zip
http://localhost:8080/geoserver/rest/workspaces/acme/datastores/roads/file.shp
但是,如果我尝试使用相同的命令将另一个 shapefile 添加到同一商店,但仅更改 shapefile 名称(见下文),则会删除前一层 (road1) 并添加新层 (road2)到这家店。
curl -v -u admin:geoserver -XPUT -H "Content-type: application/zip"
--data-binary @road2.zip
http://localhost:8080/geoserver/rest/workspaces/acme/datastores/roads/file.shp
所以看起来每次你 运行 这个命令,如果商店已经存在,那么 GeoServer 会删除其中的层并创建一个新的商店。因此问题是,是否可以在同一家商店中 一次 添加一层?以及如何去做?目前看来,每次你想添加一层时我们都必须创建一个新的数据存储,这并不理想,因为我想将几层分组到一个存储中。请注意,我不想上传 shapefile 目录,在这种情况下,可以通过 REST 将一堆 shapefile 上传到同一商店。
不,一个 Shapefile 数据存储不可能包含多个 Shapefile。因此,您看到的行为是正确且符合预期的。
如果您需要在单个商店中使用多个图层,您可以使用 shapefile 目录或基于数据库的商店之一(JDBC 或 GeoPackage)。