[Geoserver-devel] grid datastore?

Thought it did exist but it looks like it doesn’t, so it might make for a nice weekend project.

I know what the gt-grid module does but never used it. Yet it’d be quite handy to be able of configuring a read only grid layer in geoserver that doesn’t take any space on disk but is computed on the fly using gt-grid? quite the same that’s done by the mini-wms embedded in the geoserver SRS List demo, but for general use (see where the map showing the area of validity for each CRS has a grid on it? [1]).

But before giving it a shot:

  • really it doesn’t exist?
  • would it be useful for others at all?
  • if so, feature requests?

[1]
<http://demo.opengeo.org/geoserver/web/?wicket:bookmarkablePage=:org.geoserver.web.demo.SRSDescriptionPage&code=EPSG:3031>
<http://demo.opengeo.org/geoserver/web/?wicket:bookmarkablePage=:org.geoserver.web.demo.SRSDescriptionPage&code=EPSG:3057>
<http://demo.opengeo.org/geoserver/web/?wicket:bookmarkablePage=:org.geoserver.web.demo.SRSDescriptionPage&code=EPSG:4326>

···

Gabriel Roldán
Software Developer | Boundless
groldan@anonymised.com
@boundlessgeo

On Tue, Jun 30, 2015 at 11:21 PM, Gabriel Roldan <groldan@anonymised.com>
wrote:

Thought it did exist but it looks like it doesn't, so it might make for a
nice weekend project.

I know what the gt-grid module does but never used it. Yet it'd be quite
handy to be able of configuring a read only grid layer in geoserver that
doesn't take any space on disk but is computed on the fly using gt-grid?
quite the same that's done by the mini-wms embedded in the geoserver SRS
List demo, but for general use (see where the map showing the area of
validity for each CRS has a grid on it? [1]).

But before giving it a shot:
- really it doesn't exist?
- would it be useful for others at all?
- if so, feature requests?

Hi Gabriel,
there is much to say on the topic, in summary, it's not as easy as it looks
(doing the store it's indeed easy, using it for grids not as easy as it
seems).

First, Ian has been looking into the subject recently, you might want to
synch up with him:
http://blog.ianturton.com/geotools/mapping/cartography/2015/06/17/fun-with-graticules.html
There is also a relevant thread on the geotools developer mailing list,
interesting stuff there too.

About the usage issues, there are a few:

   - Reprojection, right now the store generate lines made of two points,
   and our reprojection engine still reprojects point by point, without on the
   fly densification when a line is too long to be reprojected "as is". It's a
   feature that I have in my backlog, but not sure if and when it's going to
   be implemented. I think the grid module can densify, but to get good
   results one would have to densify dynamically, depending on the zoom level
   and target projection... which is a bit of trouble when you just give a
   layer for anybody to use against the 5000 projections we expose
   - Labelling, often people want the ordinate of the grid line shown at
   the map margins, which is something we cannot easily do right now, although
   it might be doable with a rendering transformation (intersect with the
   rendering bbox, pad back from the border enough, add an attribute to give
   the label vertical or horizontal orientation)
   - Multilevel grids: often the maps require grids that are multilevel,
   every 10 degrees depicted one way, and the others every one in a different
   way

Now, I believe that all of the above issues can be solved via SLD and
rendering engine improvement with some extra effort, but they are not
exactly trivial. I guess that's why people have considered doing them as
decorations instead, and/or as DirectLayer.

All in all, I'd be favorable with just creating a grid store too, that's
something I'd been quite tempted to do myself, we should just explain to
the user base what the current limitations are

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

The code I developed handles densification, and multilevel grids are the next issue I plan on looking at and then I wanted to work out how to move the labels to the edges of the screen (I hadn’t thought of transforms but that makes sense).

Then I planned to stuff everything into a direct layer and hope for the best (or ask Jody for help).

A store could work and would allow the user to specify the CRS and bounds/ levels that they wanted.

Any way I’m definitely interested in this so keep me in the loop please

cheers
Ian

···

On Tue, Jun 30, 2015 at 11:21 PM, Gabriel Roldan <groldan@anonymised.com…> wrote:

Thought it did exist but it looks like it doesn’t, so it might make for a nice weekend project.

