[Geoserver-devel] Enhancement: WFS Simple Feature Response in new more compact JSON/JSONP format

Hello Andrea and Jukka,

you've seen the mail from Howard Butler. What to make out of it? He doesn't like such "extended" formats (which I do understand) but also recognizes that he's not in a position to actually do anything against it.

For my mind, there are these options for the community plugin's name:

- Slim GeoJSON
- Tiny GeoJSON (in order to line up with Tiny WKB)

or more defensively

- SpatialJSON,

omitting Small/Thin/Slim/Tiny as SpatialJSON is a new format which inherently is more compact and space optimized than GeoJSON. (Thanks Andrea for the "Spatial" idea.)

As I'm not really interested in inventing and promoting a new cool format, I could be quite fine with SpatialJSON.

What do you think about it?

Cheers
Carsten

Am 10.10.2022 um 14:40 schrieb Howard Butler:

Carsten,

Given the tone of your email and the fact that you are writing it, I think you probably know what our answer will be. It is a new format. It is not compatible with GeoJSON and any other GeoJSON reader is going to fail reading it. It is not GeoJSON, and it seems like disingenuous marketing to call it a similar name in my opinion.

It is totally fine to be making these optimizations and trying to proliferate them. You are definitely not the first to try. GeoJSONL would seem to be related to your approach. You could also look at FlatGeoBuf, which has GeoServer support, but gives up on JSON to have more features. Or wait for OGC to come out with their "new and improved GeoJSON" in the form of OGC Features API output, which adds even more capability.

I don't like formats that are "kind of like GeoJSON but not compatible" trying to leverage GeoJSON's marketing reach, and this includes things like GeoJSONL, SlimGeoJSON, and OGC's effort, which they tried to call it "Enhanced GeoJSON", as if it needed enhancement. GeoJSON is not internationally trademarked, and it cannot really stop these efforts from trying to trade on its name. However, "GeoJSON" is such a generic term it probably could not obtain a trademark, and other efforts calling themselves something that looks like it could not be stopped in any official capacity anyway.

In closing, you can call it what you like. Naming things is really hard :slight_smile:

Howard

On Oct 10, 2022, at 1:31 AM, Carsten Klein <c.klein@anonymised.com> wrote:

This format adds only two small changes to GeoServer's GeoJSON format (the version before RFC 7946). Nevertheless, these changes make it incompatible with regular GeoJSON and actually make it a new format. Other optimizations may come on top in the future.

Primarily, I need that format for my own projects, in which web based clients may request some thousands of features, each with approx. 450 fields/properties. Here, omitting repeated property names actually saves up to 70% of space (~ 50% transfer size).

Suggested by the GeoServer team, I'm asking you whether you would agree that I name this new format something like "Slim GeoJSON" or "Tiny GeoJSON" (see. Tiny Well Known Binary, TWKB) prior to releasing anything to the internet.

Since the new format is actually based on GeoJSON with only two small (but, of course, incompatible) changes, I'm really in favor for a name which still includes the ´GeoJSON´ term.

All the names work for me, if you like SpatialJSON go for it. Let’s get this one rolling :smiley:

Cheers
Andrea

···

Regards,

Andrea Aime

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

OK, I will go for SpatialJSON.

I will now do the following:

  • Rename all items according to SpatialJSON
  • Throw an exception if the result contains complex features
  • Update README.md and provide *.rst files in doc/en/user/source/community/spatialjson
  • Provide file ext-spatialjason.xml in src/community/release
  • Add required profiles in src/community/pom.xml
  • Provide a new (vanilla*)* branch / PR

Did I forget anything?

BTW, I did not yet see any Zip files when doing a nightly build like so:

mvn package -P communityRelease

Is that a Windows issue? How to invoke Maven in order to build the plugin Zip files?

Cheers
Carsten

···

Am 12.10.2022 um 09:46 schrieb Andrea Aime:

All the names work for me, if you like SpatialJSON go for it. Let’s get this one rolling :smiley:

Cheers
Andrea

On Tue, Oct 11, 2022 at 8:07 AM Carsten Klein <c.klein@anonymised.com> wrote:

Hello Andrea and Jukka,

you’ve seen the mail from Howard Butler. What to make out of it? He
doesn’t like such “extended” formats (which I do understand) but also
recognizes that he’s not in a position to actually do anything against it.

