3

We are building up an application to collect map services from different owner. One of our big questions at the moment is how we can merge various map services from different institutions or municipalities into one map service. The sources are using different software but we can always depend on international standards.


To give you an example:

  • Every municipality collects it's own building data.
  • Every municipality publishes it's building data set as a map service
  • We would like to combine all of these map services into one service
  • The end user just has to add one map service into his system to have a look at all the buildings of all municipalities
  • The user should be able to request (identify function) background data from each building

The central application is build on ESRI products, but we can add extra software to merge the map services.

I tried to find a solution with GeoServer, since I do not have a much experience in ESRI. But until now I did not find a proper way to do it.

4
  • I would try with cascading the municipality services with GeoServer docs.geoserver.org/stable/en/user/data/cascaded/wms.html. That will make you a new layer for each municipality but you can combine them together into a layer group docs.geoserver.org/stable/en/user/webadmin/data/….
    – user30184
    Commented Jan 11, 2015 at 13:07
  • Thank you for the suggestion, I was already testing parts of it. One negative aspect is that Authentication for the remote WMS isn’t supported. KHibma also has some valid points, what happens if one service is not working and how long does it take to load all the services (there might by 300 of them). Are they loaded at the same time or one after another? I will further test your suggestion. Thank you!
    – Alex
    Commented Jan 12, 2015 at 7:23
  • I read again through the explanation of the layer group and one big disadvantage is that layers are load one after another. When you think about 300 layers, this will take forever. I need a solution where all layers are load at the same time and it should also work even if one service is not available at the moment. I am also testing the aggregate plugin for GeoServer. But I need further testing.
    – Alex
    Commented Jan 12, 2015 at 8:48
  • If municipality data is like parcels etc. it could be possible to set scale limit. Showing all the parcels at state wide map does not make sense and when users zoom in would mean only opening a handful of cascaded WMS layers at maximum.
    – user30184
    Commented Jan 12, 2015 at 10:00

2 Answers 2

1

If the services being returned are all from ArcGIS Server (esri), why not just build a web application (JavaScript API?) to bring all them together. I don't see the need or value gained by ingesting them into your own server and re hosting them that way.

I'd generally stay away from cascading services. What happens if one of the services you've ingested fails to load into your service? Will the service you're serving continuing to work, or will it time out as it waits for the non-responding service, creating a poor user experience. If you combine the services at the web application level and one has timed out, you'll still draw all the other layers (services). Plus the overhead you've added, a service serving services. It might not be much, but again I dont see the value gained by cascading.

If this answer misses the mark, can you add more information about the client your users will be using and the reason why?

2
  • Every municipality can choose their software without restrictions. We do not know at the moment if everyone uses ArcGIS Server. Your points are important, even if one service does not respond the rest should still work in a performant way. We would like to combine (maybe 300 services) to give out only one URL to get all the building data of the country. I will have a look at your suggestion. Thank you!
    – Alex
    Commented Jan 12, 2015 at 7:26
  • tell the municipalities capabilities to download the data in the service. export into to arcmap (or whatever) then re-upload as a single service. this of course means your service data isn't dynamic (changing too often) otherwise this process will be tedious. what is purpose of viewing all these services? why not just host all the services into one map so the viewer can see everything in one place.
    – NULL.Dude
    Commented Jul 28, 2017 at 12:47
0

MapProxy seems to meet your requirements. It can combine various map services into one as a one map service for the client. It alsro provides caching, which means less load to provider services. Unfortunately I'm not sure about wether "The user should be able to request (identify function) background data from each building" can be provided by mapproxy. You can check it at https://mapproxy.org/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.