[Geoserver-users] Looking for advise on architecture/setup to overlay 'transparent' OSM roads on aerial tiles

Hi all,

I’m new to GeoServer and have been trying to get some caching running with GeoWebCache, the demos worked out well but I’m a bit lost whether and how I can get my idea to work in the best way.

What I like to achieve is the following:

1.) Have a basemap with aerial pictures
2.) Have a layer with OSM roads, borders and names (all else transparent)

I Will be requesting the data from OpenLayers and CesiumJS.


The (layer acting as) basemap is available at a remote server and for performance reasons it would be great to cache the data temporarily at the local client (Windows 8.1 64b). Except from the URL it responds identical to the well known scheme used by Google Maps (example: http://mt.google.com/vt/lyrs=s&x=4&y=5&z=4 , only with a different URL before the first & of course :wink: ). Also same projection.

I Plan to use the osm-hybrid-carto style sheet (https://github.com/andrewharvey/osm-hybrid-carto/). See for an example http://tianjara.net/map#12/-33.9844/151.1798 (select an Imagery and the OSM Hybrid layer).


The idea is to load OSM data into a database and let GeoServer serve it out using two style sheets:

a.) osm-hybrid-carto - when the remote server is available, such the OSM data provides a transparent overlay of roads/names
b.) normal - when the remote server is not available, such that the OSM data provides a normal chart/map

Next to that I would like to have the GeoWebCache functionality cache the following:

a.) temporal aerial tiles from remote server - to limit load on the remote server and internet connection
b.) transparent OSM roads/borders overlay from local server
c.) full OSM map tiles from local server

OpenLayers and CesiumJS should just be able to load any of the discussed as layers and switch between them on the fly, but that’s the easiest bit…


My questions:

1.) Is my idea feasible with a single GeoServer instance
2.) How do I set up GeoWebCache to listen to requests from a client and fetch the aerial tiles from the TMS server
3.) How do I set up GWC to cache the OSM transparent and ‘full’ tiles at the same time, while also delivering the aerial tiles
4.) Whether I’m missing something essential

Hope someone can give me some help into the right direction :-).

Cheers,

Kim

Maybe I needed to add a little more info what I’d like to set up before someone can help and think along.

I’ll be using OpenLayers and CesiumJS to present the maps/layers.

1.) My basemap needs to be a normal OpenStreetMap map, only with a different style than standard

  • Should be possible to import using osm2pgsql, maybe better solutions available?
  • Plan to use PostgreSQL database on Windows 8.1 64b with PostGIS
    (- the ‘basemap’ may be delivered via a small cache managed by GeoWebCache)

2.) As overlay I need to cache the aerial tiles from the remote tile server

  • This is a normal overlay, tiles just build up on top of the base layer when they arrive
  • Should I run this from the same GeoServer instance, or would it be better to use a separate one or even use MapProxy (got the latter working already)

3.) Another layer needs to be ‘hybrid’, the aerial tiles (2) need to get the roads+names from the basemap

  • I Should be able to use the mentioned hybrid OSM stylesheet to have labels and roads/borders as transparent overlay
  • The labels/etc. should only be visible on top of the aerial tiles, in case the basemap is still visible for a specific tile, first that tile needs to have become an aerial tile first
  • Alternatively it may be better to combine aerial and OSM transparant tiles on the fly, not sure if this is possible in GeoServer though.

Hope a light can be shed whether this setup is possible, what I should avoid to do, or whether there are alternative solutions to my idea.

···

On Wed, Jan 21, 2015 at 5:31 PM, Kim Jansen <kim@anonymised.com5…> wrote:

Hi all,

I’m new to GeoServer and have been trying to get some caching running with GeoWebCache, the demos worked out well but I’m a bit lost whether and how I can get my idea to work in the best way.

What I like to achieve is the following:

1.) Have a basemap with aerial pictures
2.) Have a layer with OSM roads, borders and names (all else transparent)

I Will be requesting the data from OpenLayers and CesiumJS.


The (layer acting as) basemap is available at a remote server and for performance reasons it would be great to cache the data temporarily at the local client (Windows 8.1 64b). Except from the URL it responds identical to the well known scheme used by Google Maps (example: http://mt.google.com/vt/lyrs=s&x=4&y=5&z=4 , only with a different URL before the first & of course :wink: ). Also same projection.

I Plan to use the osm-hybrid-carto style sheet (https://github.com/andrewharvey/osm-hybrid-carto/). See for an example http://tianjara.net/map#12/-33.9844/151.1798 (select an Imagery and the OSM Hybrid layer).


The idea is to load OSM data into a database and let GeoServer serve it out using two style sheets:

a.) osm-hybrid-carto - when the remote server is available, such the OSM data provides a transparent overlay of roads/names
b.) normal - when the remote server is not available, such that the OSM data provides a normal chart/map

Next to that I would like to have the GeoWebCache functionality cache the following:

a.) temporal aerial tiles from remote server - to limit load on the remote server and internet connection
b.) transparent OSM roads/borders overlay from local server
c.) full OSM map tiles from local server

OpenLayers and CesiumJS should just be able to load any of the discussed as layers and switch between them on the fly, but that’s the easiest bit…


My questions:

1.) Is my idea feasible with a single GeoServer instance
2.) How do I set up GeoWebCache to listen to requests from a client and fetch the aerial tiles from the TMS server
3.) How do I set up GWC to cache the OSM transparent and ‘full’ tiles at the same time, while also delivering the aerial tiles
4.) Whether I’m missing something essential

Hope someone can give me some help into the right direction :-).

Cheers,

Kim

Hello Kim,

That is some project you have there!

First of all, everything is possible with geoserver and geowebcache.
It all depends on the size and scale of your project:

- How many users will you be serving?
- How big a geographic area will you provide?

A single machine easily becomes overloaded, don't expect lightning
fast performance..

2015-01-28 17:14 GMT+01:00 Kim Jansen <kim@anonymised.com>:

Maybe I needed to add a little more info what I'd like to set up before
someone can help and think along.

I'll be using OpenLayers and CesiumJS to present the maps/layers.

1.) My basemap needs to be a normal OpenStreetMap map, only with a different
style than standard
- Should be possible to import using osm2pgsql, maybe better solutions
available?

You can choose between a variety of importers; imposm and osm2pgsql
are solutions that shouldn't take to much time to set up. What
triggers me is "a different style than standard". As a cartographer, I
know that can be a huge time consumer. I have done a lot of SLD
styling myself and can tell you from experience, it keeps you
occupied. Are you really sure that is what you want to do yourself? Or
would getting an account at mapbox, cartodb or maybe
http://www.thunderforest.com/ solve your problems?

- Plan to use PostgreSQL database on Windows 8.1 64b with PostGIS
(- the 'basemap' may be delivered via a small cache managed by GeoWebCache)

Shouldn't be a problem, but depends on the geographical size of your
interest area.

2.) As overlay I need to cache the aerial tiles from the remote tile server
- This is a normal overlay, tiles just build up on top of the base layer
when they arrive
- Should I run this from the same GeoServer instance, or would it be better
to use a separate one or even use MapProxy (got the latter working already)

Again, this depends on the size of your project.

3.) Another layer needs to be 'hybrid', the aerial tiles (2) need to get the
roads+names from the basemap
- I Should be able to use the mentioned hybrid OSM stylesheet to have labels
and roads/borders as transparent overlay
- The labels/etc. should only be visible on top of the aerial tiles, in case
the basemap is still visible for a specific tile, first that tile needs to
have become an aerial tile first
- Alternatively it may be better to combine aerial and OSM transparant tiles
on the fly, not sure if this is possible in GeoServer though.

Hope a light can be shed whether this setup is possible, what I should avoid
to do, or whether there are alternative solutions to my idea.

On Wed, Jan 21, 2015 at 5:31 PM, Kim Jansen <kim@anonymised.com> wrote:

Hi all,

I'm new to GeoServer and have been trying to get some caching running with
GeoWebCache, the demos worked out well but I'm a bit lost whether and how I
can get my idea to work in the best way.

What I like to achieve is the following:

1.) Have a basemap with aerial pictures
2.) Have a layer with OSM roads, borders and names (all else transparent)

I Will be requesting the data from OpenLayers and CesiumJS.

---

The (layer acting as) basemap is available at a remote server and for
performance reasons it would be great to cache the data temporarily at the
local client (Windows 8.1 64b). Except from the URL it responds identical to
the well known scheme used by Google Maps (example:
http://mt.google.com/vt/lyrs=s&x=4&y=5&z=4 , only with a different URL
before the first & of course :wink: ). Also same projection.

I Plan to use the osm-hybrid-carto style sheet
(https://github.com/andrewharvey/osm-hybrid-carto/). See for an example
http://tianjara.net/map#12/-33.9844/151.1798 (select an Imagery and the OSM
Hybrid layer).

---

The idea is to load OSM data into a database and let GeoServer serve it
out using two style sheets:

a.) osm-hybrid-carto - when the remote server is available, such the OSM
data provides a transparent overlay of roads/names
b.) normal - when the remote server is not available, such that the OSM
data provides a normal chart/map

Next to that I would like to have the GeoWebCache functionality cache the
following:

a.) temporal aerial tiles from remote server - to limit load on the remote
server and internet connection
b.) transparent OSM roads/borders overlay from local server
c.) full OSM map tiles from local server

OpenLayers and CesiumJS should just be able to load any of the discussed
as layers and switch between them on the fly, but that's the easiest bit...

---

My questions:

1.) Is my idea feasible with a single GeoServer instance
2.) How do I set up GeoWebCache to listen to requests from a client and
fetch the aerial tiles from the TMS server
3.) How do I set up GWC to cache the OSM transparent and 'full' tiles at
the same time, while also delivering the aerial tiles
4.) Whether I'm missing something essential

Hope someone can give me some help into the right direction :-).

Cheers,

Kim

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Milo van der Linden
dogodigi
t: +31-6-16598808

Hi Milo,

Thanks for the reply, good news that it should be possible. I understand there might be performance things we need to take into account, but from the other hand my idea is probably not that spectacular.

Hope it’s possible to iron out the architecture a little and see if I can get a quick and dirty proof of concept with a small area up and running first. I’m new and have no clue on the amount of work involved and what to expect at all ;-).

I’ve commented in-line.

Cheers,

Kim

···

On Wed, Jan 28, 2015 at 5:39 PM, Milo van der Linden <milo@anonymised.com> wrote:

Hello Kim,

That is some project you have there!

First of all, everything is possible with geoserver and geowebcache.
It all depends on the size and scale of your project:

  • How many users will you be serving?
  • How big a geographic area will you provide?

A single machine easily becomes overloaded, don’t expect lightning
fast performance…

Basically what I have is that I like to have several ‘systems’ in the field with limited connectivity (intermittent connection, high latency and low bandwidth) that need access to map data for reference/information, not business critical stuff. The coverage that I need is worldwide and performance is the main reason I’m looking for a decent solution. Each system ideally stores around 150GB of ‘fixed’ aerial tiles to a reasonable zoom level, has a complete OSM database and maybe/optionally a temporary and small cache of Bing tiles that fills up the gap between the 150GB dataset and the close-up zoom levels.

The load on the GeoServer is quite limited I think, in most cases it would only the local user to the machine that requests data. There is a scenario where up to 25 users per system may request tiles, but this will never happen concurrently and each of the users will just have a normal profile of someone playing with a map on an iPad.

My best guess is that this should still be feasible even with a simple Core i3 and 8GB of RAM?

2015-01-28 17:14 GMT+01:00 Kim Jansen <kim@anonymised.com>:

Maybe I needed to add a little more info what I’d like to set up before
someone can help and think along.

I’ll be using OpenLayers and CesiumJS to present the maps/layers.

1.) My basemap needs to be a normal OpenStreetMap map, only with a different
style than standard

  • Should be possible to import using osm2pgsql, maybe better solutions
    available?

You can choose between a variety of importers; imposm and osm2pgsql
are solutions that shouldn’t take to much time to set up. What
triggers me is “a different style than standard”. As a cartographer, I
know that can be a huge time consumer. I have done a lot of SLD
styling myself and can tell you from experience, it keeps you
occupied. Are you really sure that is what you want to do yourself? Or
would getting an account at mapbox, cartodb or maybe
http://www.thunderforest.com/ solve your problems?

I First want to get things running with the standard styles, and later on work with a cartographer (or existing stylesheet) to see if we can make it a little more visually attractive. All the available providers of nicely styled maps, or those that provide tools to ‘easily’ customise a map seem to be relying on an active internet connection for their service. And that’s just what’s not very available to me.

  • Plan to use PostgreSQL database on Windows 8.1 64b with PostGIS
    (- the ‘basemap’ may be delivered via a small cache managed by GeoWebCache)

Shouldn’t be a problem, but depends on the geographical size of your
interest area.

I’m guessing I will be looking at 250-300GB of database size with OSM data given I need worldwide coverage. But again, my feeling is this is large is size, but the load will be relatively low.

2.) As overlay I need to cache the aerial tiles from the remote tile server

  • This is a normal overlay, tiles just build up on top of the base layer
    when they arrive
  • Should I run this from the same GeoServer instance, or would it be better
    to use a separate one or even use MapProxy (got the latter working already)

Again, this depends on the size of your project.

3.) Another layer needs to be ‘hybrid’, the aerial tiles (2) need to get the
roads+names from the basemap

  • I Should be able to use the mentioned hybrid OSM stylesheet to have labels
    and roads/borders as transparent overlay
  • The labels/etc. should only be visible on top of the aerial tiles, in case
    the basemap is still visible for a specific tile, first that tile needs to
    have become an aerial tile first
  • Alternatively it may be better to combine aerial and OSM transparant tiles
    on the fly, not sure if this is possible in GeoServer though.

Hope a light can be shed whether this setup is possible, what I should avoid
to do, or whether there are alternative solutions to my idea.

On Wed, Jan 21, 2015 at 5:31 PM, Kim Jansen <kim@anonymised.com> wrote:

Hi all,

I’m new to GeoServer and have been trying to get some caching running with
GeoWebCache, the demos worked out well but I’m a bit lost whether and how I
can get my idea to work in the best way.

What I like to achieve is the following:

1.) Have a basemap with aerial pictures
2.) Have a layer with OSM roads, borders and names (all else transparent)

I Will be requesting the data from OpenLayers and CesiumJS.


The (layer acting as) basemap is available at a remote server and for
performance reasons it would be great to cache the data temporarily at the
local client (Windows 8.1 64b). Except from the URL it responds identical to
the well known scheme used by Google Maps (example:
http://mt.google.com/vt/lyrs=s&x=4&y=5&z=4 , only with a different URL
before the first & of course :wink: ). Also same projection.

I Plan to use the osm-hybrid-carto style sheet
(https://github.com/andrewharvey/osm-hybrid-carto/). See for an example
http://tianjara.net/map#12/-33.9844/151.1798 (select an Imagery and the OSM
Hybrid layer).


The idea is to load OSM data into a database and let GeoServer serve it
out using two style sheets:

a.) osm-hybrid-carto - when the remote server is available, such the OSM
data provides a transparent overlay of roads/names
b.) normal - when the remote server is not available, such that the OSM
data provides a normal chart/map

Next to that I would like to have the GeoWebCache functionality cache the
following:

a.) temporal aerial tiles from remote server - to limit load on the remote
server and internet connection
b.) transparent OSM roads/borders overlay from local server
c.) full OSM map tiles from local server

OpenLayers and CesiumJS should just be able to load any of the discussed
as layers and switch between them on the fly, but that’s the easiest bit…


My questions:

