Hi Jukka,

you suggest a different name (e. g. "OGC Features and geometries JSON"). What parts of the module/format would you like to be renamed? Module name? Class name? outputFormat name? Name and description of the format/module in README.md?

GeoServer actually has a class named GeoJSONGetFeatureResponse for emitting JSON. My class SlimGeoJSONGetFeatureResponse is just an extension adding the slim capability. Also, in Format-DropDown on the Layer Preview page, JSON is announced as

...
GeoJSON
GeoJSON(JSONP)
...

On the other hand, after having read only some parts of the OGC draft document, does GeoServer really return JSON-FG? At first glance, GeoServer extends GeoJSON (it's no official GeoJSON) but it's still far from JSON-FG, isn't it? Maybe naming it "OGC Features and geometries JSON" isn't much more apt?

I just wanted to stay as close as possible with GeoServer as I'm extending *its* current JSON capabilities. GeoServer docs state:

https://docs.geoserver.org/latest/en/user/services/wfs/outputformats.html#json-and-jsonp-output

The JSON output format (and JSONP if enabled) return feature content as GeoJSON 
document. Here is an
example of a simple GeoJSON file;

The "GeoJSON" is a link to http://geojson.org/

I do not know how GeoServer serializes complex features in JSON. Maybe that is closer to JSON-FG. For me, however, simple features encoded in JSON seem quite close to GeoJSON with the additon of a "crs" object (as initially recommended by GeoJSON in [GJ2008] and removed later due do interoperability concerns).

Although I'm open for changes, I believe that this small extension should likely not change much of the class it derives from (including terms and names), except that it removes space wasting redundancy (the "Slim" aspect).

Asking the gdal-dev list may be an option. However, this could start a very long running process with really lots of different opinions. For my mind, if someone is concerned whether GeoServer delivers GeoJSON, CRS-extended GeoJSON or even JSPN-FG - this should first be clairified (and possibly be changed) in GeoServer core. Later, extensions and modules could adapt these changes in a second step.

Cheers
Carsten

Am 06.10.2022 um 16:26 schrieb Rahkonen Jukka:
Hi,

I would consider some other name because this format is not GeoJSON. OGC is using name "OGC 
Features and geometries JSON" in its own project for enhancing GeoJSON 
https://docs.ogc.org/DRAFTS/21-045.html. Perhaps your format could be something like "Slim 
JSON for features".
Maybe you could contact also other open source projects for collecting more 
opinions and suggestions. A short announcement on the gdal-dev mailing list 
might be a good start.

-Jukka Rahkonen-

-----Alkuperäinen viesti-----
Lähettäjä: Carsten Klein <c.kl...@datagis.com>
Lähetetty: torstai 6. lokakuuta 2022 16.47
Vastaanottaja: Andrea Aime <andrea.a...@geosolutionsgroup.com>
Kopio: geoserver-devel@lists.sourceforge.net; bj...@wololo.org
Aihe: Re: [Geoserver-devel] Enhancement: WFS Simple Feature Response in new 
more compact JSON/JSONP format

Hello Andrea,

I've just issued a PR on GitHub. The format and community module has been renamed to "Slim 
GeoJSON". "Slim" is shorter and likely easier to pronounce than compact (together 
with GeoJSON).

Sorry for struggling and messing around with Git. However, the final version of 
the PR should be OK for merging.

There are still some issues with QA checks and build checks (a test failed on 
Mac). I've written some more remarks on that in the PR on GitHub.

Cheers
Carsten


On Thu, Sep 29, 2022 at 10:17 AM Andrea Aime wrote
On Thu, Sep 22, 2022 at 10:08 AM Carsten Klein <c.kl...@datagis.com
<mailto:c.kl...@datagis.com>> wrote:

     Hello there,

     the new WFS output format CompactJSON, implemented as a community
     extension, is ready and works as expected. With our mentioned WFS
     responses (1.000+ features, 450 columns each), compared to standard
     GeoJSON, savings are between ~30% and ~70% (uncompressed) and between
     ~20% and ~50% with gzip content encoding. (see ´Statistics´ and
     ´Conclusion´ below)

     What are the next steps in order to contribute/publish the new
     community
     extension? Shall I commit all the stuff to my forked ´geoserver´
     repository and issue a CR including all changes required in existing
     core code (that is the existing JSON producer)?


Yes, make a Pull Request and send a CLA to OSGeo. When opening the PR
you have a checklist that needs to be satisfied, with links to the
relevant docs.
For reference, here it is:

https://eur06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith
ub.com%2Fgeoserver%2Fgeoserver%2Fblob%2Fmain%2F.github%2FPULL_REQUEST_
TEMPLATE.md&amp;data=05%7C01%7Cjukka.rahkonen%40maanmittauslaitos.fi%7
Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c92371d5a571b71fa%7
C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;s
data=uEICQlG9TNers9r7xIDHBWy%2BeqR%2BPQqL2juv84XbkUY%3D&amp;reserved=0
<https://eur06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
hub.com%2Fgeoserver%2Fgeoserver%2Fblob%2Fmain%2F.github%2FPULL_REQUEST
_TEMPLATE.md&amp;data=05%7C01%7Cjukka.rahkonen%40maanmittauslaitos.fi%
7Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c92371d5a571b71fa%
7C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwM
DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;
sdata=uEICQlG9TNers9r7xIDHBWy%2BeqR%2BPQqL2juv84XbkUY%3D&amp;reserved=
0>


     One last question: some of the WFS format extensions have one or more
     GeoServerApplication.properties files, which seem to provide human
     readable names for the actual MIME types or formats. Should I provide
     these, too? Where are these texts used? What are the rules?


