add an ol.layer.xyz factory
This commit is contained in:
29
src/api/layer/xyz.js
Normal file
29
src/api/layer/xyz.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
goog.provide('ol.layer.xyz');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @export
|
||||||
|
* @param {Object} opt_arg Config object.
|
||||||
|
* @return {ol.layer.XYZ}
|
||||||
|
*/
|
||||||
|
ol.layer.xyz = function(opt_arg) {
|
||||||
|
if (opt_arg instanceof ol.layer.XYZ) {
|
||||||
|
return opt_arg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @type {string} */
|
||||||
|
var url;
|
||||||
|
|
||||||
|
var usage = 'ol.layer.xyz accepts an object with a "url" property';
|
||||||
|
|
||||||
|
if (goog.isObject(opt_arg)) {
|
||||||
|
url = opt_arg['url'];
|
||||||
|
} else {
|
||||||
|
throw new Error(usage);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!goog.isDef(url)) {
|
||||||
|
throw new Error(usage);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ol.layer.XYZ(url);
|
||||||
|
};
|
||||||
@@ -5,6 +5,7 @@ goog.require('ol.event.Events');
|
|||||||
goog.require("ol.map");
|
goog.require("ol.map");
|
||||||
goog.require("ol.loc");
|
goog.require("ol.loc");
|
||||||
goog.require("ol.projection");
|
goog.require("ol.projection");
|
||||||
|
goog.require("ol.layer.xyz");
|
||||||
goog.require("ol.Tile");
|
goog.require("ol.Tile");
|
||||||
goog.require("ol.TileSet");
|
goog.require("ol.TileSet");
|
||||||
goog.require("ol.geom.geometry");
|
goog.require("ol.geom.geometry");
|
||||||
|
|||||||
@@ -52,6 +52,7 @@
|
|||||||
<script type="text/javascript" src="spec/api/loc.test.js"></script>
|
<script type="text/javascript" src="spec/api/loc.test.js"></script>
|
||||||
<script type="text/javascript" src="spec/api/map.test.js"></script>
|
<script type="text/javascript" src="spec/api/map.test.js"></script>
|
||||||
<script type="text/javascript" src="spec/api/projection.test.js"></script>
|
<script type="text/javascript" src="spec/api/projection.test.js"></script>
|
||||||
|
<script type="text/javascript" src="spec/api/layer/xyz.test.js"></script>
|
||||||
<script type="text/javascript" src="spec/ol/Events.test.js"></script>
|
<script type="text/javascript" src="spec/ol/Events.test.js"></script>
|
||||||
<script type="text/javascript" src="spec/ol/Projection.test.js"></script>
|
<script type="text/javascript" src="spec/ol/Projection.test.js"></script>
|
||||||
<script type="text/javascript" src="spec/ol/Tile.test.js"></script>
|
<script type="text/javascript" src="spec/ol/Tile.test.js"></script>
|
||||||
|
|||||||
17
test/spec/api/layer/xyz.test.js
Normal file
17
test/spec/api/layer/xyz.test.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
describe('ol.layer.xyz', function() {
|
||||||
|
|
||||||
|
it("doesn't allow empty construction", function() {
|
||||||
|
|
||||||
|
expect(function() {
|
||||||
|
// nowhere
|
||||||
|
var layer = ol.layer.xyz();
|
||||||
|
}).toThrow();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
it("creates an ol.layer.XYZ instance", function() {
|
||||||
|
var layer = ol.layer.xyz({url: 'http://foo/{x}/{y}/{z}'});
|
||||||
|
expect(layer).toBeA(ol.layer.XYZ);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user