I know what the gt-grid module does but never used it. Yet it’d be quite handy to be able of configuring a read only grid layer in geoserver that doesn’t take any space on disk but is computed on the fly using gt-grid? quite the same that’s done by the mini-wms embedded in the geoserver SRS List demo, but for general use (see where the map showing the area of validity for each CRS has a grid on it? [1]).

But before giving it a shot:

  • really it doesn’t exist?
  • would it be useful for others at all?
  • if so, feature requests?

Hi Gabriel,
there is much to say on the topic, in summary, it’s not as easy as it looks (doing the store it’s indeed easy, using it for grids not as easy as it seems).

First, Ian has been looking into the subject recently, you might want to synch up with him:
http://blog.ianturton.com/geotools/mapping/cartography/2015/06/17/fun-with-graticules.html

There is also a relevant thread on the geotools developer mailing list, interesting stuff there too.

About the usage issues, there are a few:

  • Reprojection, right now the store generate lines made of two points, and our reprojection engine still reprojects point by point, without on the fly densification when a line is too long to be reprojected “as is”. It’s a feature that I have in my backlog, but not sure if and when it’s going to be implemented. I think the grid module can densify, but to get good results one would have to densify dynamically, depending on the zoom level and target projection… which is a bit of trouble when you just give a layer for anybody to use against the 5000 projections we expose
  • Labelling, often people want the ordinate of the grid line shown at the map margins, which is something we cannot easily do right now, although it might be doable with a rendering transformation (intersect with the rendering bbox, pad back from the border enough, add an attribute to give the label vertical or horizontal orientation)
  • Multilevel grids: often the maps require grids that are multilevel, every 10 degrees depicted one way, and the others every one in a different way
    Now, I believe that all of the above issues can be solved via SLD and rendering engine improvement with some extra effort, but they are not exactly trivial. I guess that’s why people have considered doing them as decorations instead, and/or as DirectLayer.

All in all, I’d be favorable with just creating a grid store too, that’s something I’d been quite tempted to do myself, we should just explain to the user base what the current limitations are

Okay thanks all for the insights and interest. All good info to keep in mind.

Meanwhile, I’d like to draw your attention (esp. @aaime) to the following bug that I found while working with a grid lines shapefile: <https://osgeo-org.atlassian.net/browse/GEOT-5169>
Wasn’t sure what the best solution would be due to possible side effects, but I did write a unit test to expose the issue.

Cheers,
Gabriel

···

On Wed, Jul 1, 2015 at 7:43 AM, Ian Turton <ijturton@anonymised.com> wrote:

On Wed, Jul 1, 2015 at 9:25 AM Andrea Aime <andrea.aime@anonymised.com8…> wrote:

The code I developed handles densification, and multilevel grids are the next issue I plan on looking at and then I wanted to work out how to move the labels to the edges of the screen (I hadn’t thought of transforms but that makes sense).

Then I planned to stuff everything into a direct layer and hope for the best (or ask Jody for help).

A store could work and would allow the user to specify the CRS and bounds/ levels that they wanted.

Any way I’m definitely interested in this so keep me in the loop please

cheers

Ian

On Tue, Jun 30, 2015 at 11:21 PM, Gabriel Roldan <groldan@anonymised.com> wrote:

Thought it did exist but it looks like it doesn’t, so it might make for a nice weekend project.

I know what the gt-grid module does but never used it. Yet it’d be quite handy to be able of configuring a read only grid layer in geoserver that doesn’t take any space on disk but is computed on the fly using gt-grid? quite the same that’s done by the mini-wms embedded in the geoserver SRS List demo, but for general use (see where the map showing the area of validity for each CRS has a grid on it? [1]).

But before giving it a shot:

  • really it doesn’t exist?
  • would it be useful for others at all?
  • if so, feature requests?

Hi Gabriel,
there is much to say on the topic, in summary, it’s not as easy as it looks (doing the store it’s indeed easy, using it for grids not as easy as it seems).

First, Ian has been looking into the subject recently, you might want to synch up with him:
http://blog.ianturton.com/geotools/mapping/cartography/2015/06/17/fun-with-graticules.html

There is also a relevant thread on the geotools developer mailing list, interesting stuff there too.

About the usage issues, there are a few:

  • Reprojection, right now the store generate lines made of two points, and our reprojection engine still reprojects point by point, without on the fly densification when a line is too long to be reprojected “as is”. It’s a feature that I have in my backlog, but not sure if and when it’s going to be implemented. I think the grid module can densify, but to get good results one would have to densify dynamically, depending on the zoom level and target projection… which is a bit of trouble when you just give a layer for anybody to use against the 5000 projections we expose
  • Labelling, often people want the ordinate of the grid line shown at the map margins, which is something we cannot easily do right now, although it might be doable with a rendering transformation (intersect with the rendering bbox, pad back from the border enough, add an attribute to give the label vertical or horizontal orientation)
  • Multilevel grids: often the maps require grids that are multilevel, every 10 degrees depicted one way, and the others every one in a different way
    Now, I believe that all of the above issues can be solved via SLD and rendering engine improvement with some extra effort, but they are not exactly trivial. I guess that’s why people have considered doing them as decorations instead, and/or as DirectLayer.

All in all, I’d be favorable with just creating a grid store too, that’s something I’d been quite tempted to do myself, we should just explain to the user base what the current limitations are

Gabriel Roldán
Software Developer | Boundless
groldan@anonymised.com
@boundlessgeo

Hi Gabriel,
off the top of my head, I don’t know what’ happening there.
I’ll be at FOSS4G europe for the next few days, can you ping me back at the end of the week if I forget about this one?

Cheers
Andrea

···

On Mon, Jul 13, 2015 at 10:32 PM, Gabriel Roldan <groldan@anonymised.com> wrote:

Okay thanks all for the insights and interest. All good info to keep in mind.

Meanwhile, I’d like to draw your attention (esp. @aaime) to the following bug that I found while working with a grid lines shapefile: <https://osgeo-org.atlassian.net/browse/GEOT-5169>
Wasn’t sure what the best solution would be due to possible side effects, but I did write a unit test to expose the issue.

Cheers,
Gabriel

On Wed, Jul 1, 2015 at 7:43 AM, Ian Turton <ijturton@anonymised.com> wrote:

On Wed, Jul 1, 2015 at 9:25 AM Andrea Aime <andrea.aime@anonymised.com> wrote:

The code I developed handles densification, and multilevel grids are the next issue I plan on looking at and then I wanted to work out how to move the labels to the edges of the screen (I hadn’t thought of transforms but that makes sense).

Then I planned to stuff everything into a direct layer and hope for the best (or ask Jody for help).

A store could work and would allow the user to specify the CRS and bounds/ levels that they wanted.

Any way I’m definitely interested in this so keep me in the loop please

cheers

Ian

Gabriel Roldán
Software Developer | Boundless
groldan@anonymised.com
@boundlessgeo

On Tue, Jun 30, 2015 at 11:21 PM, Gabriel Roldan <groldan@anonymised.com> wrote:

Thought it did exist but it looks like it doesn’t, so it might make for a nice weekend project.

I know what the gt-grid module does but never used it. Yet it’d be quite handy to be able of configuring a read only grid layer in geoserver that doesn’t take any space on disk but is computed on the fly using gt-grid? quite the same that’s done by the mini-wms embedded in the geoserver SRS List demo, but for general use (see where the map showing the area of validity for each CRS has a grid on it? [1]).

But before giving it a shot:

  • really it doesn’t exist?
  • would it be useful for others at all?
  • if so, feature requests?

Hi Gabriel,
there is much to say on the topic, in summary, it’s not as easy as it looks (doing the store it’s indeed easy, using it for grids not as easy as it seems).

First, Ian has been looking into the subject recently, you might want to synch up with him:
http://blog.ianturton.com/geotools/mapping/cartography/2015/06/17/fun-with-graticules.html

There is also a relevant thread on the geotools developer mailing list, interesting stuff there too.

About the usage issues, there are a few:

  • Reprojection, right now the store generate lines made of two points, and our reprojection engine still reprojects point by point, without on the fly densification when a line is too long to be reprojected “as is”. It’s a feature that I have in my backlog, but not sure if and when it’s going to be implemented. I think the grid module can densify, but to get good results one would have to densify dynamically, depending on the zoom level and target projection… which is a bit of trouble when you just give a layer for anybody to use against the 5000 projections we expose
  • Labelling, often people want the ordinate of the grid line shown at the map margins, which is something we cannot easily do right now, although it might be doable with a rendering transformation (intersect with the rendering bbox, pad back from the border enough, add an attribute to give the label vertical or horizontal orientation)
  • Multilevel grids: often the maps require grids that are multilevel, every 10 degrees depicted one way, and the others every one in a different way
    Now, I believe that all of the above issues can be solved via SLD and rendering engine improvement with some extra effort, but they are not exactly trivial. I guess that’s why people have considered doing them as decorations instead, and/or as DirectLayer.