1.) Is my idea feasible with a single GeoServer instance
2.) How do I set up GeoWebCache to listen to requests from a client and
fetch the aerial tiles from the TMS server
3.) How do I set up GWC to cache the OSM transparent and ‘full’ tiles at
the same time, while also delivering the aerial tiles
4.) Whether I’m missing something essential

Hope someone can give me some help into the right direction :-).

Cheers,

Kim


Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/


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


Milo van der Linden
dogodigi
t: +31-6-16598808

Hello Kim,

Things are getting clearer. You are looking for an offline solution!
Get it. You may consider mapproxy as it is able to generate mbtiles,
you can then take the mbtiles datastore on the road. I can strongly
advise you to set up an online/offline syncing mechanism too.

Good luck!

Milo

2015-01-28 18:17 GMT+01:00 Kim Jansen <kim@anonymised.com>:

Hi Milo,

Thanks for the reply, good news that it should be possible. I understand
there might be performance things we need to take into account, but from the
other hand my idea is probably not that spectacular.

Hope it's possible to iron out the architecture a little and see if I can
get a quick and dirty proof of concept with a small area up and running
first. I'm new and have no clue on the amount of work involved and what to
expect at all ;-).

I've commented in-line.

Cheers,

Kim

On Wed, Jan 28, 2015 at 5:39 PM, Milo van der Linden <milo@anonymised.com>
wrote:

Hello Kim,

That is some project you have there!

First of all, everything is possible with geoserver and geowebcache.
It all depends on the size and scale of your project:

- How many users will you be serving?
- How big a geographic area will you provide?

A single machine easily becomes overloaded, don't expect lightning
fast performance..

Basically what I have is that I like to have several 'systems' in the field
with limited connectivity (intermittent connection, high latency and low
bandwidth) that need access to map data for reference/information, not
business critical stuff. The coverage that I need is worldwide and
performance is the main reason I'm looking for a decent solution. Each
system ideally stores around 150GB of 'fixed' aerial tiles to a reasonable
zoom level, has a complete OSM database and maybe/optionally a temporary and
small cache of Bing tiles that fills up the gap between the 150GB dataset
and the close-up zoom levels.

The load on the GeoServer is quite limited I think, in most cases it would
only the local user to the machine that requests data. There is a scenario
where up to 25 users per system may request tiles, but this will never
happen concurrently and each of the users will just have a normal profile of
someone playing with a map on an iPad.

My best guess is that this should still be feasible even with a simple Core
i3 and 8GB of RAM?

2015-01-28 17:14 GMT+01:00 Kim Jansen <kim@anonymised.com>:
> Maybe I needed to add a little more info what I'd like to set up before
> someone can help and think along.
>
> I'll be using OpenLayers and CesiumJS to present the maps/layers.
>
> 1.) My basemap needs to be a normal OpenStreetMap map, only with a
> different
> style than standard
> - Should be possible to import using osm2pgsql, maybe better solutions
> available?

You can choose between a variety of importers; imposm and osm2pgsql
are solutions that shouldn't take to much time to set up. What
triggers me is "a different style than standard". As a cartographer, I
know that can be a huge time consumer. I have done a lot of SLD
styling myself and can tell you from experience, it keeps you
occupied. Are you really sure that is what you want to do yourself? Or
would getting an account at mapbox, cartodb or maybe
http://www.thunderforest.com/ solve your problems?

I First want to get things running with the standard styles, and later on
work with a cartographer (or existing stylesheet) to see if we can make it a
little more visually attractive. All the available providers of nicely
styled maps, or those that provide tools to 'easily' customise a map seem to
be relying on an active internet connection for their service. And that's
just what's not very available to me.

> - Plan to use PostgreSQL database on Windows 8.1 64b with PostGIS
> (- the 'basemap' may be delivered via a small cache managed by
> GeoWebCache)

Shouldn't be a problem, but depends on the geographical size of your
interest area.

I'm guessing I will be looking at 250-300GB of database size with OSM data
given I need worldwide coverage. But again, my feeling is this is large is
size, but the load will be relatively low.

