[Geoserver-devel] getBBox as centralized service

Hi all,
I’m planning to develop a centralized service to calculate BBox.

Currently I’m using a small set of GeoTools utils on the client side in combination with the getCapabilities to reproject the bounding box of each layer to the new desired projection.

For our purpose this in no more acceptable and we need a centralized service which will be connected to the user defined projection added to the geoserver datadir.

The service will be used to:

  1. return a set of BoundingBox for a given layer
    F.e.:
    http://SERVER/?request=getBBox&layers=layer1,…,layerN&srs=srs1,…,srsM&outputFormat=application/json
    Should return something like:
    {
    layer1:[
    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
    “bbox”: [-180.0, -90.0, 180.0, 90.0]List
    },

    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
    “bbox”: [-180.0, -90.0, 180.0, 90.0]
    },
    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
    “bbox”: [-16000000, -8000000, 16000000, 8000000]
    }
    ],

layerN:[
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
“bbox”: [-100.0, -90.0, 100.0, 90.0]
},

{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
“bbox”: [-100.0, -90.0, 100.0, 90.0]
},
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
“bbox”: [-14000000, -8000000, 14000000, 8000000]
}
]
}

  1. return a set of BoundingBox for a given BoundingBox

F.e.:
http://SERVER/?request=getBBox&bbox=-180,-90,180,90&srs=srs1,…,srsM&outputFormat=application/json
Should return something like:
{
bboxes:
[
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
“bbox”: [-180.0, -90.0, 180.0, 90.0]
},

{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
“bbox”: [-180.0, -90.0, 180.0, 90.0]
},
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
“bbox”: [-16000000, -8000000, 16000000, 8000000]
}
]
}

If an SRS is not resolved an exception is returned.

The question is:
What do you think about this service? are there any valid alternatives?
Do you think that this can be useful to the geoserver community?
If so, in which way this should be developed (external module, integration with wms or wfs, etc)?
I need this service ASAP so I’ll start its implementation within this week any feedback is really appreciated.

Cheers,
Carlo Cancellieri

You could implement this as a WPS Process. That would be faster and simpler to code on the server side.

Here’s a tutorial about how to do this:

http://suite.opengeo.org/opengeo-docs/processing/wpsjava/index.html

On Wed, Nov 21, 2012 at 12:45 PM, Carlo Cancellieri <ccancellieri@anonymised.com> wrote:

Hi all,
I’m planning to develop a centralized service to calculate BBox.

Currently I’m using a small set of GeoTools utils on the client side in combination with the getCapabilities to reproject the bounding box of each layer to the new desired projection.

For our purpose this in no more acceptable and we need a centralized service which will be connected to the user defined projection added to the geoserver datadir.

The service will be used to:

  1. return a set of BoundingBox for a given layer
    F.e.:
    http://SERVER/?request=getBBox&layers=layer1,….,layerN&srs=srs1,…,srsM&outputFormat=application/json
    Should return something like:
    {
    layer1:[
    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
    “bbox”: [-180.0, -90.0, 180.0, 90.0]List
    },

    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
    “bbox”: [-180.0, -90.0, 180.0, 90.0]
    },
    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
    “bbox”: [-16000000, -8000000, 16000000, 8000000]
    }
    ],

layerN:[
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
“bbox”: [-100.0, -90.0, 100.0, 90.0]
},

{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
“bbox”: [-100.0, -90.0, 100.0, 90.0]
},
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
“bbox”: [-14000000, -8000000, 14000000, 8000000]
}
]
}

  1. return a set of BoundingBox for a given BoundingBox

F.e.:
http://SERVER/?request=getBBox&bbox=-180,-90,180,90&srs=srs1,….,srsM&outputFormat=application/json
Should return something like:
{
bboxes:
[
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
“bbox”: [-180.0, -90.0, 180.0, 90.0]
},

{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
“bbox”: [-180.0, -90.0, 180.0, 90.0]
},
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
“bbox”: [-16000000, -8000000, 16000000, 8000000]
}
]
}

If an SRS is not resolved an exception is returned.

The question is:
What do you think about this service? are there any valid alternatives?
Do you think that this can be useful to the geoserver community?
If so, in which way this should be developed (external module, integration with wms or wfs, etc)?
I need this service ASAP so I’ll start its implementation within this week any feedback is really appreciated.

Cheers,
Carlo Cancellieri


Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Martin Davis
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Martin,

thanks for the hint!
I think that’s the way so I’ll start looking into gs:bounds

@All
Other suggestions?

Cheers,
Carlo


Date: Wed, 21 Nov 2012 13:05:14 -0800
From: mdavis@anonymised.com
CC: geoserver-devel@anonymised.comt
Subject: Re: [Geoserver-devel] getBBox as centralized service

You could implement this as a WPS Process. That would be faster and simpler to code on the server side.

Here’s a tutorial about how to do this:

http://suite.opengeo.org/opengeo-docs/processing/wpsjava/index.html

On Wed, Nov 21, 2012 at 12:45 PM, Carlo Cancellieri <ccancellieri@anonymised.com> wrote:

Hi all,
I’m planning to develop a centralized service to calculate BBox.

Currently I’m using a small set of GeoTools utils on the client side in combination with the getCapabilities to reproject the bounding box of each layer to the new desired projection.

For our purpose this in no more acceptable and we need a centralized service which will be connected to the user defined projection added to the geoserver datadir.

The service will be used to:

  1. return a set of BoundingBox for a given layer
    F.e.:
    http://SERVER/?request=getBBox&layers=layer1,….,layerN&srs=srs1,…,srsM&outputFormat=application/json
    Should return something like:
    {
    layer1:[
    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
    “bbox”: [-180.0, -90.0, 180.0, 90.0]List
    },

    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
    “bbox”: [-180.0, -90.0, 180.0, 90.0]
    },
    {
    “crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
    “bbox”: [-16000000, -8000000, 16000000, 8000000]
    }
    ],

layerN:[
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
“bbox”: [-100.0, -90.0, 100.0, 90.0]
},

{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
“bbox”: [-100.0, -90.0, 100.0, 90.0]
},
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
“bbox”: [-14000000, -8000000, 14000000, 8000000]
}
]
}

  1. return a set of BoundingBox for a given BoundingBox

F.e.:
http://SERVER/?request=getBBox&bbox=-180,-90,180,90&srs=srs1,….,srsM&outputFormat=application/json
Should return something like:
{
bboxes:
[
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:OGC:1.3:CRS84” } } ,
“bbox”: [-180.0, -90.0, 180.0, 90.0]
},

{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:4326” } } ,
“bbox”: [-180.0, -90.0, 180.0, 90.0]
},
{
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG:54030” } } ,
“bbox”: [-16000000, -8000000, 16000000, 8000000]
}
]
}

If an SRS is not resolved an exception is returned.

The question is:
What do you think about this service? are there any valid alternatives?
Do you think that this can be useful to the geoserver community?
If so, in which way this should be developed (external module, integration with wms or wfs, etc)?
I need this service ASAP so I’ll start its implementation within this week any feedback is really appreciated.

Cheers,
Carlo Cancellieri


Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Martin Davis
OpenGeo - http://opengeo.org
Expert service straight from the developers.

------------------------------------------------------------------------------ Monitor your physical, virtual and cloud infrastructure from a single web console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud infrastructure, etc. Download 30-day Free Trial. Pricing starts from $795 for 25 servers or applications! http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel