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);