>
> 2.) As overlay I need to cache the aerial tiles from the remote tile
> server
> - This is a normal overlay, tiles just build up on top of the base layer
> when they arrive
> - Should I run this from the same GeoServer instance, or would it be
> better
> to use a separate one or even use MapProxy (got the latter working
> already)

Again, this depends on the size of your project.

>
> 3.) Another layer needs to be 'hybrid', the aerial tiles (2) need to get
> the
> roads+names from the basemap
> - I Should be able to use the mentioned hybrid OSM stylesheet to have
> labels
> and roads/borders as transparent overlay
> - The labels/etc. should only be visible on top of the aerial tiles, in
> case
> the basemap is still visible for a specific tile, first that tile needs
> to
> have become an aerial tile first
> - Alternatively it may be better to combine aerial and OSM transparant
> tiles
> on the fly, not sure if this is possible in GeoServer though.
>
> Hope a light can be shed whether this setup is possible, what I should
> avoid
> to do, or whether there are alternative solutions to my idea.
>
>
> On Wed, Jan 21, 2015 at 5:31 PM, Kim Jansen <kim@anonymised.com> wrote:
>>
>> Hi all,
>>
>> I'm new to GeoServer and have been trying to get some caching running
>> with
>> GeoWebCache, the demos worked out well but I'm a bit lost whether and
>> how I
>> can get my idea to work in the best way.
>>
>> What I like to achieve is the following:
>>
>> 1.) Have a basemap with aerial pictures
>> 2.) Have a layer with OSM roads, borders and names (all else
>> transparent)
>>
>> I Will be requesting the data from OpenLayers and CesiumJS.
>>
>> ---
>>
>> The (layer acting as) basemap is available at a remote server and for
>> performance reasons it would be great to cache the data temporarily at
>> the
>> local client (Windows 8.1 64b). Except from the URL it responds
>> identical to
>> the well known scheme used by Google Maps (example:
>> http://mt.google.com/vt/lyrs=s&x=4&y=5&z=4 , only with a different URL
>> before the first & of course :wink: ). Also same projection.
>>
>> I Plan to use the osm-hybrid-carto style sheet
>> (https://github.com/andrewharvey/osm-hybrid-carto/). See for an example
>> http://tianjara.net/map#12/-33.9844/151.1798 (select an Imagery and the
>> OSM
>> Hybrid layer).
>>
>> ---
>>
>> The idea is to load OSM data into a database and let GeoServer serve it
>> out using two style sheets:
>>
>> a.) osm-hybrid-carto - when the remote server is available, such the
>> OSM
>> data provides a transparent overlay of roads/names
>> b.) normal - when the remote server is not available, such that the OSM
>> data provides a normal chart/map
>>
>> Next to that I would like to have the GeoWebCache functionality cache
>> the
>> following:
>>
>> a.) temporal aerial tiles from remote server - to limit load on the
>> remote
>> server and internet connection
>> b.) transparent OSM roads/borders overlay from local server
>> c.) full OSM map tiles from local server
>>
>> OpenLayers and CesiumJS should just be able to load any of the
>> discussed
>> as layers and switch between them on the fly, but that's the easiest
>> bit...
>>
>> ---
>>
>> My questions:
>>
>> 1.) Is my idea feasible with a single GeoServer instance
>> 2.) How do I set up GeoWebCache to listen to requests from a client and
>> fetch the aerial tiles from the TMS server
>> 3.) How do I set up GWC to cache the OSM transparent and 'full' tiles
>> at
>> the same time, while also delivering the aerial tiles
>> 4.) Whether I'm missing something essential
>>
>> Hope someone can give me some help into the right direction :-).
>>
>> Cheers,
>>
>> Kim
>
>
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is
> your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take
> a
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Geoserver-users mailing list
> Geoserver-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>

--
Milo van der Linden
dogodigi
t: +31-6-16598808

--
Milo van der Linden
dogodigi
t: +31-6-16598808

Hi Milo,

