Hello!! I'm hoping someone more knowledgeable in OpenLayers code can review this post and tell me if I am correct in my proposed fix and whether what I have observed is actually a bug or just the result of a misunderstanding on my part.
I have an OpenLayers.Map with 3 resolutions available (e.g., resolutions = [1000,100, 10]). I have an ArcGISCache layer in the map that I only want available for display at the 100 and 10 resolutions (that is, it will show greyed out in the LayerSwitcher at 1000 and not be displayed in the map). When the user zooms in to the 100 resolution on the map (resolution 100 is in index 1 of the baselayer's resolution array), the current OpenLayers.Layer.ArcGISCache class' getURL method's first line of code ends up with the value of 10 (rather than 100) in the "res" variable because that is the item at index 1 in its own list of resolutions. Consequently, the method's algorithm generates invalid paths to the tiles in the cache. Originally, I started looked into the OpenLayers.Layer class' getResolution method. It seems to assume the map (or more specifically, the map's baselayer) and the layer in question at any given time will always have the same number of resolutions. That didn't seem like a safe assumption to me but I looked back through the history of the code and see that that method has been that way for years. So, I went looking around throughout OpenLayers and find that the OpenLayers.Layer's getResolution method is only used a handful of times (Grid and KaMap's getTileBounds and Image's resetBackBuffer and startTransition). This leads me to believe that the OpenLayers.Layer's getResolution method is more specific in its usage than I expect. Given that thought, I'm now thinking instead that the problem is just with the OpenLayers.Layer.ArcGISCache getURL method. Changing the use of the Layer's getResolution method might have farther reaching impacts than I could guess at. And, most other places in OpenLayers where a getResolution call is made, they are made to the map...as I am proposing doing. So, I have fixed my problem by changing the first line in the OpenLayers.Layer.ArcGISCache class method getURL to (the commented section at the end is the existing line of code): Could someone give me an idea if this is an acceptable approach? And, if so, would you consider it a bug that I should log? Oh, I am using ArcGIS Server 10.0 and OpenLayers 2.11. Cheers jtm -- View this message in context: http://osgeo-org.1560.n6.nabble.com/Should-ArcGISCache-getURL-this-getResolution-be-this-map-getResolution-instead-tp4540209p4540209.html Sent from the OpenLayers Dev mailing list archive at Nabble.com. _______________________________________________ Dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/openlayers-dev
