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..f5673778b9 100644
--- a/examples/mapquest.js
+++ b/examples/mapquest.js
@@ -1,22 +1,54 @@
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.MapQuestHybrid');
goog.require('ol.source.MapQuestOSM');
+goog.require('ol.source.MapQuestOpenAerial');
+var layers = [
+ new ol.layer.Tile({
+ style: 'Road',
+ source: new ol.source.MapQuestOSM()
+ }),
+ new ol.layer.Tile({
+ style: 'Aerial',
+ visible: false,
+ source: new ol.source.MapQuestOpenAerial()
+ }),
+ new ol.layer.Group({
+ style: 'AerialWithLabels',
+ visible: false,
+ layers: [
+ new ol.layer.Tile({
+ source: new ol.source.MapQuestOpenAerial()
+ }),
+ new ol.layer.Tile({
+ source: new ol.source.MapQuestHybrid()
+ })
+ ]
+ })
+];
+
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/src/ol/source/mapquestsource.exports b/src/ol/source/mapquestsource.exports
index d26cb03f25..fee2b2e18b 100644
--- a/src/ol/source/mapquestsource.exports
+++ b/src/ol/source/mapquestsource.exports
@@ -1,2 +1,3 @@
@exportSymbol ol.source.MapQuestOSM
@exportSymbol ol.source.MapQuestOpenAerial
+@exportSymbol ol.source.MapQuestHybrid
diff --git a/src/ol/source/mapquestsource.js b/src/ol/source/mapquestsource.js
index 68e11dc08a..fd0e2666d2 100644
--- a/src/ol/source/mapquestsource.js
+++ b/src/ol/source/mapquestsource.js
@@ -1,3 +1,4 @@
+goog.provide('ol.source.MapQuestHybrid');
goog.provide('ol.source.MapQuestOSM');
goog.provide('ol.source.MapQuestOpenAerial');
@@ -73,3 +74,36 @@ ol.source.MapQuestOpenAerial = function(opt_options) {
};
goog.inherits(ol.source.MapQuestOpenAerial, ol.source.XYZ);
+
+
+
+/**
+ * @constructor
+ * @extends {ol.source.XYZ}
+ * @param {olx.source.MapQuestOptions=} opt_options MapQuest options.
+ * @todo stability experimental
+ */
+ol.source.MapQuestHybrid = function(opt_options) {
+
+ var options = goog.isDef(opt_options) ? opt_options : {};
+
+ var attributions = [
+ new ol.Attribution({
+ html: 'Tiles Courtesy of ' +
+ 'MapQuest'
+ }),
+ ol.source.OSM.DATA_ATTRIBUTION
+ ];
+
+ goog.base(this, {
+ attributions: attributions,
+ crossOrigin: 'anonymous',
+ logo: 'http://developer.mapquest.com/content/osm/mq_logo.png',
+ maxZoom: 18,
+ opaque: true,
+ tileLoadFunction: options.tileLoadFunction,
+ url: 'http://oatile{1-4}.mqcdn.com/tiles/1.0.0/hyb/{z}/{x}/{y}.jpg'
+ });
+
+};
+goog.inherits(ol.source.MapQuestHybrid, ol.source.XYZ);