You can consider it to be an offline solution indeed, although there is room for updates or more ‘detail’ when there is a connection available and the user likes to see aerial info in more detail. The thing is that I think GeoServer might just pack everything needed in one solution. Using MapProxy I would need to have a separate OSM server running on that machine and it feels like a less ‘neat’ approach.

Think I should just give it a go, sounds like there are no real caveats or issues with
1.) Get OSM data in PostgreSQL and have GeoServer serve it
2.) Set up the GeoWebCache functionality in GeoServer to cache from remote aerial tiles
3.) Set up another OSM layer with transparent tiles
4.) Combine the transparent OSM tiles with the remote aerial tiles

The only ‘uncertain’ thing for me right now is how to have GeoServer serve out the hybrid map (the transparent OSM info on top of and embedded with the aerial) instead of serving it as a separate layer.

Cheers,

Kim

···

On Wed, Jan 28, 2015 at 7:03 PM, Milo van der Linden <milo@anonymised.com> wrote:

Hello Kim,

Things are getting clearer. You are looking for an offline solution!
Get it. You may consider mapproxy as it is able to generate mbtiles,
you can then take the mbtiles datastore on the road. I can strongly
advise you to set up an online/offline syncing mechanism too.

Good luck!

Milo

2015-01-28 18:17 GMT+01:00 Kim Jansen <kim@anonymised.com>:

Hi Milo,

Thanks for the reply, good news that it should be possible. I understand
there might be performance things we need to take into account, but from the
other hand my idea is probably not that spectacular.

Hope it’s possible to iron out the architecture a little and see if I can
get a quick and dirty proof of concept with a small area up and running
first. I’m new and have no clue on the amount of work involved and what to
expect at all ;-).

I’ve commented in-line.

Cheers,

Kim

On Wed, Jan 28, 2015 at 5:39 PM, Milo van der Linden <milo@anonymised.com>
wrote:

Hello Kim,

That is some project you have there!

First of all, everything is possible with geoserver and geowebcache.
It all depends on the size and scale of your project:

  • How many users will you be serving?
  • How big a geographic area will you provide?

A single machine easily becomes overloaded, don’t expect lightning
fast performance…

Basically what I have is that I like to have several ‘systems’ in the field
with limited connectivity (intermittent connection, high latency and low
bandwidth) that need access to map data for reference/information, not
business critical stuff. The coverage that I need is worldwide and
performance is the main reason I’m looking for a decent solution. Each
system ideally stores around 150GB of ‘fixed’ aerial tiles to a reasonable
zoom level, has a complete OSM database and maybe/optionally a temporary and
small cache of Bing tiles that fills up the gap between the 150GB dataset
and the close-up zoom levels.

The load on the GeoServer is quite limited I think, in most cases it would
only the local user to the machine that requests data. There is a scenario
where up to 25 users per system may request tiles, but this will never
happen concurrently and each of the users will just have a normal profile of
someone playing with a map on an iPad.

My best guess is that this should still be feasible even with a simple Core
i3 and 8GB of RAM?

2015-01-28 17:14 GMT+01:00 Kim Jansen <kim@anonymised.com>:

Maybe I needed to add a little more info what I’d like to set up before
someone can help and think along.

I’ll be using OpenLayers and CesiumJS to present the maps/layers.

1.) My basemap needs to be a normal OpenStreetMap map, only with a
different
style than standard

  • Should be possible to import using osm2pgsql, maybe better solutions
    available?

You can choose between a variety of importers; imposm and osm2pgsql
are solutions that shouldn’t take to much time to set up. What
triggers me is “a different style than standard”. As a cartographer, I
know that can be a huge time consumer. I have done a lot of SLD
styling myself and can tell you from experience, it keeps you
occupied. Are you really sure that is what you want to do yourself? Or
would getting an account at mapbox, cartodb or maybe
http://www.thunderforest.com/ solve your problems?

