-2

I am trying to add layer 12 (warnings) in this services directory to a Leaflet map: https://igems.doi.gov/arcgis/rest/services/igems_haz/MapServer

I have been able to add the layer using WMS and ESRI's vector feature layer format, but neither works for me. WMS performs quickly, but I haven't been able to get popup info windows that are useful. With ESRI feature layer, it is the opposite: the info windows work great, but the large vector layer slows everything down.

At the top of services directory page it says "JSON | SOAP | WMS". Do JSON and SOAP refer to different formats besides WMS and ESRI's Feature Layer format that I can use in Leaflet?

Most of my experience is in the desktop GIS, so I am still not 100% on the different formats and specifications for webGIS.

  • Rather than investigating yet more options why don't you investigate why either WMS or "ESRI feature layer format" does not meet your requirements? I suspect either should be able to. – PolyGeo Dec 15 '16 at 6:22
  • The popups don't work for WMS because WMS uses XML instead of JSON which is more amenable to JavaScript libraries like Leaflet. I've had a developer explain to me how it can be done, but it was over my head. ESRI feature layer format (I am not exactly what it is but I just know it works with ESRI Leaflet) doesn't work good because it transmits the data in a vector format. With the NWS Warnings layer, we're talking about thousands of vertices and it is simply too much data to download quickly plus it freezes on mobile devices. – Ezra Boyd Dec 15 '16 at 6:29
  • Please use the edit button beneath your question to revise it with any requested clarifications. By "ESRI feature layer format" it sounds like you mean an ArcGIS Server Feature Service. Why don't you try an ArcGIS Server Map Service (equivalent of WMS) instead? – PolyGeo Dec 15 '16 at 6:48
  • To be honest, I've tried to figure out exactly format this is, but I have not find any place that explains it. All I know is that I can add it to my map using L.esri.feature layer, but that it is much slower than WMS and freezes on mobile devices. The documentation for l.esri.featurelayer says it can be used to visualize layers from "ArcGIS Online and published using ArcGIS Server" but doesn't clearly explain the format that it uses to transmit the data. – Ezra Boyd Dec 15 '16 at 7:01
  • 1
    I'm not sure why you say that the The popups don't work for WMS because WMS uses XML instead of JSON, you need to do a GetFeatureInfo request, responses can come back in various formats HTML/XML/text/GeoJSON... for example: igems.doi.gov/arcgis/services/igems_haz/MapServer/… – nmtoken Dec 15 '16 at 19:39
1

At the top of services directory page it says "JSON | SOAP | WMS". Do JSON and SOAP refer to different formats

Not to different formats, but rather to different interface protocols ~ ways to obtain the data through your client/software.

So WMS (Web Map Service), for example, the principle output are map images (as part of the GetMap request), in this service available formats are:

<GetMap>
    <Format>image/bmp</Format>
    <Format>image/jpeg</Format>
    <Format>image/tiff</Format>
    <Format>image/png</Format>
    <Format>image/png8</Format>
    <Format>image/png24</Format>
    <Format>image/png32</Format>
    <Format>image/gif</Format>
    <Format>image/svg+xml</Format>

So if you're wanting to access the service in Leaflet and want to have multiple layers on top of each other you'll probably want to request an image/png* format (as it supports transparency).

And also to obtain data at a give point in the map, through a GetFeatureInfo request then the formats available in this services are:

<GetFeatureInfo>
    <Format>application/vnd.esri.wms_raw_xml</Format>
    <Format>application/vnd.esri.wms_featureinfo_xml</Format>
    <Format>application/vnd.ogc.wms_xml</Format>
    <Format>application/geojson</Format>
    <Format>text/xml</Format>
    <Format>text/html</Format>
    <Format>text/plain</Format>

So if you want to work with JSON in Leaflet you can request the format to be application/geojson, though you might not want to edit/parse the response and instead use the preformatted text/html format.

SOAP (Simple Object Access Protocol) is a protocol generally used programmatically, and not necessarily over the web (over HTTP), to access the data. You probably won't want to use this to provide maps to Leaflet. Image formats available in this service are:

<xs:enumeration value="esriImageNone"/>
<xs:enumeration value="esriImageBMP"/>
<xs:enumeration value="esriImageJPG"/>
<xs:enumeration value="esriImageDIB"/>
<xs:enumeration value="esriImageTIFF"/>
<xs:enumeration value="esriImagePNG"/>
<xs:enumeration value="esriImagePNG24"/>
<xs:enumeration value="esriImageEMF"/>
<xs:enumeration value="esriImagePS"/>
<xs:enumeration value="esriImagePDF"/>
<xs:enumeration value="esriImageAI"/>
<xs:enumeration value="esriImageGIF"/>
<xs:enumeration value="esriImageSVG"/>
<xs:enumeration value="esriImagePNG32"/>
<xs:enumeration value="esriImageJPGPNG"/>

JSON (JavaScript Object Notation) refers to an ESRI web API. Image formats available in this service are:

"supportedImageFormatTypes": "PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,BMP",

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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