Map services not displaying in HTML5 Viewer
We have a site that we've upgraded from older versions of Essentials, beginning at version 4.0. We are now at 4.2.2 with the Silverlight and HTML5 Viewers both at 2.3.
We've noticed that many of the map services in our site don't display in the HTML5 Viewer, but do in the Silverlight Viewer. The layers are included in the layer list but the data don't appear in the map. The map is in the correct location for the data to appear. Some of the map services do have their layers appearing but many don't. The map services that don't work include both dynamic and cached vector map services.
To troubleshoot I tried creating a brand new site from scratch in Essentials 4.2.2 adding two of the map services that weren't working to it and then creating an HTML5 Viewer. The layers do display in the viewer for this new site.
After comparing the site.xml of the new site with that of the one that wasn't working, the only differences I can see are that the site that's working contains a <LayerList> tag and defined layers within it. Is this likely to make a difference? What's the purpose of the LayerList tag?
We don't want to have to create the site.xml again from scratch, so if anyone has any suggestions as to why these map services are not displaying in the HTML5 Viewer please let me know.
Thanks.
-
I had similar issues, particularly with cached services. I had to turn them all on in the Layer List, and then turn them off in the Layer Theme.
0 -
Hi Mark, I recently looked into a related support request referencing this post, and I believe that the site you are referring to is the one I looked at (GeoYukon). This particular site had a tiled map service that appears over top of one or more images services. In this case, the cached map service will only be visible if the map's zoom level happens to exactly match one of the map service's cached LOD (Level of Detail) scale values. Otherwise, it disappears. Unfortunately, this is a limitation of esri's ArcGIS API for JavaScript, which is what our HTML viewer depends on. (http://forums.esri.com/Thread.asp?c=158&f=2421&t=274063) Here is a post on esri's forum detailing the exact same issue, only with the ArcGIS API for Flex (note that the suggested workaround of reordering the services after the map loads does not work for the JavaScript API). If the map contains one or more tiled map services, then in order to work correctly in the HTML viewer, they must be first in the drawing order, and they must all have the same cache tiling scheme. It's possible that the new site you created either contained only the tiled base map, or had it first in the drawing order (i.e. the bottom-most service on the "Map Services" tab in Manager), in which case it would work correctly. Note that the Silverlight API does not have this limitation, which explains why this site functions correctly with our Silverlight viewer. I'm not sure if it's a possibility in this case, but you might want to consider converting the image services into cached map services. (http://blogs.esri.com/esri/arcgis/2010/05/04/imagery-in-web-applications-should-i-use-a-cached-map-service-or-an-image-service/) Here is an article detailing the pros/cons of each approach. As for your question regarding the <LayerList> element in Site.xml, this simply defines the structure of the layer list, along with configuration information of any layer list folders. I do not think that it's related to your issue, but you can always verify this yourself by deleting the entire <LayerList> element from your test site to see if the issue reappears (this will result in a "default" layer list that is generated automatically). 0 -
What I've found is slightly different than what Eric has; in my case I'm using WMTSes, but perhaps ArcGIS cached services behave differently. Or perhaps they will work with what I've outlined below, it's worth a shot.
- If there are WMTS'es in your site, the bottom-most service in the service list must be a WMTS.
- You can mix the order of dynamic services and WMTSes above that - the WMTSes don't have to be clustered together at the bottom of the service list.
- The minimum scale level for the map is taken from the bottom-most WMTS, so put your highest-resolution WMTS at the bottom.
Basically, put the WMTS definition as the bottom-most service. What I've done is put a service there that isn't even visible to the users, and then put the service in again further up the list in its logical location, visible to users.
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
3 Kommentare