For my mind, there are these options for the community plugin’s name:

  • Slim GeoJSON
  • Tiny GeoJSON (in order to line up with Tiny WKB)

or more defensively

  • SpatialJSON,

omitting Small/Thin/Slim/Tiny as SpatialJSON is a new format which
inherently is more compact and space optimized than GeoJSON. (Thanks
Andrea for the “Spatial” idea.)

As I’m not really interested in inventing and promoting a new cool
format, I could be quite fine with SpatialJSON.

What do you think about it?

Cheers
Carsten

Am 10.10.2022 um 14:40 schrieb Howard Butler:

Carsten,

Given the tone of your email and the fact that you are writing it, I think you probably know what our answer will be. It is a new format. It is not compatible with GeoJSON and any other GeoJSON reader is going to fail reading it. It is not GeoJSON, and it seems like disingenuous marketing to call it a similar name in my opinion.

It is totally fine to be making these optimizations and trying to proliferate them. You are definitely not the first to try. GeoJSONL would seem to be related to your approach. You could also look at FlatGeoBuf, which has GeoServer support, but gives up on JSON to have more features. Or wait for OGC to come out with their “new and improved GeoJSON” in the form of OGC Features API output, which adds even more capability.

I don’t like formats that are “kind of like GeoJSON but not compatible” trying to leverage GeoJSON’s marketing reach, and this includes things like GeoJSONL, SlimGeoJSON, and OGC’s effort, which they tried to call it “Enhanced GeoJSON”, as if it needed enhancement. GeoJSON is not internationally trademarked, and it cannot really stop these efforts from trying to trade on its name. However, “GeoJSON” is such a generic term it probably could not obtain a trademark, and other efforts calling themselves something that looks like it could not be stopped in any official capacity anyway.

In closing, you can call it what you like. Naming things is really hard :slight_smile:

Howard

On Oct 10, 2022, at 1:31 AM, Carsten Klein <c.klein@anonymised.com> wrote:

This format adds only two small changes to GeoServer’s GeoJSON format (the version before RFC 7946). Nevertheless, these changes make it incompatible with regular GeoJSON and actually make it a new format. Other optimizations may come on top in the future.

Primarily, I need that format for my own projects, in which web based clients may request some thousands of features, each with approx. 450 fields/properties. Here, omitting repeated property names actually saves up to 70% of space (~ 50% transfer size).

Suggested by the GeoServer team, I’m asking you whether you would agree that I name this new format something like “Slim GeoJSON” or “Tiny GeoJSON” (see. Tiny Well Known Binary, TWKB) prior to releasing anything to the internet.

Since the new format is actually based on GeoJSON with only two small (but, of course, incompatible) changes, I’m really in favor for a name which still includes the ´GeoJSON´ term.

Regards,

Andrea Aime

== GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

OK, I will go for SpatialJSON.

I will now do the following:

  • Rename all items according to SpatialJSON
  • Throw an exception if the result contains complex features
  • Update README.md and provide *.rst files in doc/en/user/source/community/spatialjson
  • Provide file ext-spatialjason.xml in src/community/release
  • Add required profiles in src/community/pom.xml
  • Provide a new (vanilla*)* branch / PR

Did I forget anything?

Update also web/app/pom.xml with a profile that would include the module (most community modules have one, check it out)

BTW, I did not yet see any Zip files when doing a nightly build like so:

mvn package -P communityRelease

Is that a Windows issue? How to invoke Maven in order to build the plugin Zip files?

Try with:

mvn assembly:single -N -PcommunityRelease

Cheers
Andrea

···

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Hi Andrea,

thanks for the advice. I can now test building the zip archives. What about documentation? I’d like to test my *.rst files? Sorry for asking so much, but I did not find anything about building the docs (offline) for community modules. Tried with -Drelease but not sure whether that builds all the documentation.

Cheers
Carsten

···

Am 12.10.2022 um 14:11 schrieb Andrea Aime:

On Wed, Oct 12, 2022 at 10:48 AM Carsten Klein <c.klein@anonymised.com> wrote:

OK, I will go for SpatialJSON.

I will now do the following:

  • Rename all items according to SpatialJSON
  • Throw an exception if the result contains complex features
  • Update README.md and provide *.rst files in doc/en/user/source/community/spatialjson
  • Provide file ext-spatialjason.xml in src/community/release
  • Add required profiles in src/community/pom.xml
  • Provide a new (vanilla*)* branch / PR

