[Geoserver-devel] Asking for new vector tiles community module

Hello all,

at Boundless we’re working on GeoServer/GWC support for Vector Tiles, hence I’m looking for approval to add a new community module to master in the interest of making the work available for everyone.

TL;DR version:

We’ll be producing “vector maps” in TopoJSON, GeoJSON, and Mapbox PBF formats through the WMS, so that these “vector maps” can be produced for any map dimensions / CRS combination, leaving the slicing into specific grids to GWC, or the client apps requesting the map tiles to the WMS directly where they’re dynamically generated.
The WMS map output format(s) will allow a certain level of control over geometry simplification either through the dpi wms argument or other custom parameter, yet to be determined, and over the number of returned features by respecting the layer’s SLD min/maxScaleDenominator + filter rules.

Work is being conducted on this branch <https://github.com/groldan/geoserver/tree/vectortiles>
At a glance: <https://github.com/groldan/geoserver/compare/master…vectortiles>

Full story:

There are different formats in which vector tiles can be encoded, none of which is an industry or de-facto standard:

Mapbox Vector Tiles: Protocol Buffers based. No support for it in OL3.
TopoJSON: JSON arc-poly topology, points encoded inline. There’s a large OSM dataset in this format and OL3 has support for it
GeoJSON: the good and old GeoJSON format can also be used as vector tiles. OL3 can be set up to use it as easily as it does with TopoJSON.

Now, each format has its pros and cons. The common denominator though, is that all of them can fulfill the requirement of producing geometry generalized versions of raw feature data plus alphanumeric attribtues.
The geometry generalization is key in order to control the resulting tile file size, and the resource consumption on the map client.

On top of that, we want to add other requirements:

  • Dynamically generate vector tiles: can do with GeoServer WMS, regardless of map/screen dimensions and requested projection.
  • Control over level of geometry generalization: can do with GeoServer’s WMS standard DPI parameter, or other format specific parameters
  • Control on number of features produced by zoom level: can do with SLD FeatureTypeStyle Rules and min/maxScaleDenominators
  • Leverage the current software stack and existing infrastructure as much as possible: Let GWC request and cache vector tiles in the appropriate tile size/resolution and projection. Leverage OL3’s flexibility to load tiles from TMS, WMS, WMS-C, etc.

Vector Tile Format break down:

···

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

+1 for the community module
Awesome news!

Cheers
Andrea

···

On Fri, Jun 19, 2015 at 7:41 PM, Gabriel Roldan <groldan@anonymised.com> wrote:

Hello all,

at Boundless we’re working on GeoServer/GWC support for Vector Tiles, hence I’m looking for approval to add a new community module to master in the interest of making the work available for everyone.

TL;DR version:

We’ll be producing “vector maps” in TopoJSON, GeoJSON, and Mapbox PBF formats through the WMS, so that these “vector maps” can be produced for any map dimensions / CRS combination, leaving the slicing into specific grids to GWC, or the client apps requesting the map tiles to the WMS directly where they’re dynamically generated.
The WMS map output format(s) will allow a certain level of control over geometry simplification either through the dpi wms argument or other custom parameter, yet to be determined, and over the number of returned features by respecting the layer’s SLD min/maxScaleDenominator + filter rules.

Work is being conducted on this branch <https://github.com/groldan/geoserver/tree/vectortiles>
At a glance: <https://github.com/groldan/geoserver/compare/master…vectortiles>

Full story:

There are different formats in which vector tiles can be encoded, none of which is an industry or de-facto standard:

Mapbox Vector Tiles: Protocol Buffers based. No support for it in OL3.
TopoJSON: JSON arc-poly topology, points encoded inline. There’s a large OSM dataset in this format and OL3 has support for it
GeoJSON: the good and old GeoJSON format can also be used as vector tiles. OL3 can be set up to use it as easily as it does with TopoJSON.

Now, each format has its pros and cons. The common denominator though, is that all of them can fulfill the requirement of producing geometry generalized versions of raw feature data plus alphanumeric attribtues.
The geometry generalization is key in order to control the resulting tile file size, and the resource consumption on the map client.

On top of that, we want to add other requirements:

  • Dynamically generate vector tiles: can do with GeoServer WMS, regardless of map/screen dimensions and requested projection.
  • Control over level of geometry generalization: can do with GeoServer’s WMS standard DPI parameter, or other format specific parameters
  • Control on number of features produced by zoom level: can do with SLD FeatureTypeStyle Rules and min/maxScaleDenominators
  • Leverage the current software stack and existing infrastructure as much as possible: Let GWC request and cache vector tiles in the appropriate tile size/resolution and projection. Leverage OL3’s flexibility to load tiles from TMS, WMS, WMS-C, etc.

Vector Tile Format break down:

++++++++++++++++++++++++

MapBox Vector Tiles

Pros: compresses a bit better than the JSON text based formats with gzip compression.
Cons: non human readable. Lack of support in OL3 so far. Limited control over resolution. Tied to Web Mercator projection by MapBox’s spec, but we intend to overcome that silly limitation

TopoJSON:

Pros: human readable. Allows to share common edges between adjacent geometries.
Cons: The edge sharing is easy to implement from raw OSM data which in itself is a topology. For non topology based data, figuring out the common edges is a slow and resource consuming process. The format can be written with duplicated arcs but kind of defeats its purpose. Yet for the time being we’re producing it without the extra complexity that computing common edges implies. Another con is that it can’t be produced in a streaming way, since the topology needs to be built in memory before encoding.

GeoJSON:

Pros: human readable. Streaming.
Cons: may compress a bit worse than TopoJSON. Yet to be determined. It should compress worse than TopoJSON when the later is encoded with shared edges.

OL3:

  • It’d be good if OL could reuse vector tiles of higher resolutions in lower resolution zoom levels. (already possible with custom grids)

  • It’d be good if OL could merge the geometries for the same features coming from different tiles, as they may be clipped to tile bounds.

  • OL support for MapBox tiles is not yet there, nor part of this effort, but it’ll be there at some point

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



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

==
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.


Thanks Andrea I’ll prepare the patch then.

Gabriel

···

On Fri, Jun 19, 2015 at 2:54 PM, Andrea Aime <andrea.aime@anonymised.com…1268…> wrote:

+1 for the community module
Awesome news!

Cheers
Andrea

On Fri, Jun 19, 2015 at 7:41 PM, Gabriel Roldan <groldan@anonymised.com> wrote:

Hello all,

at Boundless we’re working on GeoServer/GWC support for Vector Tiles, hence I’m looking for approval to add a new community module to master in the interest of making the work available for everyone.

TL;DR version:

We’ll be producing “vector maps” in TopoJSON, GeoJSON, and Mapbox PBF formats through the WMS, so that these “vector maps” can be produced for any map dimensions / CRS combination, leaving the slicing into specific grids to GWC, or the client apps requesting the map tiles to the WMS directly where they’re dynamically generated.
The WMS map output format(s) will allow a certain level of control over geometry simplification either through the dpi wms argument or other custom parameter, yet to be determined, and over the number of returned features by respecting the layer’s SLD min/maxScaleDenominator + filter rules.

Work is being conducted on this branch <https://github.com/groldan/geoserver/tree/vectortiles>
At a glance: <https://github.com/groldan/geoserver/compare/master…vectortiles>

Full story:

There are different formats in which vector tiles can be encoded, none of which is an industry or de-facto standard:

Mapbox Vector Tiles: Protocol Buffers based. No support for it in OL3.
TopoJSON: JSON arc-poly topology, points encoded inline. There’s a large OSM dataset in this format and OL3 has support for it
GeoJSON: the good and old GeoJSON format can also be used as vector tiles. OL3 can be set up to use it as easily as it does with TopoJSON.

Now, each format has its pros and cons. The common denominator though, is that all of them can fulfill the requirement of producing geometry generalized versions of raw feature data plus alphanumeric attribtues.
The geometry generalization is key in order to control the resulting tile file size, and the resource consumption on the map client.

On top of that, we want to add other requirements:

  • Dynamically generate vector tiles: can do with GeoServer WMS, regardless of map/screen dimensions and requested projection.
  • Control over level of geometry generalization: can do with GeoServer’s WMS standard DPI parameter, or other format specific parameters
  • Control on number of features produced by zoom level: can do with SLD FeatureTypeStyle Rules and min/maxScaleDenominators
  • Leverage the current software stack and existing infrastructure as much as possible: Let GWC request and cache vector tiles in the appropriate tile size/resolution and projection. Leverage OL3’s flexibility to load tiles from TMS, WMS, WMS-C, etc.

Vector Tile Format break down:

++++++++++++++++++++++++

MapBox Vector Tiles

Pros: compresses a bit better than the JSON text based formats with gzip compression.
Cons: non human readable. Lack of support in OL3 so far. Limited control over resolution. Tied to Web Mercator projection by MapBox’s spec, but we intend to overcome that silly limitation

TopoJSON:

Pros: human readable. Allows to share common edges between adjacent geometries.
Cons: The edge sharing is easy to implement from raw OSM data which in itself is a topology. For non topology based data, figuring out the common edges is a slow and resource consuming process. The format can be written with duplicated arcs but kind of defeats its purpose. Yet for the time being we’re producing it without the extra complexity that computing common edges implies. Another con is that it can’t be produced in a streaming way, since the topology needs to be built in memory before encoding.

GeoJSON:

Pros: human readable. Streaming.
Cons: may compress a bit worse than TopoJSON. Yet to be determined. It should compress worse than TopoJSON when the later is encoded with shared edges.

OL3:

  • It’d be good if OL could reuse vector tiles of higher resolutions in lower resolution zoom levels. (already possible with custom grids)

  • It’d be good if OL could merge the geometries for the same features coming from different tiles, as they may be clipped to tile bounds.

  • OL support for MapBox tiles is not yet there, nor part of this effort, but it’ll be there at some point

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



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

==
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.


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

Sounds good to me, do you plan to push the formatters into geotools so that other people can use them?

Ian

···

On Fri, Jun 19, 2015 at 2:54 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

+1 for the community module
Awesome news!

Cheers
Andrea

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

On Fri, Jun 19, 2015 at 7:41 PM, Gabriel Roldan <groldan@anonymised.com> wrote:

Hello all,

at Boundless we’re working on GeoServer/GWC support for Vector Tiles, hence I’m looking for approval to add a new community module to master in the interest of making the work available for everyone.

TL;DR version:

We’ll be producing “vector maps” in TopoJSON, GeoJSON, and Mapbox PBF formats through the WMS, so that these “vector maps” can be produced for any map dimensions / CRS combination, leaving the slicing into specific grids to GWC, or the client apps requesting the map tiles to the WMS directly where they’re dynamically generated.
The WMS map output format(s) will allow a certain level of control over geometry simplification either through the dpi wms argument or other custom parameter, yet to be determined, and over the number of returned features by respecting the layer’s SLD min/maxScaleDenominator + filter rules.

Work is being conducted on this branch <https://github.com/groldan/geoserver/tree/vectortiles>
At a glance: <https://github.com/groldan/geoserver/compare/master…vectortiles>

Full story:

There are different formats in which vector tiles can be encoded, none of which is an industry or de-facto standard:

Mapbox Vector Tiles: Protocol Buffers based. No support for it in OL3.
TopoJSON: JSON arc-poly topology, points encoded inline. There’s a large OSM dataset in this format and OL3 has support for it
GeoJSON: the good and old GeoJSON format can also be used as vector tiles. OL3 can be set up to use it as easily as it does with TopoJSON.

Now, each format has its pros and cons. The common denominator though, is that all of them can fulfill the requirement of producing geometry generalized versions of raw feature data plus alphanumeric attribtues.
The geometry generalization is key in order to control the resulting tile file size, and the resource consumption on the map client.

On top of that, we want to add other requirements:

  • Dynamically generate vector tiles: can do with GeoServer WMS, regardless of map/screen dimensions and requested projection.
  • Control over level of geometry generalization: can do with GeoServer’s WMS standard DPI parameter, or other format specific parameters
  • Control on number of features produced by zoom level: can do with SLD FeatureTypeStyle Rules and min/maxScaleDenominators
  • Leverage the current software stack and existing infrastructure as much as possible: Let GWC request and cache vector tiles in the appropriate tile size/resolution and projection. Leverage OL3’s flexibility to load tiles from TMS, WMS, WMS-C, etc.

Vector Tile Format break down:

++++++++++++++++++++++++

MapBox Vector Tiles

Pros: compresses a bit better than the JSON text based formats with gzip compression.
Cons: non human readable. Lack of support in OL3 so far. Limited control over resolution. Tied to Web Mercator projection by MapBox’s spec, but we intend to overcome that silly limitation

TopoJSON:

Pros: human readable. Allows to share common edges between adjacent geometries.
Cons: The edge sharing is easy to implement from raw OSM data which in itself is a topology. For non topology based data, figuring out the common edges is a slow and resource consuming process. The format can be written with duplicated arcs but kind of defeats its purpose. Yet for the time being we’re producing it without the extra complexity that computing common edges implies. Another con is that it can’t be produced in a streaming way, since the topology needs to be built in memory before encoding.

GeoJSON:

Pros: human readable. Streaming.
Cons: may compress a bit worse than TopoJSON. Yet to be determined. It should compress worse than TopoJSON when the later is encoded with shared edges.

OL3:

  • It’d be good if OL could reuse vector tiles of higher resolutions in lower resolution zoom levels. (already possible with custom grids)

  • It’d be good if OL could merge the geometries for the same features coming from different tiles, as they may be clipped to tile bounds.

  • OL support for MapBox tiles is not yet there, nor part of this effort, but it’ll be there at some point

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



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

==
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.


Gabriel,

First, I’m excited see vector tile output for GeoServer, so +1 for that!

From an incredibly quick read through, I have one high-level question. Is the topology processing which is part of this diff something which may find a better, more general home or is it specific to GeoJSON vector tiles? I suppose I get curious when I see Point, Linestring, etc. classes needing to be written.

Thanks,

Jim

···

On 06/19/2015 01:41 PM, Gabriel Roldan wrote:

Hello all,

at Boundless we’re working on GeoServer/GWC support for Vector Tiles, hence I’m looking for approval to add a new community module to master in the interest of making the work available for everyone.

TL;DR version:

We’ll be producing “vector maps” in TopoJSON, GeoJSON, and Mapbox PBF formats through the WMS, so that these “vector maps” can be produced for any map dimensions / CRS combination, leaving the slicing into specific grids to GWC, or the client apps requesting the map tiles to the WMS directly where they’re dynamically generated.
The WMS map output format(s) will allow a certain level of control over geometry simplification either through the dpi wms argument or other custom parameter, yet to be determined, and over the number of returned features by respecting the layer’s SLD min/maxScaleDenominator + filter rules.

Work is being conducted on this branch <https://github.com/groldan/geoserver/tree/vectortiles>
At a glance: <https://github.com/groldan/geoserver/compare/master…vectortiles>

Full story:

There are different formats in which vector tiles can be encoded, none of which is an industry or de-facto standard:

Mapbox Vector Tiles: Protocol Buffers based. No support for it in OL3.
TopoJSON: JSON arc-poly topology, points encoded inline. There’s a large OSM dataset in this format and OL3 has support for it
GeoJSON: the good and old GeoJSON format can also be used as vector tiles. OL3 can be set up to use it as easily as it does with TopoJSON.

Now, each format has its pros and cons. The common denominator though, is that all of them can fulfill the requirement of producing geometry generalized versions of raw feature data plus alphanumeric attribtues.
The geometry generalization is key in order to control the resulting tile file size, and the resource consumption on the map client.

On top of that, we want to add other requirements:

  • Dynamically generate vector tiles: can do with GeoServer WMS, regardless of map/screen dimensions and requested projection.
  • Control over level of geometry generalization: can do with GeoServer’s WMS standard DPI parameter, or other format specific parameters
  • Control on number of features produced by zoom level: can do with SLD FeatureTypeStyle Rules and min/maxScaleDenominators
  • Leverage the current software stack and existing infrastructure as much as possible: Let GWC request and cache vector tiles in the appropriate tile size/resolution and projection. Leverage OL3’s flexibility to load tiles from TMS, WMS, WMS-C, etc.

Vector Tile Format break down:

++++++++++++++++++++++++

MapBox Vector Tiles

Pros: compresses a bit better than the JSON text based formats with gzip compression.
Cons: non human readable. Lack of support in OL3 so far. Limited control over resolution. Tied to Web Mercator projection by MapBox’s spec, but we intend to overcome that silly limitation

TopoJSON:

Pros: human readable. Allows to share common edges between adjacent geometries.
Cons: The edge sharing is easy to implement from raw OSM data which in itself is a topology. For non topology based data, figuring out the common edges is a slow and resource consuming process. The format can be written with duplicated arcs but kind of defeats its purpose. Yet for the time being we’re producing it without the extra complexity that computing common edges implies. Another con is that it can’t be produced in a streaming way, since the topology needs to be built in memory before encoding.

GeoJSON:

Pros: human readable. Streaming.
Cons: may compress a bit worse than TopoJSON. Yet to be determined. It should compress worse than TopoJSON when the later is encoded with shared edges.

OL3:

  • It’d be good if OL could reuse vector tiles of higher resolutions in lower resolution zoom levels. (already possible with custom grids)

  • It’d be good if OL could merge the geometries for the same features coming from different tiles, as they may be clipped to tile bounds.

  • OL support for MapBox tiles is not yet there, nor part of this effort, but it’ll be there at some point

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

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

