Skip to content

Commit

Permalink
Merge branch 'master' into issue3170
Browse files Browse the repository at this point in the history
  • Loading branch information
bagnell committed Nov 19, 2015
2 parents 183d378 + 2dbd51e commit 57f6cd7
Show file tree
Hide file tree
Showing 18 changed files with 409 additions and 21 deletions.
6 changes: 3 additions & 3 deletions Apps/Sandcastle/gallery/Imagery Layers Manipulation.html
Original file line number Diff line number Diff line change
Expand Up @@ -124,15 +124,15 @@
}));
addBaseLayerOption(
'OpenStreetMaps',
new Cesium.OpenStreetMapImageryProvider());
Cesium.createOpenStreetMapImageryProvider());
addBaseLayerOption(
'MapQuest OpenStreetMaps',
new Cesium.OpenStreetMapImageryProvider({
Cesium.createOpenStreetMapImageryProvider({
url: '//otile1-s.mqcdn.com/tiles/1.0.0/osm/'
}));
addBaseLayerOption(
'Stamen Maps',
new Cesium.OpenStreetMapImageryProvider({
Cesium.createOpenStreetMapImageryProvider({
url: '//stamen-tiles.a.ssl.fastly.net/watercolor/',
fileExtension: 'jpg',
credit: 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
Expand Down
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ Change Log

### 1.16 - 2015-12-01

* Deprecated
* Deprecated `OpenStreetMapImageryProvider`. It will be removed in 1.18. Use `createOpenStreetMapImageryProvider` instead.
* Fixed an issue where the sun texture is not generated correctly on some mobile devices. [#3141](https://github.com/AnalyticalGraphicsInc/cesium/issues/3141)
* Fixed a bug in the deprecated `jsonp` that prevented it from returning a promise. Its replacement, `loadJsonp`, was unaffected.
* Fixed glTF implementation to read the version as a string as per the specification and to correctly handle backwards compatibility for axis-angle rotations in glTF 0.8 models.
Expand All @@ -28,6 +30,7 @@ Change Log
* `Material` image uniforms now accept and `HTMLVideoElement` anywhere it could previously take a `Canvas` element.
* Added `VideoSynchronizer` helper object for keeping an `HTMLVideoElement` in sync with a scene's clock.
* Added 'Video' Sandcastle showcase to demonstrate video materials.
* Added `createOpenStreetMapImageryProvider` function to replace the `OpenStreetMapImageryProvider` class. This function returns a constructed `UrlTemplateImageryProvider`.
* Fixed an issue with tile selection when below the surface of the ellipsoid. [#3170](https://github.com/AnalyticalGraphicsInc/cesium/issues/3170)

### 1.15 - 2015-11-02
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/ArcGisMapServerImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ define([
*
* @see BingMapsImageryProvider
* @see GoogleEarthImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see SingleTileImageryProvider
* @see TileMapServiceImageryProvider
* @see WebMapServiceImageryProvider
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/BingMapsImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ define([
*
* @see ArcGisMapServerImageryProvider
* @see GoogleEarthImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see SingleTileImageryProvider
* @see TileMapServiceImageryProvider
* @see WebMapServiceImageryProvider
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/GoogleEarthImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ define([
*
* @see ArcGisMapServerImageryProvider
* @see BingMapsImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see SingleTileImageryProvider
* @see TileMapServiceImageryProvider
* @see WebMapServiceImageryProvider
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/ImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ define([
* @see BingMapsImageryProvider
* @see GoogleEarthImageryProvider
* @see MapboxImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see WebMapTileServiceImageryProvider
* @see WebMapServiceImageryProvider
*
Expand Down
5 changes: 5 additions & 0 deletions Source/Scene/OpenStreetMapImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ define([
'../Core/defaultValue',
'../Core/defined',
'../Core/defineProperties',
'../Core/deprecationWarning',
'../Core/DeveloperError',
'../Core/Event',
'../Core/Rectangle',
Expand All @@ -15,6 +16,7 @@ define([
defaultValue,
defined,
defineProperties,
deprecationWarning,
DeveloperError,
Event,
Rectangle,
Expand Down Expand Up @@ -62,8 +64,11 @@ define([
* var osm = new Cesium.OpenStreetMapImageryProvider({
* url : '//a.tile.openstreetmap.org/'
* });
*
* @deprecated
*/
var OpenStreetMapImageryProvider = function OpenStreetMapImageryProvider(options) {
deprecationWarning('OpenStreetMapImageryProvider', 'OpenStreetMapImageryProvider is deprecated. It will be removed in Cesium 1.18. Use createOpenStreetMapImageryProvider instead.');
options = defaultValue(options, {});

var url = defaultValue(options.url, '//a.tile.openstreetmap.org/');
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/SingleTileImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ define([
* @see ArcGisMapServerImageryProvider
* @see BingMapsImageryProvider
* @see GoogleEarthImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see TileMapServiceImageryProvider
* @see WebMapServiceImageryProvider
* @see WebMapTileServiceImageryProvider
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/TileMapServiceImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ define([
* @see ArcGisMapServerImageryProvider
* @see BingMapsImageryProvider
* @see GoogleEarthImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see SingleTileImageryProvider
* @see WebMapServiceImageryProvider
* @see WebMapTileServiceImageryProvider
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/UrlTemplateImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ define([
* @see ArcGisMapServerImageryProvider
* @see BingMapsImageryProvider
* @see GoogleEarthImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see SingleTileImageryProvider
* @see TileMapServiceImageryProvider
* @see WebMapServiceImageryProvider
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/WebMapServiceImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ define([
* @see ArcGisMapServerImageryProvider
* @see BingMapsImageryProvider
* @see GoogleEarthImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see SingleTileImageryProvider
* @see TileMapServiceImageryProvider
* @see WebMapTileServiceImageryProvider
Expand Down
2 changes: 1 addition & 1 deletion Source/Scene/WebMapTileServiceImageryProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ define([
* @see ArcGisMapServerImageryProvider
* @see BingMapsImageryProvider
* @see GoogleEarthImageryProvider
* @see OpenStreetMapImageryProvider
* @see createOpenStreetMapImageryProvider
* @see SingleTileImageryProvider
* @see TileMapServiceImageryProvider
* @see WebMapServiceImageryProvider
Expand Down
111 changes: 111 additions & 0 deletions Source/Scene/createOpenStreetMapImageryProvider.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/*global define*/
define([
'../Core/Credit',
'../Core/defaultValue',
'../Core/DeveloperError',
'../Core/Rectangle',
'../Core/WebMercatorTilingScheme',
'./UrlTemplateImageryProvider'
], function(
Credit,
defaultValue,
DeveloperError,
Rectangle,
WebMercatorTilingScheme,
UrlTemplateImageryProvider
) {
"use strict";

var trailingSlashRegex = /\/$/;
var defaultCredit = new Credit('MapQuest, Open Street Map and contributors, CC-BY-SA');

/**
* Creates a {@link UrlTemplateImageryProvider} instance that provides tiled imagery hosted by OpenStreetMap
* or another provider of Slippy tiles. The default url connects to OpenStreetMap's volunteer-run
* servers, so you must conform to their
* {@link http://wiki.openstreetmap.org/wiki/Tile_usage_policy|Tile Usage Policy}.
*
* @exports createOpenStreetMapImageryProvider
*
* @param {Object} [options] Object with the following properties:
* @param {String} [options.url='//a.tile.openstreetmap.org'] The OpenStreetMap server url.
* @param {String} [options.fileExtension='png'] The file extension for images on the server.
* @param {Object} [options.proxy] A proxy to use for requests. This object is expected to have a getURL function which returns the proxied URL.
* @param {Rectangle} [options.rectangle=Rectangle.MAX_VALUE] The rectangle of the layer.
* @param {Number} [options.minimumLevel=0] The minimum level-of-detail supported by the imagery provider.
* @param {Number} [options.maximumLevel] The maximum level-of-detail supported by the imagery provider, or undefined if there is no limit.
* @param {Ellipsoid} [options.ellipsoid] The ellipsoid. If not specified, the WGS84 ellipsoid is used.
* @param {Credit|String} [options.credit='MapQuest, Open Street Map and contributors, CC-BY-SA'] A credit for the data source, which is displayed on the canvas.
*
* @exception {DeveloperError} The rectangle and minimumLevel indicate that there are more than four tiles at the minimum level. Imagery providers with more than four tiles at the minimum level are not supported.
*
* @see ArcGisMapServerImageryProvider
* @see BingMapsImageryProvider
* @see GoogleEarthImageryProvider
* @see SingleTileImageryProvider
* @see TileMapServiceImageryProvider
* @see WebMapServiceImageryProvider
* @see WebMapTileServiceImageryProvider
* @see UrlTemplateImageryProvider
*
* @see {@link http://wiki.openstreetmap.org/wiki/Main_Page|OpenStreetMap Wiki}
* @see {@link http://www.w3.org/TR/cors/|Cross-Origin Resource Sharing}
*
* @example
* var osm = Cesium.createOpenStreetMapImageryProvider({
* url : '//a.tile.openstreetmap.org/'
* });
*/
var createOpenStreetMapImageryProvider = function createOpenStreetMapImageryProvider(options) {
options = defaultValue(options, {});

var url = defaultValue(options.url, '//a.tile.openstreetmap.org/');

if (!trailingSlashRegex.test(url)) {
url = url + '/';
}

var fileExtension = defaultValue(options.fileExtension, 'png');

var tilingScheme = new WebMercatorTilingScheme({ ellipsoid : options.ellipsoid });

var tileWidth = 256;
var tileHeight = 256;

var minimumLevel = defaultValue(options.minimumLevel, 0);
var maximumLevel = options.maximumLevel;

var rectangle = defaultValue(options.rectangle, tilingScheme.rectangle);

// Check the number of tiles at the minimum level. If it's more than four,
// throw an exception, because starting at the higher minimum
// level will cause too many tiles to be downloaded and rendered.
var swTile = tilingScheme.positionToTileXY(Rectangle.southwest(rectangle), minimumLevel);
var neTile = tilingScheme.positionToTileXY(Rectangle.northeast(rectangle), minimumLevel);
var tileCount = (Math.abs(neTile.x - swTile.x) + 1) * (Math.abs(neTile.y - swTile.y) + 1);
if (tileCount > 4) {
throw new DeveloperError('The rectangle and minimumLevel indicate that there are ' + tileCount + ' tiles at the minimum level. Imagery providers with more than four tiles at the minimum level are not supported.');
}

var credit = defaultValue(options.credit, defaultCredit);
if (typeof credit === 'string') {
credit = new Credit(credit);
}

var templateUrl = url + "{z}/{x}/{y}." + fileExtension;

return new UrlTemplateImageryProvider({
url: templateUrl,
proxy: options.proxy,
credit: credit,
tilingScheme: tilingScheme,
tileWidth: tileWidth,
tileHeight: tileHeight,
minimumLevel: minimumLevel,
maximumLevel: maximumLevel,
rectangle: rectangle
});
};

return createOpenStreetMapImageryProvider;
});
2 changes: 1 addition & 1 deletion Source/Widgets/BaseLayerPicker/BaseLayerPicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ define([
* tooltip : 'OpenStreetMap (OSM) is a collaborative project to create a free editable \
* map of the world.\nhttp://www.openstreetmap.org',
* creationFunction : function() {
* return new Cesium.OpenStreetMapImageryProvider({
* return Cesium.createOpenStreetMapImageryProvider({
* url : '//a.tile.openstreetmap.org/'
* });
* }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ define([
'../../Scene/BingMapsImageryProvider',
'../../Scene/BingMapsStyle',
'../../Scene/MapboxImageryProvider',
'../../Scene/OpenStreetMapImageryProvider',
'../../Scene/createOpenStreetMapImageryProvider',
'../../Scene/TileMapServiceImageryProvider',
'../BaseLayerPicker/ProviderViewModel'
], function(
Expand All @@ -14,7 +14,7 @@ define([
BingMapsImageryProvider,
BingMapsStyle,
MapboxImageryProvider,
OpenStreetMapImageryProvider,
createOpenStreetMapImageryProvider,
TileMapServiceImageryProvider,
ProviderViewModel) {
"use strict";
Expand Down Expand Up @@ -149,7 +149,7 @@ mapping applications.\nhttp://www.esri.com',
tooltip : 'OpenStreetMap (OSM) is a collaborative project to create a free editable map \
of the world.\nhttp://www.openstreetmap.org',
creationFunction : function() {
return new OpenStreetMapImageryProvider({
return createOpenStreetMapImageryProvider({
url : '//a.tile.openstreetmap.org/'
});
}
Expand All @@ -161,7 +161,7 @@ of the world.\nhttp://www.openstreetmap.org',
tooltip : 'Reminiscent of hand drawn maps, Stamen watercolor maps apply raster effect \
area washes and organic edges over a paper texture to add warm pop to any map.\nhttp://maps.stamen.com',
creationFunction : function() {
return new OpenStreetMapImageryProvider({
return createOpenStreetMapImageryProvider({
url : '//stamen-tiles.a.ssl.fastly.net/watercolor/',
credit : 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
});
Expand All @@ -173,7 +173,7 @@ area washes and organic edges over a paper texture to add warm pop to any map.\n
iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/stamenToner.png'),
tooltip : 'A high contrast black and white map.\nhttp://maps.stamen.com',
creationFunction : function() {
return new OpenStreetMapImageryProvider({
return createOpenStreetMapImageryProvider({
url : '//stamen-tiles.a.ssl.fastly.net/toner/',
credit : 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
});
Expand All @@ -186,7 +186,7 @@ area washes and organic edges over a paper texture to add warm pop to any map.\n
tooltip : 'OpenStreetMap (OSM) is a collaborative project to create a free editable \
map of the world.\nhttp://www.openstreetmap.org',
creationFunction : function() {
return new OpenStreetMapImageryProvider({
return createOpenStreetMapImageryProvider({
url : '//otile1-s.mqcdn.com/tiles/1.0.0/osm/'
});
}
Expand Down
2 changes: 1 addition & 1 deletion Source/Widgets/CesiumWidget/CesiumWidget.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ define([
*
* //Widget with OpenStreetMaps imagery provider and Cesium terrain provider hosted by AGI.
* var widget = new Cesium.CesiumWidget('cesiumContainer', {
* imageryProvider : new Cesium.OpenStreetMapImageryProvider(),
* imageryProvider : Cesium.createOpenStreetMapImageryProvider(),
* terrainProvider : new Cesium.CesiumTerrainProvider({
* url : '//assets.agi.com/stk-terrain/world'
* }),
Expand Down
2 changes: 1 addition & 1 deletion Source/Widgets/Viewer/Viewer.js
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ define([
* //Hide the base layer picker
* baseLayerPicker : false,
* //Use OpenStreetMaps
* imageryProvider : new Cesium.OpenStreetMapImageryProvider({
* imageryProvider : Cesium.createOpenStreetMapImageryProvider({
* url : '//a.tile.openstreetmap.org/'
* }),
* // Use high-res stars downloaded from https://github.com/AnalyticalGraphicsInc/cesium-assets
Expand Down
Loading

0 comments on commit 57f6cd7

Please sign in to comment.