Monday 25 March 2019

postgis - Programmatically setting a layer's bounding box in Geoserver


I have a system built on PostGIS/GeoServer/OpenLayers. Data (a ship's voyage track) is inserted into the database in real-time - a bunch of variables and point geometry type. This is served up via (primarily) WFS to OpenLayers.


I dynamically publish the layer for a new voyage using REST. When done this way, the bounding box (according to the config page) is set to 0,0,-1,-1 for both native and lat/long.


What I'd like to do is set this to a reasonable value programmatically - effectively automating going in and using the 'Compute from Data'/'Compute from Native Bounds' links on the layer config page.



My preference is to do this via a RESTful call, however this doesn't seem to be supported in the current version of the standard API. Any other alternative solutions are more than welcome.



Answer



This is already an old question, but I haven't found many example documenting this on he Web. On GeoServer version 2.5.1 the following should work (it should also work with older versions). :


Example XML




workspace
014531_layer_group

014531_layer

014531_layer_watermark






12.91
-6.97
14.32

-5.44
EPSG:4326



Example REST statement


sudo curl -v -u user:pwd -XPOST -d @yourxmlfile.xml -H "Content-type: text/xml" http://localhost:8080/geoserver/rest/layergroups

It doesn't take the bounding box of the underlying layer, but you could retrieve it by using a Selenium script


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...