All in all, I’d be favorable with just creating a grid store too, that’s something I’d been quite tempted to do myself, we should just explain to the user base what the current limitations are

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


Hi Gabriel,
did you by any chance move forward with the grid store/direct layer/decoration?

Cheers
Andrea

···

On Mon, Jul 13, 2015 at 10:32 PM, Gabriel Roldan <groldan@anonymised.com.> wrote:

Okay thanks all for the insights and interest. All good info to keep in mind.

Meanwhile, I’d like to draw your attention (esp. @aaime) to the following bug that I found while working with a grid lines shapefile: <https://osgeo-org.atlassian.net/browse/GEOT-5169>
Wasn’t sure what the best solution would be due to possible side effects, but I did write a unit test to expose the issue.

Cheers,
Gabriel

On Wed, Jul 1, 2015 at 7:43 AM, Ian Turton <ijturton@anonymised.com> wrote:

On Wed, Jul 1, 2015 at 9:25 AM Andrea Aime <andrea.aime@anonymised.com> wrote:

The code I developed handles densification, and multilevel grids are the next issue I plan on looking at and then I wanted to work out how to move the labels to the edges of the screen (I hadn’t thought of transforms but that makes sense).

Then I planned to stuff everything into a direct layer and hope for the best (or ask Jody for help).

A store could work and would allow the user to specify the CRS and bounds/ levels that they wanted.

Any way I’m definitely interested in this so keep me in the loop please

cheers

Ian

Gabriel Roldán
Software Developer | Boundless
groldan@anonymised.com
@boundlessgeo

On Tue, Jun 30, 2015 at 11:21 PM, Gabriel Roldan <groldan@anonymised.com> wrote:

Thought it did exist but it looks like it doesn’t, so it might make for a nice weekend project.

I know what the gt-grid module does but never used it. Yet it’d be quite handy to be able of configuring a read only grid layer in geoserver that doesn’t take any space on disk but is computed on the fly using gt-grid? quite the same that’s done by the mini-wms embedded in the geoserver SRS List demo, but for general use (see where the map showing the area of validity for each CRS has a grid on it? [1]).

But before giving it a shot:

  • really it doesn’t exist?
  • would it be useful for others at all?
  • if so, feature requests?

Hi Gabriel,
there is much to say on the topic, in summary, it’s not as easy as it looks (doing the store it’s indeed easy, using it for grids not as easy as it seems).

First, Ian has been looking into the subject recently, you might want to synch up with him:
http://blog.ianturton.com/geotools/mapping/cartography/2015/06/17/fun-with-graticules.html

There is also a relevant thread on the geotools developer mailing list, interesting stuff there too.

About the usage issues, there are a few:

  • Reprojection, right now the store generate lines made of two points, and our reprojection engine still reprojects point by point, without on the fly densification when a line is too long to be reprojected “as is”. It’s a feature that I have in my backlog, but not sure if and when it’s going to be implemented. I think the grid module can densify, but to get good results one would have to densify dynamically, depending on the zoom level and target projection… which is a bit of trouble when you just give a layer for anybody to use against the 5000 projections we expose
  • Labelling, often people want the ordinate of the grid line shown at the map margins, which is something we cannot easily do right now, although it might be doable with a rendering transformation (intersect with the rendering bbox, pad back from the border enough, add an attribute to give the label vertical or horizontal orientation)
  • Multilevel grids: often the maps require grids that are multilevel, every 10 degrees depicted one way, and the others every one in a different way
    Now, I believe that all of the above issues can be solved via SLD and rendering engine improvement with some extra effort, but they are not exactly trivial. I guess that’s why people have considered doing them as decorations instead, and/or as DirectLayer.

All in all, I’d be favorable with just creating a grid store too, that’s something I’d been quite tempted to do myself, we should just explain to the user base what the current limitations are

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.