[Geoserver-users] Display total number of GetFeatureInfo results using FreeMarker Tempate?

Hi Geoserver Users,

I'm converting a simple web mapping application from Mapserver to Geoserver. It's mostly been a big improvement. However, I cannot figure out how to achieve this one thing that was simple in Mapserver.

When I click on the map image (openlayers), to trigger a GetFeatureInfo request, I don't want the default HTML table returned, but a simple HTML list preceded by the number of results to display text such as:

  3 Results
    • Baker Street
    • Pillar Box 365
    • Holmes Residence

In the Mapserver "header" template, this was trivially simple to implement using the "[nr]" (number of results) macro, like this:

  <div><b>[nr] Results</b></div>

However, I cannot figure out how to do this using Geoserver and FreeMarker templates.

Can anybody enlighten me?

Thanks,
Nik.

On Sun, Mar 22, 2015 at 11:05 AM, Nik Sands <nixanz@anonymised.com> wrote:

Hi Geoserver Users,

I'm converting a simple web mapping application from Mapserver to
Geoserver. It's mostly been a big improvement. However, I cannot figure
out how to achieve this one thing that was simple in Mapserver.

When I click on the map image (openlayers), to trigger a GetFeatureInfo
request, I don't want the default HTML table returned, but a simple HTML
list preceded by the number of results to display text such as:

        3 Results
                • Baker Street
                • Pillar Box 365
                • Holmes Residence

In the Mapserver "header" template, this was trivially simple to implement
using the "[nr]" (number of results) macro, like this:

        <div><b>[nr] Results</b></div>

However, I cannot figure out how to do this using Geoserver and FreeMarker
templates.

Can anybody enlighten me?

I think that you can use features?size on each of the feature collections
(one per queried layer) you're getting back, sum the
results, and thus get a total

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 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.

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

Thanks for your reply.

I am already using "features?size” to get a result count for each layer. However, I’m not sure how I can sum these together, as each time I get a “features?size” number it is in a completely independent invocation of calling the template.

So I guess my two follow-up questions would be:

  1. Is there some way to pass the result from one invocation of the template to the next?

  2. Is there some way to have the combined result number displayed at the TOP of the HTML returned to the client? (ideally, I’d like this in the header.ftl)

Cheers,
Nik.

···

On Sun, Mar 22, 2015 at 11:05 AM, Nik Sands <nixanz@anonymised.com> wrote:

Hi Geoserver Users,

I’m converting a simple web mapping application from Mapserver to Geoserver. It’s mostly been a big improvement. However, I cannot figure out how to achieve this one thing that was simple in Mapserver.

When I click on the map image (openlayers), to trigger a GetFeatureInfo request, I don’t want the default HTML table returned, but a simple HTML list preceded by the number of results to display text such as:

3 Results
• Baker Street
• Pillar Box 365
• Holmes Residence

In the Mapserver “header” template, this was trivially simple to implement using the “[nr]” (number of results) macro, like this:

[nr] Results

However, I cannot figure out how to do this using Geoserver and FreeMarker templates.

Can anybody enlighten me?

I think that you can use features?size on each of the feature collections (one per queried layer) you’re getting back, sum the
results, and thus get a total

Cheers
Andrea

==

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 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.


On Tue, Mar 24, 2015 at 11:40 PM, Nik Sands <nixanz@anonymised.com> wrote:

Thanks for your reply.

I am already using "features?size” to get a result count for each layer.
However, I’m not sure how I can sum these together, as each time I get a
“features?size” number it is in a completely independent invocation of
calling the template.

So I guess my two follow-up questions would be:

1. Is there some way to pass the result from one invocation of the
template to the next?

2. Is there some way to have the combined result number displayed at the
TOP of the HTML returned to the client? (ideally, I’d like this in the
header.ftl)

Yes, the only place would be header.ftl... unfortunately it's receiving no
information whatsoever, someone would have
to change the code to make it receive the full set of feature collections,
as a list, instead.
For reference, the change would have to be done here:
https://github.com/geoserver/geoserver/blob/master/src/wms/src/main/java/org/geoserver/wms/featureinfo/HTMLFeatureInfoOutputFormat.java#L120
with a new test covering it, here:
https://github.com/geoserver/geoserver/blob/master/src/wms/src/test/java/org/geoserver/wms/featureinfo/HTMLFeatureInfoOutputFormatTest.java

If you can do java development the most expedient way to get the change in
is for you to submit a pull request (see also
https://github.com/geoserver/geoserver/blob/master/CONTRIBUTING.md),
otherwise you can open a improvement/feature request ticket at:
http://jira.codehaus.org/browse/GEOS

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 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.

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

Thanks Andrea,

Unfortunately, I don’t have the skills for Java development and don’t have access to JIRA (and it’s not obvious how to request an account from the admins).

If somebody could post this as a feature request, I’d be grateful.

Cheers,
Nik.

···

On Tue, Mar 24, 2015 at 11:40 PM, Nik Sands <nixanz@anonymised.com> wrote:

Thanks for your reply.

I am already using "features?size” to get a result count for each layer. However, I’m not sure how I can sum these together, as each time I get a “features?size” number it is in a completely independent invocation of calling the template.

So I guess my two follow-up questions would be:

  1. Is there some way to pass the result from one invocation of the template to the next?

  2. Is there some way to have the combined result number displayed at the TOP of the HTML returned to the client? (ideally, I’d like this in the header.ftl)

Yes, the only place would be header.ftl… unfortunately it’s receiving no information whatsoever, someone would have
to change the code to make it receive the full set of feature collections, as a list, instead.
For reference, the change would have to be done here:
https://github.com/geoserver/geoserver/blob/master/src/wms/src/main/java/org/geoserver/wms/featureinfo/HTMLFeatureInfoOutputFormat.java#L120

with a new test covering it, here:
https://github.com/geoserver/geoserver/blob/master/src/wms/src/test/java/org/geoserver/wms/featureinfo/HTMLFeatureInfoOutputFormatTest.java

If you can do java development the most expedient way to get the change in is for you to submit a pull request (see also
https://github.com/geoserver/geoserver/blob/master/CONTRIBUTING.md), otherwise you can open a improvement/feature request ticket at:
http://jira.codehaus.org/browse/GEOS

Cheers
Andrea

==

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 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.


On Wed, Mar 25, 2015 at 10:26 PM, Nik Sands <nixanz@anonymised.com> wrote:

Thanks Andrea,

Unfortunately, I don’t have the skills for Java development and don’t have
access to JIRA (and it’s not obvious how to request an account from the
admins).

http://jira.codehaus.org/browse/GEOS, read on the top left side of the page
(sorry, it's the only part that codehaus let us customize to
add instructions :-p )

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 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.

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