I First want to get things running with the standard styles, and later on
work with a cartographer (or existing stylesheet) to see if we can make it a
little more visually attractive. All the available providers of nicely
styled maps, or those that provide tools to ‘easily’ customise a map seem to
be relying on an active internet connection for their service. And that’s
just what’s not very available to me.

  • Plan to use PostgreSQL database on Windows 8.1 64b with PostGIS
    (- the ‘basemap’ may be delivered via a small cache managed by
    GeoWebCache)

Shouldn’t be a problem, but depends on the geographical size of your
interest area.

I’m guessing I will be looking at 250-300GB of database size with OSM data
given I need worldwide coverage. But again, my feeling is this is large is
size, but the load will be relatively low.

2.) As overlay I need to cache the aerial tiles from the remote tile
server

  • This is a normal overlay, tiles just build up on top of the base layer
    when they arrive
  • Should I run this from the same GeoServer instance, or would it be
    better
    to use a separate one or even use MapProxy (got the latter working
    already)

Again, this depends on the size of your project.

3.) Another layer needs to be ‘hybrid’, the aerial tiles (2) need to get
the
roads+names from the basemap

  • I Should be able to use the mentioned hybrid OSM stylesheet to have
    labels
    and roads/borders as transparent overlay
  • The labels/etc. should only be visible on top of the aerial tiles, in
    case
    the basemap is still visible for a specific tile, first that tile needs
    to
    have become an aerial tile first
  • Alternatively it may be better to combine aerial and OSM transparant
    tiles
    on the fly, not sure if this is possible in GeoServer though.

Hope a light can be shed whether this setup is possible, what I should
avoid
to do, or whether there are alternative solutions to my idea.

On Wed, Jan 21, 2015 at 5:31 PM, Kim Jansen <kim@anonymised.com> wrote:

Hi all,

I’m new to GeoServer and have been trying to get some caching running
with
GeoWebCache, the demos worked out well but I’m a bit lost whether and
how I
can get my idea to work in the best way.

What I like to achieve is the following:

1.) Have a basemap with aerial pictures
2.) Have a layer with OSM roads, borders and names (all else
transparent)

I Will be requesting the data from OpenLayers and CesiumJS.


The (layer acting as) basemap is available at a remote server and for
performance reasons it would be great to cache the data temporarily at
the
local client (Windows 8.1 64b). Except from the URL it responds
identical to
the well known scheme used by Google Maps (example:
http://mt.google.com/vt/lyrs=s&x=4&y=5&z=4 , only with a different URL
before the first & of course :wink: ). Also same projection.

I Plan to use the osm-hybrid-carto style sheet
(https://github.com/andrewharvey/osm-hybrid-carto/). See for an example
http://tianjara.net/map#12/-33.9844/151.1798 (select an Imagery and the
OSM
Hybrid layer).


The idea is to load OSM data into a database and let GeoServer serve it
out using two style sheets:

a.) osm-hybrid-carto - when the remote server is available, such the
OSM
data provides a transparent overlay of roads/names
b.) normal - when the remote server is not available, such that the OSM
data provides a normal chart/map

Next to that I would like to have the GeoWebCache functionality cache
the
following:

a.) temporal aerial tiles from remote server - to limit load on the
remote
server and internet connection
b.) transparent OSM roads/borders overlay from local server
c.) full OSM map tiles from local server

OpenLayers and CesiumJS should just be able to load any of the
discussed
as layers and switch between them on the fly, but that’s the easiest
bit…


My questions:

1.) Is my idea feasible with a single GeoServer instance
2.) How do I set up GeoWebCache to listen to requests from a client and
fetch the aerial tiles from the TMS server
3.) How do I set up GWC to cache the OSM transparent and ‘full’ tiles
at
the same time, while also delivering the aerial tiles
4.) Whether I’m missing something essential

Hope someone can give me some help into the right direction :-).

Cheers,

Kim


Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is
your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take
a
look and join the conversation now. http://goparallel.sourceforge.net/


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


Milo van der Linden
dogodigi
t: +31-6-16598808


Milo van der Linden
dogodigi
t: +31-6-16598808