Merge pull request #1510 from tschaub/bing-providers
Handle case where Bing resource has no imagery providers.
This commit is contained in:
@@ -115,37 +115,40 @@ ol.source.BingMaps.prototype.handleImageryMetadataResponse =
|
|||||||
});
|
});
|
||||||
})));
|
})));
|
||||||
|
|
||||||
var transform = ol.proj.getTransformFromProjections(
|
if (resource.imageryProviders) {
|
||||||
ol.proj.get('EPSG:4326'), this.getProjection());
|
var transform = ol.proj.getTransformFromProjections(
|
||||||
var attributions = goog.array.map(
|
ol.proj.get('EPSG:4326'), this.getProjection());
|
||||||
resource.imageryProviders,
|
|
||||||
function(imageryProvider) {
|
var attributions = goog.array.map(
|
||||||
var html = imageryProvider.attribution;
|
resource.imageryProviders,
|
||||||
/** @type {Object.<string, Array.<ol.TileRange>>} */
|
function(imageryProvider) {
|
||||||
var tileRanges = {};
|
var html = imageryProvider.attribution;
|
||||||
goog.array.forEach(
|
/** @type {Object.<string, Array.<ol.TileRange>>} */
|
||||||
imageryProvider.coverageAreas,
|
var tileRanges = {};
|
||||||
function(coverageArea) {
|
goog.array.forEach(
|
||||||
var minZ = coverageArea.zoomMin;
|
imageryProvider.coverageAreas,
|
||||||
var maxZ = coverageArea.zoomMax;
|
function(coverageArea) {
|
||||||
var bbox = coverageArea.bbox;
|
var minZ = coverageArea.zoomMin;
|
||||||
var epsg4326Extent = [bbox[1], bbox[0], bbox[3], bbox[2]];
|
var maxZ = coverageArea.zoomMax;
|
||||||
var extent = ol.extent.transform(epsg4326Extent, transform);
|
var bbox = coverageArea.bbox;
|
||||||
var tileRange, z, zKey;
|
var epsg4326Extent = [bbox[1], bbox[0], bbox[3], bbox[2]];
|
||||||
for (z = minZ; z <= maxZ; ++z) {
|
var extent = ol.extent.transform(epsg4326Extent, transform);
|
||||||
zKey = z.toString();
|
var tileRange, z, zKey;
|
||||||
tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z);
|
for (z = minZ; z <= maxZ; ++z) {
|
||||||
if (zKey in tileRanges) {
|
zKey = z.toString();
|
||||||
tileRanges[zKey].push(tileRange);
|
tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z);
|
||||||
} else {
|
if (zKey in tileRanges) {
|
||||||
tileRanges[zKey] = [tileRange];
|
tileRanges[zKey].push(tileRange);
|
||||||
|
} else {
|
||||||
|
tileRanges[zKey] = [tileRange];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
return new ol.Attribution({html: html, tileRanges: tileRanges});
|
||||||
return new ol.Attribution({html: html, tileRanges: tileRanges});
|
});
|
||||||
});
|
attributions.push(ol.source.BingMaps.TOS_ATTRIBUTION);
|
||||||
attributions.push(ol.source.BingMaps.TOS_ATTRIBUTION);
|
this.setAttributions(attributions);
|
||||||
this.setAttributions(attributions);
|
}
|
||||||
|
|
||||||
this.setLogo(brandLogoUri);
|
this.setLogo(brandLogoUri);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user