From d13a5dfb9f6e4afeaf12a1c8a9a1e60b66f95b9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 16 Jan 2015 17:12:00 +0100 Subject: [PATCH 1/2] Add wrapX option to olx.source.OSMOptions --- externs/olx.js | 11 ++++++++++- src/ol/source/osmsource.js | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/externs/olx.js b/externs/olx.js index 5e76abf33b..d904360674 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -4304,7 +4304,8 @@ olx.source.TileDebugOptions.prototype.tileGrid; * crossOrigin: (null|string|undefined), * maxZoom: (number|undefined), * tileLoadFunction: (ol.TileLoadFunctionType|undefined), - * url: (string|undefined)}} + * url: (string|undefined), + * wrapX: (boolean|undefined)}} * @api */ olx.source.OSMOptions; @@ -4357,6 +4358,14 @@ olx.source.OSMOptions.prototype.tileLoadFunction; olx.source.OSMOptions.prototype.url; +/** + * Whether to wrap the world horizontally. Default is `true`. + * @type {boolean|undefined} + * @api + */ +olx.source.OSMOptions.prototype.wrapX; + + /** * @typedef {{attributions: (Array.|undefined), * doc: (Document|undefined), diff --git a/src/ol/source/osmsource.js b/src/ol/source/osmsource.js index b100bbbcdf..7f992f136e 100644 --- a/src/ol/source/osmsource.js +++ b/src/ol/source/osmsource.js @@ -39,7 +39,8 @@ ol.source.OSM = function(opt_options) { opaque: true, maxZoom: goog.isDef(options.maxZoom) ? options.maxZoom : 19, tileLoadFunction: options.tileLoadFunction, - url: url + url: url, + wrapX: options.wrapX }); }; From 11eeb6617cfa1d9075f14cf623e26c3fccd09913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 16 Jan 2015 17:15:59 +0100 Subject: [PATCH 2/2] Add wrapX option to olx.source.BingMapsOptions --- externs/olx.js | 12 +++++++++++- src/ol/source/bingmapssource.js | 8 +++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/externs/olx.js b/externs/olx.js index d904360674..a722852e4a 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -3393,7 +3393,8 @@ olx.source; * key: string, * imagerySet: string, * maxZoom: (number|undefined), - * tileLoadFunction: (ol.TileLoadFunctionType|undefined)}} + * tileLoadFunction: (ol.TileLoadFunctionType|undefined), + * wrapX: (boolean|undefined)}} * @api */ olx.source.BingMapsOptions; @@ -3439,6 +3440,15 @@ olx.source.BingMapsOptions.prototype.maxZoom; */ olx.source.BingMapsOptions.prototype.tileLoadFunction; + +/** + * Whether to wrap the world horizontally. Default is `true`. + * @type {boolean|undefined} + * @api + */ +olx.source.BingMapsOptions.prototype.wrapX; + + /** * @typedef {{attributions: (Array.|undefined), * distance: (number|undefined), diff --git a/src/ol/source/bingmapssource.js b/src/ol/source/bingmapssource.js index fdcb439a4d..f025874a8f 100644 --- a/src/ol/source/bingmapssource.js +++ b/src/ol/source/bingmapssource.js @@ -48,6 +48,12 @@ ol.source.BingMaps = function(options) { */ this.maxZoom_ = goog.isDef(options.maxZoom) ? options.maxZoom : -1; + /** + * @private + * @type {boolean} + */ + this.wrapX_ = goog.isDef(options.wrapX) ? options.wrapX : true; + var protocol = ol.IS_HTTPS ? 'https:' : 'http:'; var uri = new goog.Uri( protocol + '//dev.virtualearth.net/REST/v1/Imagery/Metadata/' + @@ -108,7 +114,7 @@ ol.source.BingMaps.prototype.handleImageryMetadataResponse = var culture = this.culture_; this.tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform( - tileGrid.createTileCoordTransform(), + tileGrid.createTileCoordTransform({wrapX: this.wrapX_}), ol.TileUrlFunction.createFromTileUrlFunctions( goog.array.map( resource.imageUrlSubdomains,