7

Esri contacted me about this question. After a good talk the conclusion was that it is not wise to build a wrapper around WMS/WFS because of possible changes to the REST interface of ArcGIS Online later. If we want to use ArcGIS Online fully, we just have to use ArcGIS Server. Too bad that we also use OGC-services from external parties. Found no solution for that yet...

----original question---- Our organisation is interested in using ArcGIS Online. We already serve our spatial data using the OGC standards WMS/WFS using Mapserver. Unfortunately, ArcGIS online only works great if you use ArcGIS Server to serve your data. ArcGIS Online only supports the mapping funcionality of WMS, but not the 'GetFeatureInfo' functionality. WFS is not supported by ArcGIS Online at all.

Because migrating all our maps (800+) to ArcGIS Server will be time consuming and expensive I am searching for an alternative.

Do you know of any method to disguise our WMS/WFS services as if they were ArcGIS Server services? I'm thinking about a wrapper of some kind. In theory ArcGIS Online should than be able to use these services as if they were ArcGIS Server services.

4
  • 1
    Why would you want to do this?? What feature of ArcGIS Online attracts you, that you would consider this convoluted workflow? ArcGIS online is useful if you are a full ArcGIS shop. It is not standards compliant, and you be inviting nothing but trouble if you try to mangle WFS into the REST API. Jun 25, 2013 at 16:47
  • Lets just say that another apartment has put his eye on ArcGIS Online and wants to use it, but with the data we already have available. They functionality that they find attractive is the ease of publishing spatial data to the web, desktop and mobile devices at the same time. I haven't seen anything that can compete on that area yet. The philosophy of ESRI doesn't necessarily follow my personal preference, since I'm always aiming at using open standards. Personally I think that ESRI should open up to OGC standards, but while they don't I'm looking for alternatives. Jun 26, 2013 at 17:29
  • Here is one use case. Your data is in GeoServer but you purchased a 3rd party application that only integrates with the ESRI FeatureServer API. You want to integrate your data into that application. How do you do it? You have to write it from scratch? There is no working implementation in python or node or C# or Java?
    – ca0v
    Jun 11, 2016 at 15:24
  • If it actually was RESTful, then a change to the internal API wouldn't be an issue. REST architecture depends on hypermedia that define where links are, not the structure of the URIs to call.
    – nmtoken
    Dec 21, 2017 at 20:29

3 Answers 3

5
+50

Since you have put a bounty, let me try to explain why you are not likely to get a favourable Answer.

For your WMS/WFS services to appear as an ArcGIS Server Services, the Intermediary wrapper must implement, what ESRI Calls the GeoServices REST Specification

If you take a look at just the specification, it is vague in many respects. There are many other criticisms of the Specification, most of which are covered in this document Geoservices REST API critique.

Hence For your Wrapper to appear exactly like ArcGIS Server, you'll have to reverse engineer the REST API of an existing deployed server. That is easy enough. you just need a running ArcGIS Server, a browser, and firebug/Wireshark. Whether it is Legal, is a different question, one I am not qualified to answer.

If you ask if there is any current open Source software that implements the GeoServices REST Specification, the list is very short. The people at OSGeo, could only find one software: Traveler-Info-GeoServices-REST

Given your need for a Wrapper, your best option would be to write one/ get one developed. You should also look at this question: How can I implement ESRI REST API?

2
  • The traveler-info implementation was abandoned without an explanation! I can see full styling compatibility taking a very long time to get right, which is why I'm searching for a solution.
    – ca0v
    Jun 11, 2016 at 15:30
  • ca0v, it was actually moved to github: github.com/hanyki/Traveler-Info-GeoServices-REST Jan 21, 2020 at 12:33
1

Maybe I'm not understanding your question fully, but ArcGIS Online can consume OGC WMS already (yes not WFS though).

Add a service to your content

enter image description here

Creating a wrapper or new services is not necessary at least for your existing WMS(s).

1
  • Unfortunately ArcGIS Online only supports displaying WMS (the image), but it is not possible to get object information (GetFeatureInfo). So the support is very limited at least. Jul 3, 2013 at 18:11
0

You could try to publish the data using GeoCat Bridge, an extension to ArcMap.

It will publish data (and/or metadata, you choose) to MapServer or GeoServer with exactly the symbology you have within ArcMap.

Then you can build whatever end user application using tools like OpenLayers or use an out of the box web map client.

We (I am from GeoCat) and many others have done that in equivalent cases.

3
  • I don't think this answers the OP's question. He wants to know if an already published WMS/WFS service can be made to appear as a ArcGIS REST Endpoint service (i.e ArcGIS Dynamic/Tiled Map service or a Feature Service) Jun 27, 2013 at 14:30
  • From Mark's reaction to the first response I read: "They functionality that they find attractive is the ease of publishing spatial data to the web, desktop and mobile devices at the same time." So I responded to that part of the question. Jun 27, 2013 at 14:44
  • Thanks Jeroen for the suggestion. However, the thing is that than you have to build your own application or implement multiple different applications for the different platforms. That's just the point. I haven't seen any other tools than ArcGIS Online that lets the user easily configure a map from one place and publish it on all the different platforms at once. So unfortunately GeoCat Bridge is not the answer to my problem, although I think it's a nice product. Jun 28, 2013 at 12:03

Your Answer

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

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