Did I forget anything?

Update also web/app/pom.xml with a profile that would include the module (most community modules have one, check it out)

BTW, I did not yet see any Zip files when doing a nightly build like so:

mvn package -P communityRelease

Is that a Windows issue? How to invoke Maven in order to build the plugin Zip files?

Try with:

mvn assembly:single -N -PcommunityRelease

Cheers
Andrea

==

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

See the documentation guide:
https://docs.geoserver.org/latest/en/docguide/

(you can skip the Latex part, that’s needed only to generate PDFs)

Cheers
Andrea

···

Regards,

Andrea Aime

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

There’s probably a bug in this guide:

The build.xml is in doc/en an not in the dic/en/user.

Cheers
Carsten

···

Am 14.10.2022 um 10:30 schrieb Andrea Aime:

See the documentation guide:
https://docs.geoserver.org/latest/en/docguide/

(you can skip the Latex part, that’s needed only to generate PDFs)

Cheers
Andrea

On Fri, Oct 14, 2022 at 10:12 AM Carsten Klein <c.klein@anonymised.com> wrote:

Hi Andrea,

thanks for the advice. I can now test building the zip archives. What about documentation? I’d like to test my *.rst files? Sorry for asking so much, but I did not find anything about building the docs (offline) for community modules. Tried with -Drelease but not sure whether that builds all the documentation.

Cheers
Carsten

Am 12.10.2022 um 14:11 schrieb Andrea Aime:

On Wed, Oct 12, 2022 at 10:48 AM Carsten Klein <c.klein@anonymised.com> wrote:

OK, I will go for SpatialJSON.

I will now do the following:

  • Rename all items according to SpatialJSON
  • Throw an exception if the result contains complex features
  • Update README.md and provide *.rst files in doc/en/user/source/community/spatialjson
  • Provide file ext-spatialjason.xml in src/community/release
  • Add required profiles in src/community/pom.xml
  • Provide a new (vanilla*)* branch / PR

Did I forget anything?

Update also web/app/pom.xml with a profile that would include the module (most community modules have one, check it out)

BTW, I did not yet see any Zip files when doing a nightly build like so:

mvn package -P communityRelease

Is that a Windows issue? How to invoke Maven in order to build the plugin Zip files?

Try with:

mvn assembly:single -N -PcommunityRelease

Cheers
Andrea

==

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Regards,

Andrea Aime

== GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Yes, we made folders for different languages.

If you like that is an excellent single line fix you could do; there is a procedure for doing quick fixes in the doc guide.

(attachments)

ZEc5pV79y7lf6pS0.png

···


Jody Garnett

OK, will do so :slight_smile:

(attachments)

ZEc5pV79y7lf6pS0.png

···

Am 15.10.2022 um 16:35 schrieb Jody Garnett:

Yes, we made folders for different languages.

If you like that is an excellent single line fix you could do; there is a procedure for doing quick fixes in the doc guide.

On Fri, Oct 14, 2022 at 2:12 AM Carsten Klein <c.klein@anonymised.com> wrote:

There’s probably a bug in this guide:

The build.xml is in doc/en an not in the dic/en/user.

Cheers

Carsten

Am 14.10.2022 um 10:30 schrieb Andrea Aime:

See the documentation guide:
https://docs.geoserver.org/latest/en/docguide/

(you can skip the Latex part, that’s needed only to generate PDFs)

Cheers
Andrea

On Fri, Oct 14, 2022 at 10:12 AM Carsten Klein <c.klein@anonymised.com> wrote:

Hi Andrea,

thanks for the advice. I can now test building the zip archives. What about documentation? I’d like to test my *.rst files? Sorry for asking so much, but I did not find anything about building the docs (offline) for community modules. Tried with -Drelease but not sure whether that builds all the documentation.

Cheers
Carsten

Am 12.10.2022 um 14:11 schrieb Andrea Aime:

On Wed, Oct 12, 2022 at 10:48 AM Carsten Klein <c.klein@anonymised.com> wrote:

OK, I will go for SpatialJSON.

I will now do the following:

  • Rename all items according to SpatialJSON
  • Throw an exception if the result contains complex features
  • Update README.md and provide *.rst files in doc/en/user/source/community/spatialjson
  • Provide file ext-spatialjason.xml in src/community/release
  • Add required profiles in src/community/pom.xml
  • Provide a new (vanilla*)* branch / PR

