diff --git a/examples/brightness-contrast.js b/examples/brightness-contrast.js
index 47b9c66e8d..863d75792f 100644
--- a/examples/brightness-contrast.js
+++ b/examples/brightness-contrast.js
@@ -3,7 +3,7 @@ goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.layer.Tile');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
function setResetBrightnessButtonHTML() {
@@ -23,7 +23,7 @@ if (!ol.BrowserFeature.HAS_WEBGL) {
info.style.display = '';
} else {
var layer = new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
});
var map = new ol.Map({
diff --git a/examples/drag-rotate-and-zoom.js b/examples/drag-rotate-and-zoom.js
index 328b2a817d..573a31438d 100644
--- a/examples/drag-rotate-and-zoom.js
+++ b/examples/drag-rotate-and-zoom.js
@@ -4,7 +4,7 @@ goog.require('ol.View2D');
goog.require('ol.interaction');
goog.require('ol.interaction.DragRotateAndZoom');
goog.require('ol.layer.Tile');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
var map = new ol.Map({
@@ -13,7 +13,7 @@ var map = new ol.Map({
]),
layers: [
new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
})
],
renderers: ol.RendererHints.createFromQueryData(),
diff --git a/examples/draw-features.js b/examples/draw-features.js
index 1d48f6d9b4..bb7f4c3bb7 100644
--- a/examples/draw-features.js
+++ b/examples/draw-features.js
@@ -5,7 +5,7 @@ goog.require('ol.interaction');
goog.require('ol.interaction.Draw');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Rule');
@@ -14,7 +14,7 @@ goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var raster = new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
});
var vector = new ol.layer.Vector({
diff --git a/examples/gml.js b/examples/gml.js
index d36b2fb8ad..d5571de07b 100644
--- a/examples/gml.js
+++ b/examples/gml.js
@@ -4,14 +4,14 @@ goog.require('ol.View2D');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.parser.ogc.GML_v3');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var raster = new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
});
var vector = new ol.layer.Vector({
diff --git a/examples/layer-group.js b/examples/layer-group.js
index b7f7d8ec6c..057fdbfb80 100644
--- a/examples/layer-group.js
+++ b/examples/layer-group.js
@@ -5,13 +5,13 @@ goog.require('ol.dom.Input');
goog.require('ol.layer.Group');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.TileJSON');
var map = new ol.Map({
layers: [
new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
}), new ol.layer.Group({
layers: [
new ol.layer.Tile({
diff --git a/examples/mapquest.html b/examples/mapquest.html
index a47e4442c5..66684b11f1 100644
--- a/examples/mapquest.html
+++ b/examples/mapquest.html
@@ -25,6 +25,11 @@
+
@@ -43,6 +48,7 @@
+
diff --git a/examples/mapquest.js b/examples/mapquest.js
index 9a0dd92920..6a35142d07 100644
--- a/examples/mapquest.js
+++ b/examples/mapquest.js
@@ -1,22 +1,52 @@
goog.require('ol.Map');
goog.require('ol.RendererHints');
goog.require('ol.View2D');
+goog.require('ol.layer.Group');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
-goog.require('ol.source.MapQuestOSM');
+goog.require('ol.source.MapQuest');
+var layers = [
+ new ol.layer.Tile({
+ style: 'Road',
+ source: new ol.source.MapQuest({layer: 'osm'})
+ }),
+ new ol.layer.Tile({
+ style: 'Aerial',
+ visible: false,
+ source: new ol.source.MapQuest({layer: 'sat'})
+ }),
+ new ol.layer.Group({
+ style: 'AerialWithLabels',
+ visible: false,
+ layers: [
+ new ol.layer.Tile({
+ source: new ol.source.MapQuest({layer: 'sat'})
+ }),
+ new ol.layer.Tile({
+ source: new ol.source.MapQuest({layer: 'hyb'})
+ })
+ ]
+ })
+];
+
var map = new ol.Map({
- layers: [
- new ol.layer.Tile({
- source: new ol.source.MapQuestOSM()
- })
- ],
+ layers: layers,
renderers: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: ol.proj.transform(
- [139.6917, 35.689506], 'EPSG:4326', 'EPSG:3857'),
+ [-73.979378, 40.702222], 'EPSG:4326', 'EPSG:3857'),
zoom: 9
})
});
+
+$('#layer-select').change(function() {
+ var style = $(this).find(':selected').val();
+ var i, ii;
+ for (i = 0, ii = layers.length; i < ii; ++i) {
+ layers[i].set('visible', (layers[i].get('style') == style));
+ }
+});
+$('#layer-select').trigger('change');
diff --git a/examples/modify-features.js b/examples/modify-features.js
index 18550d8b68..e74c19ef5f 100644
--- a/examples/modify-features.js
+++ b/examples/modify-features.js
@@ -7,7 +7,7 @@ goog.require('ol.interaction.Select');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.parser.ogc.GML_v3');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Rule');
@@ -16,7 +16,7 @@ goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var raster = new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
});
var vector = new ol.layer.Vector({
diff --git a/examples/overlay.js b/examples/overlay.js
index e4e036c099..fb62b58a55 100644
--- a/examples/overlay.js
+++ b/examples/overlay.js
@@ -6,11 +6,11 @@ goog.require('ol.View2D');
goog.require('ol.coordinate');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
var layer = new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
});
var map = new ol.Map({
diff --git a/examples/select-features.js b/examples/select-features.js
index 6eb227f101..55a2e2bd85 100644
--- a/examples/select-features.js
+++ b/examples/select-features.js
@@ -6,7 +6,7 @@ goog.require('ol.interaction.Select');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.parser.ogc.GML_v3');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Rule');
@@ -14,7 +14,7 @@ goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
var raster = new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
});
var vector = new ol.layer.Vector({
diff --git a/examples/semi-transparent-layer.js b/examples/semi-transparent-layer.js
index ece1ec4b69..463b6c866b 100644
--- a/examples/semi-transparent-layer.js
+++ b/examples/semi-transparent-layer.js
@@ -3,14 +3,14 @@ goog.require('ol.RendererHints');
goog.require('ol.View2D');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.TileJSON');
var map = new ol.Map({
layers: [
new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
}),
new ol.layer.Tile({
source: new ol.source.TileJSON({
diff --git a/examples/side-by-side.js b/examples/side-by-side.js
index 304117071d..f526d63efe 100644
--- a/examples/side-by-side.js
+++ b/examples/side-by-side.js
@@ -3,13 +3,13 @@ goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.layer.Tile');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
var domMap = new ol.Map({
layers: [
new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
})
],
renderer: ol.RendererHint.DOM,
diff --git a/examples/vector-layer-sld.js b/examples/vector-layer-sld.js
index 89f2ba710d..4881a4d965 100644
--- a/examples/vector-layer-sld.js
+++ b/examples/vector-layer-sld.js
@@ -7,12 +7,12 @@ goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.parser.GeoJSON');
goog.require('ol.parser.ogc.SLD');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.Vector');
var raster = new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
});
var xhr = new XMLHttpRequest();
diff --git a/examples/vector-layer.js b/examples/vector-layer.js
index 2f4214ced2..12206b09e6 100644
--- a/examples/vector-layer.js
+++ b/examples/vector-layer.js
@@ -5,7 +5,7 @@ goog.require('ol.expr');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.parser.GeoJSON');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.Vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Rule');
@@ -15,7 +15,7 @@ goog.require('ol.style.Text');
var raster = new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
});
var vector = new ol.layer.Vector({
diff --git a/examples/wms-image.js b/examples/wms-image.js
index f6c753779e..544ed6d8b7 100644
--- a/examples/wms-image.js
+++ b/examples/wms-image.js
@@ -4,12 +4,12 @@ goog.require('ol.View2D');
goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.source.ImageWMS');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
var layers = [
new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
}),
new ol.layer.Image({
source: new ol.source.ImageWMS({
diff --git a/examples/wms-tiled.js b/examples/wms-tiled.js
index 1afc715f4f..b5315579b4 100644
--- a/examples/wms-tiled.js
+++ b/examples/wms-tiled.js
@@ -2,13 +2,13 @@ goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.layer.Tile');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
goog.require('ol.source.TileWMS');
var layers = [
new ol.layer.Tile({
- source: new ol.source.MapQuestOpenAerial()
+ source: new ol.source.MapQuest({layer: 'sat'})
}),
new ol.layer.Tile({
source: new ol.source.TileWMS({
diff --git a/examples/zoomslider.js b/examples/zoomslider.js
index 26daf9b05f..5066a52c63 100644
--- a/examples/zoomslider.js
+++ b/examples/zoomslider.js
@@ -2,7 +2,7 @@ goog.require('ol.Map');
goog.require('ol.View2D');
goog.require('ol.control.ZoomSlider');
goog.require('ol.layer.Tile');
-goog.require('ol.source.MapQuestOpenAerial');
+goog.require('ol.source.MapQuest');
/**
@@ -14,7 +14,7 @@ goog.require('ol.source.MapQuestOpenAerial');
var createMap = function(divId) {
var source, layer, map, zoomslider, resolutions;
- source = new ol.source.MapQuestOpenAerial();
+ source = new ol.source.MapQuest({layer: 'sat'});
layer = new ol.layer.Tile({
source: source
});
diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc
index da4e24de3f..16e061f833 100644
--- a/src/objectliterals.jsdoc
+++ b/src/objectliterals.jsdoc
@@ -651,6 +651,7 @@
/**
* @typedef {Object} olx.source.MapQuestOptions
+ * @property {string} layer Layer.
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @todo stability experimental
diff --git a/src/ol/source/mapquestsource.exports b/src/ol/source/mapquestsource.exports
index d26cb03f25..cef1c0dcaf 100644
--- a/src/ol/source/mapquestsource.exports
+++ b/src/ol/source/mapquestsource.exports
@@ -1,2 +1 @@
-@exportSymbol ol.source.MapQuestOSM
-@exportSymbol ol.source.MapQuestOpenAerial
+@exportSymbol ol.source.MapQuest
diff --git a/src/ol/source/mapquestsource.js b/src/ol/source/mapquestsource.js
index 68e11dc08a..d32a12e927 100644
--- a/src/ol/source/mapquestsource.js
+++ b/src/ol/source/mapquestsource.js
@@ -1,6 +1,6 @@
-goog.provide('ol.source.MapQuestOSM');
-goog.provide('ol.source.MapQuestOpenAerial');
+goog.provide('ol.source.MapQuest');
+goog.require('goog.asserts');
goog.require('ol.Attribution');
goog.require('ol.source.OSM');
goog.require('ol.source.XYZ');
@@ -13,63 +13,66 @@ goog.require('ol.source.XYZ');
* @param {olx.source.MapQuestOptions=} opt_options MapQuest options.
* @todo stability experimental
*/
-ol.source.MapQuestOSM = function(opt_options) {
+ol.source.MapQuest = function(opt_options) {
var options = goog.isDef(opt_options) ? opt_options : {};
+ goog.asserts.assert(options.layer in ol.source.MapQuestConfig);
- var attributions = [
- new ol.Attribution({
- html: 'Tiles Courtesy of ' +
- 'MapQuest'
- }),
- ol.source.OSM.DATA_ATTRIBUTION
- ];
+ var layerConfig = ol.source.MapQuestConfig[options.layer];
+
+ var url = 'http://otile{1-4}.mqcdn.com/tiles/1.0.0/' +
+ options.layer + '/{z}/{x}/{y}.jpg';
goog.base(this, {
- attributions: attributions,
+ attributions: layerConfig.attributions,
crossOrigin: 'anonymous',
logo: 'http://developer.mapquest.com/content/osm/mq_logo.png',
+ maxZoom: layerConfig.maxZoom,
opaque: true,
- maxZoom: 28,
tileLoadFunction: options.tileLoadFunction,
- url: 'http://otile{1-4}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg'
+ url: url
});
};
-goog.inherits(ol.source.MapQuestOSM, ol.source.XYZ);
-
+goog.inherits(ol.source.MapQuest, ol.source.XYZ);
/**
- * @constructor
- * @extends {ol.source.XYZ}
- * @param {olx.source.MapQuestOptions=} opt_options MapQuest options.
- * @todo stability experimental
+ * @const
+ * @type {ol.Attribution}
*/
-ol.source.MapQuestOpenAerial = function(opt_options) {
+ol.source.MapQuest.TILE_ATTRIBUTION = new ol.Attribution({
+ html: 'Tiles Courtesy of ' +
+ 'MapQuest'
+});
- var options = goog.isDef(opt_options) ? opt_options : {};
- var attributions = [
- new ol.Attribution({
- html: 'Tiles Courtesy of ' +
- 'MapQuest'
- }),
- new ol.Attribution({
- html: 'Portions Courtesy NASA/JPL-Caltech and ' +
- 'U.S. Depart. of Agriculture, Farm Service Agency'
- })
- ];
-
- goog.base(this, {
- attributions: attributions,
- crossOrigin: 'anonymous',
- logo: 'http://developer.mapquest.com/content/osm/mq_logo.png',
+/**
+ * @type {Object.)}>}
+ */
+ol.source.MapQuestConfig = {
+ 'osm': {
+ maxZoom: 28,
+ attributions: [
+ ol.source.MapQuest.TILE_ATTRIBUTION,
+ ol.source.OSM.DATA_ATTRIBUTION
+ ]
+ },
+ 'sat': {
maxZoom: 18,
- opaque: true,
- tileLoadFunction: options.tileLoadFunction,
- url: 'http://oatile{1-4}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg'
- });
-
+ attributions: [
+ ol.source.MapQuest.TILE_ATTRIBUTION,
+ new ol.Attribution({
+ html: 'Portions Courtesy NASA/JPL-Caltech and ' +
+ 'U.S. Depart. of Agriculture, Farm Service Agency'
+ })
+ ]
+ },
+ 'hyb': {
+ maxZoom: 18,
+ attributions: [
+ ol.source.MapQuest.TILE_ATTRIBUTION,
+ ol.source.OSM.DATA_ATTRIBUTION
+ ]
+ }
};
-goog.inherits(ol.source.MapQuestOpenAerial, ol.source.XYZ);