_______________________________________________
Geoserver-devel mailing list
[Geoserver-devel@lists.sourceforge.net](mailto:Geoserver-devel@lists.sourceforge.net)
[https://lists.sourceforge.net/lists/listinfo/geoserver-devel](https://lists.sourceforge.net/lists/listinfo/geoserver-devel)

On Fri, Jun 19, 2015 at 8:16 PM, Ian Turton <ijturton@anonymised.com> wrote:

Sounds good to me, do you plan to push the formatters into geotools so
that other people can use them?

+1, the low level processing would make a lot of sense in GeoTools.
In fact, for the Mapbox vector tiles, there is already an implementation,
https://github.com/ElectronicChartCentre/java-vector-tile,
not saying we have to use that one (it would need a bit of love in some
places), just showing as an
example of a fully stand alone encoder

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.

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

Great news Gabriel, +1 for a community module. Indeed it may be nice to recycle your email for a geoserver blog post :slight_smile:

I trust you will let us know if any changes are required to core.

One suggestion - can we pick up a new copy of OL3 (when it is ready) so that GeoServer can preview the resulting vector tiles directly.

···

On 19 June 2015 at 10:41, Gabriel Roldan <groldan@anonymised.com> wrote:

Hello all,

at Boundless we’re working on GeoServer/GWC support for Vector Tiles, hence I’m looking for approval to add a new community module to master in the interest of making the work available for everyone.

TL;DR version:

We’ll be producing “vector maps” in TopoJSON, GeoJSON, and Mapbox PBF formats through the WMS, so that these “vector maps” can be produced for any map dimensions / CRS combination, leaving the slicing into specific grids to GWC, or the client apps requesting the map tiles to the WMS directly where they’re dynamically generated.
The WMS map output format(s) will allow a certain level of control over geometry simplification either through the dpi wms argument or other custom parameter, yet to be determined, and over the number of returned features by respecting the layer’s SLD min/maxScaleDenominator + filter rules.

Work is being conducted on this branch <https://github.com/groldan/geoserver/tree/vectortiles>
At a glance: <https://github.com/groldan/geoserver/compare/master…vectortiles>

Full story:

There are different formats in which vector tiles can be encoded, none of which is an industry or de-facto standard:

Mapbox Vector Tiles: Protocol Buffers based. No support for it in OL3.
TopoJSON: JSON arc-poly topology, points encoded inline. There’s a large OSM dataset in this format and OL3 has support for it
GeoJSON: the good and old GeoJSON format can also be used as vector tiles. OL3 can be set up to use it as easily as it does with TopoJSON.

Now, each format has its pros and cons. The common denominator though, is that all of them can fulfill the requirement of producing geometry generalized versions of raw feature data plus alphanumeric attribtues.
The geometry generalization is key in order to control the resulting tile file size, and the resource consumption on the map client.

On top of that, we want to add other requirements:

  • Dynamically generate vector tiles: can do with GeoServer WMS, regardless of map/screen dimensions and requested projection.
  • Control over level of geometry generalization: can do with GeoServer’s WMS standard DPI parameter, or other format specific parameters
  • Control on number of features produced by zoom level: can do with SLD FeatureTypeStyle Rules and min/maxScaleDenominators
  • Leverage the current software stack and existing infrastructure as much as possible: Let GWC request and cache vector tiles in the appropriate tile size/resolution and projection. Leverage OL3’s flexibility to load tiles from TMS, WMS, WMS-C, etc.

Vector Tile Format break down:

++++++++++++++++++++++++

MapBox Vector Tiles

Pros: compresses a bit better than the JSON text based formats with gzip compression.
Cons: non human readable. Lack of support in OL3 so far. Limited control over resolution. Tied to Web Mercator projection by MapBox’s spec, but we intend to overcome that silly limitation

TopoJSON:

Pros: human readable. Allows to share common edges between adjacent geometries.
Cons: The edge sharing is easy to implement from raw OSM data which in itself is a topology. For non topology based data, figuring out the common edges is a slow and resource consuming process. The format can be written with duplicated arcs but kind of defeats its purpose. Yet for the time being we’re producing it without the extra complexity that computing common edges implies. Another con is that it can’t be produced in a streaming way, since the topology needs to be built in memory before encoding.

GeoJSON:

Pros: human readable. Streaming.
Cons: may compress a bit worse than TopoJSON. Yet to be determined. It should compress worse than TopoJSON when the later is encoded with shared edges.

OL3:

  • It’d be good if OL could reuse vector tiles of higher resolutions in lower resolution zoom levels. (already possible with custom grids)

  • It’d be good if OL could merge the geometries for the same features coming from different tiles, as they may be clipped to tile bounds.

  • OL support for MapBox tiles is not yet there, nor part of this effort, but it’ll be there at some point

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



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


Jody Garnett

On Fri, Jun 19, 2015 at 4:55 PM, Andrea Aime <andrea.aime@anonymised.com>
wrote:

On Fri, Jun 19, 2015 at 8:16 PM, Ian Turton <ijturton@anonymised.com> wrote:

Sounds good to me, do you plan to push the formatters into geotools so
that other people can use them?

+1, the low level processing would make a lot of sense in GeoTools.

Gonna keep that in mind. Sounds like a good idea but for the time being I'd
rather focus on getting things working.

In fact, for the Mapbox vector tiles, there is already an implementation,
https://github.com/ElectronicChartCentre/java-vector-tile,
not saying we have to use that one (it would need a bit of love in some
places), just showing as an
example of a fully stand alone encoder

Niels (cc'ed) is working on the mapbox encoder (a strategy object
for VectorTileMapOutputFormat), and he's using that encoder already. I've
also looked at it and wouldn't mind having our own encoder since its pretty
simple anyways and would rather avoid the extra dependency. But as said,
trying to get things come along first.

Cheers,
Gabriel

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.

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

--

Gabriel Roldán
Software Developer | Boundless <http://boundlessgeo.com/&gt;
groldan@anonymised.com
@boundlessgeo <http://twitter.com/boundlessgeo/&gt;

On Fri, Jun 19, 2015 at 5:21 PM, Jody Garnett <jody.garnett@anonymised.com>
wrote:

Great news Gabriel, +1 for a community module. Indeed it may be nice to
recycle your email for a geoserver blog post :slight_smile:

I trust you will let us know if any changes are required to core.

No changes required to core.

One suggestion - can we pick up a new copy of OL3 (when it is ready) so
that GeoServer can preview the resulting vector tiles directly.

yeah that'd be cool. Hope we got some contract hours left for the fancy
stuff.
BTW, here's a working example, not sure for how long it would last, but if
you guys want to see something in action feel free to check it out <
http://ec2-52-0-227-87.compute-1.amazonaws.com:8080/geoserver/www/osmvectiles.html

It's pulling from S3 up to zoom level 12 or so and serving on the fly from
there on.

Cheers,
Gabriel

--
Jody Garnett

On 19 June 2015 at 10:41, Gabriel Roldan <groldan@anonymised.com> wrote:

Hello all,

at Boundless we're working on GeoServer/GWC support for Vector Tiles,
hence I'm looking for approval to add a new community module to master in
the interest of making the work available for everyone.

TL;DR version:

We'll be producing "vector maps" in TopoJSON, GeoJSON, and Mapbox PBF
formats through the WMS, so that these "vector maps" can be produced for
any map dimensions / CRS combination, leaving the slicing into specific
grids to GWC, or the client apps requesting the map tiles to the WMS
directly where they're dynamically generated.
The WMS map output format(s) will allow a certain level of control over
geometry simplification either through the dpi wms argument or other custom
parameter, yet to be determined, and over the number of returned features
by respecting the layer's SLD min/maxScaleDenominator + filter rules.

Work is being conducted on this branch <
https://github.com/groldan/geoserver/tree/vectortiles&gt;
At a glance: <
https://github.com/groldan/geoserver/compare/master...vectortiles&gt;

Full story:

There are different formats in which vector tiles can be encoded, none of
which is an industry or de-facto standard:

Mapbox Vector Tiles
<https://github.com/mapbox/vector-tile-spec/tree/master/1.0.1&gt;: Protocol
Buffers based. No support for it in OL3.
TopoJSON
<https://github.com/mbostock/topojson-specification/blob/master/README.md&gt;:
JSON arc-poly topology, points encoded inline. There's a large OSM dataset
in this format and OL3 has support for it
<http://openlayers.org/en/v3.5.0/examples/tile-vector.html&gt;
GeoJSON <http://geojson.org/geojson-spec.html&gt;: the good and old GeoJSON
format can also be used as vector tiles. OL3 can be set up to use it as
easily as it does with TopoJSON.

Now, each format has its pros and cons. The common denominator though, is
that all of them can fulfill the requirement of producing geometry
generalized versions of raw feature data plus alphanumeric attribtues.
The geometry generalization is key in order to control the resulting tile
file size, and the resource consumption on the map client.

On top of that, we want to add other requirements:

* Dynamically generate vector tiles: can do with GeoServer WMS,
regardless of map/screen dimensions and requested projection.
* Control over level of geometry generalization: can do with GeoServer's
WMS standard DPI parameter, or other format specific parameters
* Control on number of features produced by zoom level: can do with SLD
FeatureTypeStyle Rules and min/maxScaleDenominators
* Leverage the current software stack and existing infrastructure as much
as possible: Let GWC request and cache vector tiles in the appropriate tile
size/resolution and projection. Leverage OL3's flexibility to load tiles
from TMS, WMS, WMS-C, etc.

Vector Tile Format break down:
++++++++++++++++++++++++

MapBox Vector Tiles
---------------------------
Pros: compresses a bit better than the JSON text based formats with gzip
compression.
Cons: non human readable. Lack of support in OL3 so far. Limited control
over resolution. Tied to Web Mercator projection by MapBox's spec, but we
intend to overcome that silly limitation

TopoJSON:
----------------
Pros: human readable. Allows to share common edges between adjacent
geometries.
Cons: The edge sharing is easy to implement from raw OSM data which in
itself is a topology. For non topology based data, figuring out the common
edges is a slow and resource consuming process. The format can be written
with duplicated arcs but kind of defeats its purpose. Yet for the time
being we're producing it without the extra complexity that computing common
edges implies. Another con is that it can't be produced in a streaming way,
since the topology needs to be built in memory before encoding.

GeoJSON:
--------------
Pros: human readable. Streaming.
Cons: _may_ compress a bit worse than TopoJSON. Yet to be determined. It
should compress worse than TopoJSON when the later is encoded with shared
edges.

OL3:
------
* It'd be good if OL could reuse vector tiles of higher resolutions in
lower resolution zoom levels. (already possible with custom grids)
* It'd be good if OL could merge the geometries for the same features
coming from different tiles, as they may be clipped to tile bounds.
* OL support for MapBox tiles is not yet there, nor part of this effort,
but it'll be there at some point

--

Gabriel Roldán
Software Developer | Boundless <http://boundlessgeo.com/&gt;
groldan@anonymised.com
@boundlessgeo <http://twitter.com/boundlessgeo/&gt;

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

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

--

Gabriel Roldán
Software Developer | Boundless <http://boundlessgeo.com/&gt;
groldan@anonymised.com
@boundlessgeo <http://twitter.com/boundlessgeo/&gt;

Hi Ian,

···

On Fri, Jun 19, 2015 at 3:16 PM, Ian Turton <ijturton@anonymised.com.> wrote:

Sounds good to me, do you plan to push the formatters into geotools so that other people can use them?

Ultimately I think so.

Question: since you’re more on the computational geometry side of the fence, I warmly invite you to think about how hard it would be to figure out the common edges on a polygon/linestring layer so that they can be encoded once? Wouldn’t mind a couple hints or a patch either :stuck_out_tongue:

Cheers!
Gabriel

Ian

On Fri, 19 Jun 2015 7:13 pm Gabriel Roldan <groldan@anonymised.com> wrote:

Thanks Andrea I’ll prepare the patch then.

Gabriel



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

On Fri, Jun 19, 2015 at 2:54 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

+1 for the community module
Awesome news!

Cheers
Andrea

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

On Fri, Jun 19, 2015 at 7:41 PM, Gabriel Roldan <groldan@anonymised.com> wrote:

Hello all,

at Boundless we’re working on GeoServer/GWC support for Vector Tiles, hence I’m looking for approval to add a new community module to master in the interest of making the work available for everyone.

TL;DR version:

We’ll be producing “vector maps” in TopoJSON, GeoJSON, and Mapbox PBF formats through the WMS, so that these “vector maps” can be produced for any map dimensions / CRS combination, leaving the slicing into specific grids to GWC, or the client apps requesting the map tiles to the WMS directly where they’re dynamically generated.
The WMS map output format(s) will allow a certain level of control over geometry simplification either through the dpi wms argument or other custom parameter, yet to be determined, and over the number of returned features by respecting the layer’s SLD min/maxScaleDenominator + filter rules.

Work is being conducted on this branch <https://github.com/groldan/geoserver/tree/vectortiles>
At a glance: <https://github.com/groldan/geoserver/compare/master…vectortiles>

Full story:

There are different formats in which vector tiles can be encoded, none of which is an industry or de-facto standard:

Mapbox Vector Tiles: Protocol Buffers based. No support for it in OL3.
TopoJSON: JSON arc-poly topology, points encoded inline. There’s a large OSM dataset in this format and OL3 has support for it
GeoJSON: the good and old GeoJSON format can also be used as vector tiles. OL3 can be set up to use it as easily as it does with TopoJSON.

Now, each format has its pros and cons. The common denominator though, is that all of them can fulfill the requirement of producing geometry generalized versions of raw feature data plus alphanumeric attribtues.
The geometry generalization is key in order to control the resulting tile file size, and the resource consumption on the map client.

On top of that, we want to add other requirements:

  • Dynamically generate vector tiles: can do with GeoServer WMS, regardless of map/screen dimensions and requested projection.
  • Control over level of geometry generalization: can do with GeoServer’s WMS standard DPI parameter, or other format specific parameters
  • Control on number of features produced by zoom level: can do with SLD FeatureTypeStyle Rules and min/maxScaleDenominators
  • Leverage the current software stack and existing infrastructure as much as possible: Let GWC request and cache vector tiles in the appropriate tile size/resolution and projection. Leverage OL3’s flexibility to load tiles from TMS, WMS, WMS-C, etc.

Vector Tile Format break down:

++++++++++++++++++++++++

MapBox Vector Tiles

Pros: compresses a bit better than the JSON text based formats with gzip compression.
Cons: non human readable. Lack of support in OL3 so far. Limited control over resolution. Tied to Web Mercator projection by MapBox’s spec, but we intend to overcome that silly limitation

TopoJSON:

Pros: human readable. Allows to share common edges between adjacent geometries.
Cons: The edge sharing is easy to implement from raw OSM data which in itself is a topology. For non topology based data, figuring out the common edges is a slow and resource consuming process. The format can be written with duplicated arcs but kind of defeats its purpose. Yet for the time being we’re producing it without the extra complexity that computing common edges implies. Another con is that it can’t be produced in a streaming way, since the topology needs to be built in memory before encoding.

GeoJSON:

Pros: human readable. Streaming.
Cons: may compress a bit worse than TopoJSON. Yet to be determined. It should compress worse than TopoJSON when the later is encoded with shared edges.

OL3:

  • It’d be good if OL could reuse vector tiles of higher resolutions in lower resolution zoom levels. (already possible with custom grids)

  • It’d be good if OL could merge the geometries for the same features coming from different tiles, as they may be clipped to tile bounds.

  • OL support for MapBox tiles is not yet there, nor part of this effort, but it’ll be there at some point

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



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

==
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.


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

On Fri, Jun 19, 2015 at 11:09 PM, Gabriel Roldan <groldan@anonymised.com>
wrote:

Niels (cc'ed) is working on the mapbox encoder (a strategy object
for VectorTileMapOutputFormat), and he's using that encoder already. I've
also looked at it and wouldn't mind having our own encoder since its pretty
simple anyways and would rather avoid the extra dependency. But as said,
trying to get things come along first.

I see. If you are using that encoder, I'd suggest you make a pull request
to clean up the result of
intersections, intersecting a polygon against a polygon can result in a mix
of point, line and polygon
in the results (you get lower dimensional elements where the two polygons
touch), and also
have a look at precision reduction in case the intersections fail.. have a
look at this method, it
does both already, maybe it could be adapted a bit and pushed up in the JTS
class for reuse:
https://github.com/geotools/geotools/blob/master/modules/library/render/src/main/java/org/geotools/renderer/crs/ProjectionHandler.java#L455

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.

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

+1 - like wow guys!

Notice: This email and any attachments are confidential.
If received in error please destroy and immediately notify us.
Do not copy or disclose the contents.

On Sat, Jun 20, 2015 at 9:47 AM, Andrea Aime <andrea.aime@anonymised.com>
wrote:

On Fri, Jun 19, 2015 at 11:09 PM, Gabriel Roldan <groldan@anonymised.com
> wrote:

Niels (cc'ed) is working on the mapbox encoder (a strategy object
for VectorTileMapOutputFormat), and he's using that encoder already. I've
also looked at it and wouldn't mind having our own encoder since its pretty
simple anyways and would rather avoid the extra dependency. But as said,
trying to get things come along first.

I see. If you are using that encoder, I'd suggest you make a pull request
to clean up the result of
intersections, intersecting a polygon against a polygon can result in a
mix of point, line and polygon
in the results (you get lower dimensional elements where the two polygons
touch), and also
have a look at precision reduction in case the intersections fail.. have a
look at this method, it
does both already, maybe it could be adapted a bit and pushed up in the
JTS class for reuse:

https://github.com/geotools/geotools/blob/master/modules/library/render/src/main/java/org/geotools/renderer/crs/ProjectionHandler.java#L455

Thanks, gonna keep in mind. FWIW, we're already calling
ProjectionHandler.preProcess() in the output format, not sure it it'd be
needed in the strategy object cause it's meant to encode the features as
they're given to them, with all the heavy lifting done by the output format
itself (reprojection, generalization, clipping, etc)

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.

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

--

Gabriel Roldán
Software Developer | Boundless <http://boundlessgeo.com/&gt;
groldan@anonymised.com
@boundlessgeo <http://twitter.com/boundlessgeo/&gt;

On 19 Jun 2015, at 21:55, Andrea Aime <andrea.aime@anonymised.com> wrote:

In fact, for the Mapbox vector tiles, there is already an implementation, https://github.com/ElectronicChartCentre/java-vector-tile,
not saying we have to use that one (it would need a bit of love in some places), just showing as an
example of a fully stand alone encoder

Just a small ping from me. I wrote that and you are welcome to use it. I have used it for a long time in two projects. More love is welcome as always.

It does not care about projection. The incoming geometries must be in tile coordinate space like 0-256. That way it should work equally well with any coordinate system.

Regards,
Tore Halset.

Hi Tore,

Would you consider this PR please:

https://github.com/ElectronicChartCentre/java-vector-tile/pull/4

It allows to provide coordinates in the 0..extent-1 range immediately, rather than expecting a 0..255 range and scaling.
However, this is just an optional setting and the default behaviour remains the same.

Thank your in advance for considering!

Kind Regards
Niels

On 22-06-15 15:29, Tore Halset wrote:

On 19 Jun 2015, at 21:55, Andrea Aime <andrea.aime@anonymised.com> wrote:

In fact, for the Mapbox vector tiles, there is already an implementation, https://github.com/ElectronicChartCentre/java-vector-tile,
not saying we have to use that one (it would need a bit of love in some places), just showing as an
example of a fully stand alone encoder

Just a small ping from me. I wrote that and you are welcome to use it. I have used it for a long time in two projects. More love is welcome as always.

It does not care about projection. The incoming geometries must be in tile coordinate space like 0-256. That way it should work equally well with any coordinate system.

Regards,
Tore Halset.

------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Hi Tore, thanks for showing up and being open to collaboration.

I’ve issued a small PR <https://github.com/ElectronicChartCentre/java-vector-tile/pull/5>
Let me know if that seems ok.

TIA,
Gabriel

···

On Fri, Jun 26, 2015 at 12:07 PM, Niels Charlier <niels@anonymised.com> wrote:

Hi Tore,

Would you consider this PR please:

https://github.com/ElectronicChartCentre/java-vector-tile/pull/4

It allows to provide coordinates in the 0…extent-1 range immediately,
rather than expecting a 0…255 range and scaling.
However, this is just an optional setting and the default behaviour
remains the same.

Thank your in advance for considering!

Kind Regards
Niels

On 22-06-15 15:29, Tore Halset wrote:

On 19 Jun 2015, at 21:55, Andrea Aime <andrea.aime@anonymised.com> wrote:

In fact, for the Mapbox vector tiles, there is already an implementation, https://github.com/ElectronicChartCentre/java-vector-tile,
not saying we have to use that one (it would need a bit of love in some places), just showing as an
example of a fully stand alone encoder
Just a small ping from me. I wrote that and you are welcome to use it. I have used it for a long time in two projects. More love is welcome as always.

It does not care about projection. The incoming geometries must be in tile coordinate space like 0-256. That way it should work equally well with any coordinate system.

Regards,
Tore Halset.


Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o


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


Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o


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

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

Fixed. Thank you.

- Tore.

On 26 Jun 2015, at 17:07, Niels Charlier <niels@anonymised.com> wrote:

Hi Tore,

Would you consider this PR please:

https://github.com/ElectronicChartCentre/java-vector-tile/pull/4

It allows to provide coordinates in the 0..extent-1 range immediately, rather than expecting a 0..255 range and scaling.
However, this is just an optional setting and the default behaviour remains the same.

Thank your in advance for considering!

Kind Regards
Niels

On 22-06-15 15:29, Tore Halset wrote:

On 19 Jun 2015, at 21:55, Andrea Aime <andrea.aime@anonymised.com> wrote:

In fact, for the Mapbox vector tiles, there is already an implementation, https://github.com/ElectronicChartCentre/java-vector-tile,
not saying we have to use that one (it would need a bit of love in some places), just showing as an
example of a fully stand alone encoder

Just a small ping from me. I wrote that and you are welcome to use it. I have used it for a long time in two projects. More love is welcome as always.

It does not care about projection. The incoming geometries must be in tile coordinate space like 0-256. That way it should work equally well with any coordinate system.

Regards,
Tore Halset.

------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Fixed. Thank you!

- Tore.

On 26 Jun 2015, at 18:02, Gabriel Roldan <groldan@anonymised.com> wrote:

Hi Tore, thanks for showing up and being open to collaboration.

I've issued a small PR <https://github.com/ElectronicChartCentre/java-vector-tile/pull/5&gt;
Let me know if that seems ok.

TIA,
Gabriel

On Fri, Jun 26, 2015 at 12:07 PM, Niels Charlier <niels@anonymised.com> wrote:
Hi Tore,

Would you consider this PR please:

https://github.com/ElectronicChartCentre/java-vector-tile/pull/4

It allows to provide coordinates in the 0..extent-1 range immediately,
rather than expecting a 0..255 range and scaling.
However, this is just an optional setting and the default behaviour
remains the same.

Thank your in advance for considering!

Kind Regards
Niels

On 22-06-15 15:29, Tore Halset wrote:
>> On 19 Jun 2015, at 21:55, Andrea Aime <andrea.aime@anonymised.com> wrote:
>>
>> In fact, for the Mapbox vector tiles, there is already an implementation, https://github.com/ElectronicChartCentre/java-vector-tile,
>> not saying we have to use that one (it would need a bit of love in some places), just showing as an
>> example of a fully stand alone encoder
> Just a small ping from me. I wrote that and you are welcome to use it. I have used it for a long time in two projects. More love is welcome as always.
>
> It does not care about projection. The incoming geometries must be in tile coordinate space like 0-256. That way it should work equally well with any coordinate system.
>
> Regards,
> Tore Halset.
>
>
> ------------------------------------------------------------------------------
> Monitor 25 network devices or servers for free with OpManager!
> OpManager is web-based network management software that monitors
> network devices and physical & virtual servers, alerts via email & sms
> for fault. Monitor 25 devices for free with no restriction. Download now
> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> _______________________________________________
> Geoserver-devel mailing list
> Geoserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel

------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

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

Hey thanks for merging.

I see there are no tags/releases other than 1.0.0. Wonder if you can create a 1.0.7 release (since you started 1.0.8-SNAPSHOT after these changes). This way we could depend on a released version and push the new community module to geoserver.

TIA,
Gabriel

···

On Sun, Jun 28, 2015 at 3:58 PM, Tore Halset <halset@anonymised.com> wrote:

Fixed. Thank you!

  • Tore.

On 26 Jun 2015, at 18:02, Gabriel Roldan <groldan@anonymised.com> wrote:

Hi Tore, thanks for showing up and being open to collaboration.

I’ve issued a small PR <https://github.com/ElectronicChartCentre/java-vector-tile/pull/5>
Let me know if that seems ok.

TIA,
Gabriel

On Fri, Jun 26, 2015 at 12:07 PM, Niels Charlier <niels@anonymised.com> wrote:
Hi Tore,

Would you consider this PR please:

https://github.com/ElectronicChartCentre/java-vector-tile/pull/4

It allows to provide coordinates in the 0…extent-1 range immediately,
rather than expecting a 0…255 range and scaling.
However, this is just an optional setting and the default behaviour
remains the same.

Thank your in advance for considering!

Kind Regards
Niels

On 22-06-15 15:29, Tore Halset wrote:

On 19 Jun 2015, at 21:55, Andrea Aime <andrea.aime@anonymised.com> wrote:

In fact, for the Mapbox vector tiles, there is already an implementation, https://github.com/ElectronicChartCentre/java-vector-tile,
not saying we have to use that one (it would need a bit of love in some places), just showing as an
example of a fully stand alone encoder
Just a small ping from me. I wrote that and you are welcome to use it. I have used it for a long time in two projects. More love is welcome as always.

It does not care about projection. The incoming geometries must be in tile coordinate space like 0-256. That way it should work equally well with any coordinate system.

Regards,
Tore Halset.


Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o


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


Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o


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


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

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

Hello.

1.0.8 has been released now. Both a release tag an in our maven repo. The master is now 1.0.9-SNAPSHOT.

- Tore.

On 29 Jun 2015, at 01:33, Gabriel Roldan <groldan@anonymised.com> wrote:

Hey thanks for merging.

I see there are no tags/releases other than 1.0.0. Wonder if you can create a 1.0.7 release (since you started 1.0.8-SNAPSHOT after these changes). This way we could depend on a released version and push the new community module to geoserver.

TIA,
Gabriel

On Sun, Jun 28, 2015 at 3:58 PM, Tore Halset <halset@anonymised.com> wrote:
Fixed. Thank you!

- Tore.

> On 26 Jun 2015, at 18:02, Gabriel Roldan <groldan@anonymised.com> wrote:
>
> Hi Tore, thanks for showing up and being open to collaboration.
>
> I've issued a small PR <https://github.com/ElectronicChartCentre/java-vector-tile/pull/5&gt;
> Let me know if that seems ok.
>
> TIA,
> Gabriel
>
> On Fri, Jun 26, 2015 at 12:07 PM, Niels Charlier <niels@anonymised.com> wrote:
> Hi Tore,
>
> Would you consider this PR please:
>
> https://github.com/ElectronicChartCentre/java-vector-tile/pull/4
>
> It allows to provide coordinates in the 0..extent-1 range immediately,
> rather than expecting a 0..255 range and scaling.
> However, this is just an optional setting and the default behaviour
> remains the same.
>
> Thank your in advance for considering!
>
> Kind Regards
> Niels
>
> On 22-06-15 15:29, Tore Halset wrote:
> >> On 19 Jun 2015, at 21:55, Andrea Aime <andrea.aime@anonymised.com> wrote:
> >>
> >> In fact, for the Mapbox vector tiles, there is already an implementation, https://github.com/ElectronicChartCentre/java-vector-tile,
> >> not saying we have to use that one (it would need a bit of love in some places), just showing as an
> >> example of a fully stand alone encoder
> > Just a small ping from me. I wrote that and you are welcome to use it. I have used it for a long time in two projects. More love is welcome as always.
> >
> > It does not care about projection. The incoming geometries must be in tile coordinate space like 0-256. That way it should work equally well with any coordinate system.
> >
> > Regards,
> > Tore Halset.
> >
> >
> > ------------------------------------------------------------------------------
> > Monitor 25 network devices or servers for free with OpManager!
> > OpManager is web-based network management software that monitors
> > network devices and physical & virtual servers, alerts via email & sms
> > for fault. Monitor 25 devices for free with no restriction. Download now
> > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> > _______________________________________________
> > Geoserver-devel mailing list
> > Geoserver-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
>
> ------------------------------------------------------------------------------
> Monitor 25 network devices or servers for free with OpManager!
> OpManager is web-based network management software that monitors
> network devices and physical & virtual servers, alerts via email & sms
> for fault. Monitor 25 devices for free with no restriction. Download now
> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> _______________________________________________
> Geoserver-devel mailing list
> Geoserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
>
>
> --
> Gabriel Roldán
> Software Developer | Boundless
> groldan@anonymised.com
> @boundlessgeo
>

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