Is there a way to use the digital globe from my own server for free?

Hi Community.

I am working in a non-profit startup.

We basically want to provide a digital globe, parallel in a web app and later in a PC app.

The idea was to install a tile server on our webserver, download OSM Planet and OSM Buildings (if that’s not included in the planet download) and serve the tiles to our web app and our native PC app from our server (for cheap 0,005 cents a GB)

In the past weeks, I read a lot of Cesium articles and blog posts now, but I don’t really grasp, if our desire is possible and allowed???

If yes, how?

Could someone provide me with a set of the right links for what I need?

A combination of Cesium, OSM and Openlayers could be a solution maybe?
I read, serving tiles needs a lot of resources serverside (32-60GB of RAM), so streaming it from a free provider would be the best solution, if I didn’t misunderstand the concept of Openlayers???

Is a Contabo server a reliable and cheap solution for a tile server?

I know I am mixing up a lot here, but nothing is decided yet and I am open to every solution, as long as it is reliable and affordable!

FWIW, we had an internal app that needed to run completely offline. We generated our own tilemap files from some low-ish res public imagery sources, and our own terrain data tiles from publicly available terrain source data. I put the datasets into MBTiles files, and just wrote a small Python service to serve those tiles off disk.

I don’t know how much traffic you expect to be serving, but I can’t immediately see any reason why serving a bunch of tiles would require a massive amount of RAM at all. It should just be a glorified static file server - it’s just a question of how you’re storing those tile files on disk and reading those tile files when the request happens.

So, while I don’t know your actual business requirements, my assumption is you’re wayyy over-thinking this and definitely don’t need a hefty machine like that.

First, thank you very much for your reply.

We like to use a quality compared to the Cesium material with elevation, terrain and buildings. (see picture)

Elaborated from our advertising average click rate, we expect between 33.000-200.000 users a month using our service. (it varies a lot througout the year)

There is a studied Geo Engineer who has said, that a machine like this:

  • 8 CPU vCore
  • 32 GB RAM guaranteed
  • 800 GB SSD
  • 1 SSL-Zertifikat inklusive
  • Connection up to 500 MBit/s
  • Traffic Unlimited

…could serve a few hundred users. I guess that means something between 300 and 1000? :thinking:

But I am wondering too, because I can’t really think of having multiple hefty machines like this for 33.000 users??? :thinking: :thinking: :thinking:

Lets say 1 virtual machine = 1000 users…
…then i need 33 machines for 33.000 users…

Cost: 495€

Kind of cheap for 33 machines, but also expensive for just 33.000 users, because just a fraction of this users will spend money on my platform…

Maybe i miss the flexible scaling up and down part in my equation?
Like having a fixed stack and booking automatically more machines on high peaks…?

but short question: is there a tutorial available on how to replace the data source from cesium ion to my own server? same for the data source for the unreal plugin?

Can’t speak to the Unreal side at all For the Cesium.js toolkit, it’s “just” a matter of creating an instance of the right ImageryProvider and TerrainProvider with the URL of your own server and assigning them to the Viewer or Scene`.

If you’re wanting to host your own imagery and terrain (and potentially additional buildings and such), I would be surprised if you’d be able to match Cesium Ion’s quality - I know they’ve ingested a lot of very high-res imagery and terrain data for them to serve.

I think your best bet for server needs analysis would be to figure out how many tile requests get made by one typical user session, then start doing math from there. For example, some totally fake numbers I’m making up off the top of my head:

  • Initial load: 100 image tiles, 20 terrain tiles, in a span of 20 seconds, so an average of 6 reqs/sec
  • Peak users: 600 users in one hour
  • 10 new users per minute during peak
  • 10 users * 6 reqs/sec = 60 requests / sec

Like, those are totally fake numbers, but any web server application could serve 60 reqs/sec in its sleep, especially if it’s just a bunch of static files.

Now, to be clear: I’m definitely not an “experienced geo engineer”. I’ve worked on one internal project, so my own experience is relatively limited. So, take my advice with an appropriate grain of salt.

But I do think you’re over-estimating the needs of “200K users / month”. Narrow that down to “users at a time” and work out the math from there.

1 Like

Thanks a lot for your answer.

Yes you are right, I should rather go for ‘users at a time’.

And yes, collecting the high res material will be the next pain :sweat_smile:

that would rather mean that for 33.000 to 200.000 users a month, so average 1.100 to 6.666 users a day, i would rather end up with 2 - 10 machines, maybe running 2 constantly and spinning up up to 10 on peak times… means about 30€ to 150€ a month max.

that makes much more sense now.

Again, thank you very much for your input… :pray:


We use offline server with elevation, maps and 3d tiles as you can see: