add a ol.layer.wms factory

This commit is contained in:
Éric Lemoine
2012-06-23 21:53:45 +02:00
parent 0b36e10f8f
commit b615eb94b7
5 changed files with 61 additions and 0 deletions

41
src/api/layer/wms.js Normal file
View File

@@ -0,0 +1,41 @@
goog.provide('ol.layer.wms');
goog.require('ol.layer.WMS');
/**
* @export
* @param {Object} opt_arg Config object.
* @return {ol.layer.WMS}
*/
ol.layer.wms = function(opt_arg) {
if (opt_arg instanceof ol.layer.WMS) {
return opt_arg;
}
/** @type {string} */
var url;
/** @type {Array.<string>} */
var layers;
/** @type {string} */
var format;
if (goog.isObject(opt_arg)) {
ol.base.checkKeys(opt_arg, ['url', 'layers', 'format']);
url = opt_arg['url'];
layers = opt_arg['layers'];
format = opt_arg['format'];
}
var msg;
if (!goog.isDef(url)) {
msg = 'Cannot create WMS layer; option "url" is missing';
ol.error(msg);
}
if (!goog.isArray(layers)) {
msg = 'Cannot create WMS layer; option "layers" is missing, ' +
'or is not an array';
ol.error(msg);
}
return new ol.layer.WMS(url, layers, format);
};

View File

@@ -48,6 +48,10 @@ goog.exportSymbol('ol.layer.XYZ', ol.layer.XYZ);
goog.exportSymbol('ol.layer.osm', ol.layer.osm); goog.exportSymbol('ol.layer.osm', ol.layer.osm);
goog.exportSymbol('ol.layer.OSM', ol.layer.OSM); goog.exportSymbol('ol.layer.OSM', ol.layer.OSM);
// ol.layer.wms
goog.exportSymbol('ol.layer.wms', ol.layer.wms);
goog.exportSymbol('ol.layer.WMS', ol.layer.WMS);
// ol.feature // ol.feature
goog.exportSymbol('ol.feature', ol.feature); goog.exportSymbol('ol.feature', ol.feature);
goog.exportSymbol('ol.Feature', ol.Feature); goog.exportSymbol('ol.Feature', ol.Feature);

View File

@@ -13,6 +13,7 @@ goog.require("ol.feature");
goog.require("ol.projection"); goog.require("ol.projection");
goog.require("ol.layer.xyz"); goog.require("ol.layer.xyz");
goog.require("ol.layer.osm"); goog.require("ol.layer.osm");
goog.require("ol.layer.wms");
goog.require("ol.popup"); goog.require("ol.popup");
goog.require("ol.Tile"); goog.require("ol.Tile");
goog.require("ol.TileSet"); goog.require("ol.TileSet");

View File

@@ -57,6 +57,7 @@
<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/api/layer/xyz.test.js"></script>
<script type="text/javascript" src="spec/api/layer/osm.test.js"></script> <script type="text/javascript" src="spec/api/layer/osm.test.js"></script>
<script type="text/javascript" src="spec/api/layer/wms.test.js"></script>
<script type="text/javascript" src="spec/api/feature.test.js"></script> <script type="text/javascript" src="spec/api/feature.test.js"></script>
<script type="text/javascript" src="spec/api/popup.test.js"></script> <script type="text/javascript" src="spec/api/popup.test.js"></script>

View File

@@ -0,0 +1,14 @@
describe('ol.layer.wms', function() {
describe('create a wms layer', function() {
it('creates an ol.layer.WMS instance', function() {
var wms = ol.layer.wms({
url: 'http://wms',
layers: ['layer1', 'layer2'],
format: 'image/png'
});
expect(wms).toBeA(ol.layer.WMS);
});
});
});