It would be nice if you could add it, yes. They are used in the format
dropdown you can find in the layer preview page. We don't have a list
of rules, checking what the other formats do and mimicking it, is the
de-facto approach when adding a new output format.

     Statistics
     ==========

     Given two layers A and B, both having ~450 columns. Layer A's geometry
     contains polygons (~300 vertices each). Layer B has point geometries
     (created as a view of layer A with ST_Centroid(the_geom) AS the_geom).

     Querying only ~1,000 and all ~10,000 features/rows from both layers:

     Layer A (heavy polygons)
     ------------------------

     ~1,000 rows      bytes raw         bytes gzip

     GeoJSON:      19,098,924 (100%)  5,361,536 (100%)

     CompactJSON:  12,586,758 ( 66%)  4,234,995 ( 79%)

     FlatGeobuf:   10,093,224 ( 53%)  7,006,365 (130%)


     Layer A (heavy polygons)
     ------------------------

     ~10,000 rows     bytes raw         bytes gzip

     GeoJSON:     174,686,637 (100%) 45,414,569 (100%)

     CompactJSON: 109,700,539 ( 63%) 35,677,456 ( 78%)

     FlatGeobuf:   86,031,048 ( 49%) 58,857,835 (130%)



     Layer B (lightweight points)
     ----------------------------

     ~1,000 rows      bytes raw         bytes gzip

     GeoJSON:       9,443,980 (100%)  2,236,172 (100%)

     CompactJSON:   2,931,814 ( 31%)  1,174,942 ( 53%)

     FlatGeobuf:    3,710,902 ( 39%)  2,044,614 ( 91%)


     Layer B (lightweight points)
     ----------------------------

     ~10,000 rows     bytes raw         bytes gzip

     GeoJSON:      92,394,763 (100%) 18,923,302 (100%)

     CompactJSON:  27,408,665 ( 30%)  9,720,941 ( 51%)

     FlatGeobuf:   32,588,230 ( 35%) 16,824,845 ( 89%)


     Conclusion
     ==========

     Savings mainly depend on the ratio between schema information and data.
     That is, savings are small if features have much more data than schema
     information. Typically, geometries may get quite large, so savings
     depend on the size/complexity of the feature's geometries. (e. g. tests
     where done using complex polygons vs. simple point objects)

     Also remarkable is that CompactJSON produces not much bigger responses
     (aka is not much worse) than FlatGeobuf. However, FlatGeobuf responses
     do not compress very well and are bigger than compressed CompactJSON in
     all (and even bigger than compressed GeoJSON if geometries are heavy in
     some) cases.


Interesting finding indeed.

Cheers
Andrea
==

GeoServer Professional Services from the experts!

Visit
https://eur06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbit.l
y%2Fgs-services-us&amp;data=05%7C01%7Cjukka.rahkonen%40maanmittauslait
os.fi%7Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c92371d5a571
b71fa%7C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4
wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7
C&amp;sdata=aixKL%2FMfJ78fvCvg9icTQH%2FRTvr7SMuaEX3ejZWzBm0%3D&amp;res
erved=0
<https://eur06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbit.
ly%2Fgs-services-us&amp;data=05%7C01%7Cjukka.rahkonen%40maanmittauslai
tos.fi%7Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c92371d5a57
1b71fa%7C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC
4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%
7C&amp;sdata=aixKL%2FMfJ78fvCvg9icTQH%2FRTvr7SMuaEX3ejZWzBm0%3D&amp;re
served=0>for
more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax:     +39 0584 1660272

mob:   +39  339 8844549


https://eur06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.
geosolutionsgroup.com%2F&amp;data=05%7C01%7Cjukka.rahkonen%40maanmitta
uslaitos.fi%7Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c92371
d5a571b71fa%7C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJWI
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7
C%7C%7C&amp;sdata=vVpcWGDkUsUGZiuizBkzoVXyw2r7C3g2yo3WlWqVeTg%3D&amp;r
eserved=0
<https://eur06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww
.geosolutionsgroup.com%2F&amp;data=05%7C01%7Cjukka.rahkonen%40maanmitt
auslaitos.fi%7Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c9237
1d5a571b71fa%7C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJW
IjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%
7C%7C%7C&amp;sdata=vVpcWGDkUsUGZiuizBkzoVXyw2r7C3g2yo3WlWqVeTg%3D&amp;
reserved=0>

https://eur06.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftwitt
er.com%2Fgeosolutions_it&amp;data=05%7C01%7Cjukka.rahkonen%40maanmitta
uslaitos.fi%7Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c92371
d5a571b71fa%7C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJWI
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7
C%7C%7C&amp;sdata=0nUuMX0boyNwqQQ0XUsPUmKkGFiV5dIrHo08ifFLkGg%3D&amp;r
eserved=0
<https://eur06.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftwit
ter.com%2Fgeosolutions_it&amp;data=05%7C01%7Cjukka.rahkonen%40maanmitt
auslaitos.fi%7Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c9237
1d5a571b71fa%7C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJW
IjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%
7C%7C%7C&amp;sdata=0nUuMX0boyNwqQQ0XUsPUmKkGFiV5dIrHo08ifFLkGg%3D&amp;
reserved=0>

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


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://eur06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fgeoserver-devel&amp;data=05%7C01%7Cjukka.rahkonen%40maanmittauslaitos.fi%7Cbe7e5c20e1084a56a2b608daa7a15866%7Cc4f8a63255804a1c92371d5a571b71fa%7C0%7C0%7C638006608655183714%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=ffja8d8IVyD5RHbrMvqlAb9%2Fu1w7Or9bbaS4EMKCj24%3D&amp;reserved=0


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

Reply via email to