MapProxy

From Wildsong
Jump to navigationJump to search

There are some map services that are unreliable because they are unreachable sometimes for days. I think I can solve this problem using MapProxy though.

There is a cache engine built into GeoServer, I write about it here: GeoWebCache, I have tried to make it work but keep coming back to MapProxy because it's easier to set up.

I started to install mapproxy directly on the host then realized yet again I'd be making a bunch of changes to the host just for this one app.

I am developing a relatively portable Docker project of my own now, I want it to run on Windows but right now it's targeted at Linux because it's easier.

I found a Docker containing miniconda and am using that right now.

My github repository is https://github.com/wildsong/docker-mapproxy. The project contains more detailed notes.

I use Conda as the package management tool because it can install things on Windows that I need, notably the libgeos and libproj binaries.

Storage

I am trying to use CouchDB as the data store, because it makes sense to use NoSQL for this. MapProxy supports other back ends, including files.

I have an idea that I can run MapProxy in Windows and CouchDB on some other machine to split up the workload.

Compose

I started off using Docker Compose to start both MapProxy and CouchDB and to link the containers together. It's all working smoothly now so I will move on to Docker Swarm soon.

Currently it works on two different Linux servers, cc-testmaps and bellman.

It's not behind a proxy right now, I just access it on port 8080 on the host network.

Oregon Explorer service glitch

I figured out trial and error that two of the OE services won't deliver usable data on WMS, only on WMTS. Something to be aware of! I will probably drop them a line some day and ask why it's broken.

Multiple services

I want several groups of services, for example,

Oregon Explorer
   OSIP2018
   NAIP2016
   etc

and

 DOGAMI
   hillshade
   BE hillshade

so that I can group things in maps.

I want separate files so that I can manage each service separately but share common settings too.

mapproxy.yaml -- default example
cc.yaml -- mapproxy.yaml that includes these:
  astoria-aerials.yaml
  county-aerials.yaml