Did I forget anything?

Update also web/app/pom.xml with a profile that would include the module (most community modules have one, check it out)

BTW, I did not yet see any Zip files when doing a nightly build like so:

mvn package -P communityRelease

Is that a Windows issue? How to invoke Maven in order to build the plugin Zip files?

Try with:

mvn assembly:single -N -PcommunityRelease

Cheers
Andrea

==

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Regards,

Andrea Aime

== GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail


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


Jody Garnett

Andrea,

you asked to created a Jira ticket for the new community module, which I did. Not sure whether Affects version: 2.23-RC was actually a good idea… The module is based on 2.23-SNAPSHOT, however, 2.22 seems to be the next release, right?

Cheers
Carsten

···

Am 14.10.2022 um 10:30 schrieb Andrea Aime:

See the documentation guide:
https://docs.geoserver.org/latest/en/docguide/

(you can skip the Latex part, that’s needed only to generate PDFs)

Cheers
Andrea

On Fri, Oct 14, 2022 at 10:12 AM Carsten Klein <c.klein@anonymised.com> wrote:

Hi Andrea,

thanks for the advice. I can now test building the zip archives. What about documentation? I’d like to test my *.rst files? Sorry for asking so much, but I did not find anything about building the docs (offline) for community modules. Tried with -Drelease but not sure whether that builds all the documentation.

Cheers
Carsten

Am 12.10.2022 um 14:11 schrieb Andrea Aime:

On Wed, Oct 12, 2022 at 10:48 AM Carsten Klein <c.klein@anonymised.com> wrote:

OK, I will go for SpatialJSON.

I will now do the following:

  • Rename all items according to SpatialJSON
  • Throw an exception if the result contains complex features
  • Update README.md and provide *.rst files in doc/en/user/source/community/spatialjson
  • Provide file ext-spatialjason.xml in src/community/release
  • Add required profiles in src/community/pom.xml
  • Provide a new (vanilla*)* branch / PR

Did I forget anything?

Update also web/app/pom.xml with a profile that would include the module (most community modules have one, check it out)

BTW, I did not yet see any Zip files when doing a nightly build like so:

mvn package -P communityRelease

Is that a Windows issue? How to invoke Maven in order to build the plugin Zip files?

Try with:

mvn assembly:single -N -PcommunityRelease

Cheers
Andrea

==

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Regards,

Andrea Aime

== GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Hello Andrea,

prior to porting back, I’d like to make another change. I’d like to have a context/storage to share data between methods encodeSimpleFeatures and writeExtraCollectionProperties. This is at least a requirement for building and serializing a shared string table.

Since there is no dedicated instance of the …GetFeatureResponse class per request, using this is likely not an option. (If a single instance of the class is guaranteed to be used for a single request, that is while the write method has not yet finished, this could nonetheless be done safely but that may be bad practice). Or am I wrong here? At least I did not see a constructor call for every request…

What other options do I have? The simples would be (with the fewest changes in existing code) to wrap/extend the GeoJSONBuilder class (which is already passed to all relevant methods) and add a generic Map<String, Object> storage. By overriding protected method getJSONBuilder, I could bring my extended class into use. However, that’s still a hack, isn’t it?

Adding such a context storage to class GeoJSONGetFeatureResponse.FeaturesInfo is another option. However, then the FeaturesInfo instance should be passed to all (for the sake of completeness) write… (writeCollectionCounts to writeExtraCollectionProperties) methods in method GeoJSONGetFeatureResponse.write.

Or is there already another concept of sharing volatile/temporary data for a request/response which I did not see so far (like ServletContext.set/getAttribute)?

Cheers
Carsten

···

Am 12.10.2022 um 14:11 schrieb Andrea Aime:

On Wed, Oct 12, 2022 at 10:48 AM Carsten Klein <c.klein@anonymised.com> wrote:

OK, I will go for SpatialJSON.

I will now do the following:

  • Rename all items according to SpatialJSON
  • Throw an exception if the result contains complex features
  • Update README.md and provide *.rst files in doc/en/user/source/community/spatialjson
  • Provide file ext-spatialjason.xml in src/community/release
  • Add required profiles in src/community/pom.xml
  • Provide a new (vanilla*)* branch / PR

