AnalyticalGraphicsInc/cesium — pull request #1746 by kring (2014-05-26 14:48:16+00:00)
Title: Support tiled Esri MapServer with limited extent

`ArcGisMapServerImageryProvider` could previously fail (cause a blank globe) when accessing a tiled MapServer with a limited extent. While a tiled MapServer always (in my experience at least) has a level zero tile, Cesium may decide to map the level zero terrain tiles to level 1 imagery tiles. This is common when the imagery has a `WebMercatorTilingScheme`. Since all of the level 1 tiles don't necessarily exist, and there's no parent terrain tile to upsample from, Cesium would refuse to render the level 0 terrain tiles.

This is easily fixed by making `ArcGisMapServerImageryProvider` read the `fullExtent` property in the metadata, so that Cesium knows which tiles to expect.

To test this, add `www.ga.gov.au` to your allowed hosts, and then use this example in Sandcastle:

```
require(['Cesium'], function(Cesium) {
"use strict";

var widget = new Cesium.CesiumWidget('cesiumContainer');
widget.scene.globe.imageryLayers.addImageryProvider(new Cesium.ArcGisMapServerImageryProvider({
url : 'http://www.ga.gov.au/gis/rest/services/topography/Australian_Topography_WM/MapServer',
proxy : new Cesium.DefaultProxy('/proxy/')
}));

Sandcastle.finishedLoading();
});
```