Did I forget anything?

Update also web/app/pom.xml with a profile that would include the module (most community modules have one, check it out)

BTW, I did not yet see any Zip files when doing a nightly build like so:

mvn package -P communityRelease

Is that a Windows issue? How to invoke Maven in order to build the plugin Zip files?

Try with:

mvn assembly:single -N -PcommunityRelease

Cheers
Andrea

==

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Hi Carsten,
please address the gs-devel community rather than me personally, it’s better as other people can answer your question, but they won’t if your message addresses me directly.

That said, a new community module starts in main, that’s 2.23-SNAPSHOT right now, but you’ll be able to do a backport
pull request and include it in the 22.x series.

Releases are not relevant to community modules, they are only available in nightly builds anyways.

Cheers
Andrea

···

Regards,

Andrea Aime

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Hello Andrea,

prior to porting back, I’d like to make another change. I’d like to have a context/storage to share data between methods encodeSimpleFeatures and writeExtraCollectionProperties. This is at least a requirement for building and serializing a shared string table.

What do you need it for?

Since there is no dedicated instance of the …GetFeatureResponse class per request, using this is likely not an option. (If a single instance of the class is guaranteed to be used for a single request, that is while the write method has not yet finished, this could nonetheless be done safely but that may be bad practice). Or am I wrong here? At least I did not see a constructor call for every request…

What other options do I have? The simples would be (with the fewest changes in existing code) to wrap/extend the GeoJSONBuilder class (which is already passed to all relevant methods) and add a generic Map<String, Object> storage. By overriding protected method getJSONBuilder, I could bring my extended class into use. However, that’s still a hack, isn’t it?

Or subclass it and add whatever fields you need in the subclass?

Adding such a context storage to class GeoJSONGetFeatureResponse.FeaturesInfo is another option. However, then the FeaturesInfo instance should be passed to all (for the sake of completeness) write… (writeCollectionCounts to writeExtraCollectionProperties) methods in method GeoJSONGetFeatureResponse.write.

I’d avoid having signature changes to all these methods (the class is being subclassed elsewhere).

Cheers
Andrea

···

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

See my answers inline:

···

Am 20.10.2022 um 13:05 schrieb Andrea Aime:

On Tue, Oct 18, 2022 at 7:28 AM Carsten Klein <c.klein@anonymised.com> wrote:

Hello Andrea,

prior to porting back, I’d like to make another change. I’d like to have a context/storage to share data between methods encodeSimpleFeatures and writeExtraCollectionProperties. This is at least a requirement for building and serializing a shared string table.

What do you need it for?

All features and their data are iterated in encodeSimpleFeatures. That’s where I build the Shared String Table. I need this table in method writeExtraCollectionProperties, since that table needs to be serialized as a collection property. Also, I could collect schema information (property names and geometry name) in encodeSimpleFeatures. Having this data available in writeExtraCollectionProperties as well, will simplify the implementation of method writeExtraCollectionProperties significantly.

Since there is no dedicated instance of the …GetFeatureResponse class per request, using this is likely not an option. (If a single instance of the class is guaranteed to be used for a single request, that is while the write method has not yet finished, this could nonetheless be done safely but that may be bad practice). Or am I wrong here? At least I did not see a constructor call for every request…

What other options do I have? The simples would be (with the fewest changes in existing code) to wrap/extend the GeoJSONBuilder class (which is already passed to all relevant methods) and add a generic Map<String, Object> storage. By overriding protected method getJSONBuilder, I could bring my extended class into use. However, that’s still a hack, isn’t it?

Or subclass it and add whatever fields you need in the subclass?

Yes, likely the simplest solution is to subclass GeoJSONBuilder and to add the required fields or a generic Map<String, Object> storage. However, still think that’s kind of abuse, since a JSON builder should not be (ab)used as a data storage…

Adding such a context storage to class GeoJSONGetFeatureResponse.FeaturesInfo is another option. However, then the FeaturesInfo instance should be passed to all (for the sake of completeness) write… (writeCollectionCounts to writeExtraCollectionProperties) methods in method GeoJSONGetFeatureResponse.write.

I’d avoid having signature changes to all these methods (the class is being subclassed elsewhere).

Good point, such changes are not ideal…

Cheers
Andrea

==

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead

GeoSolutions Group phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail