diff --git a/examples/wkt.html b/examples/wkt.html
new file mode 100644
index 0000000000..5c3f7e15a8
--- /dev/null
+++ b/examples/wkt.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+ WKT example
+
+
+
+
+
+
+
+
+
+
+
+
+
WKT example
+
Example of using the WKT parser.
+
+
WKT Well Known Text
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/wkt.js b/examples/wkt.js
new file mode 100644
index 0000000000..793de87854
--- /dev/null
+++ b/examples/wkt.js
@@ -0,0 +1,33 @@
+goog.require('ol.Map');
+goog.require('ol.RendererHint');
+goog.require('ol.View2D');
+goog.require('ol.layer.Tile');
+goog.require('ol.layer.Vector');
+goog.require('ol.parser.WKT');
+goog.require('ol.proj');
+goog.require('ol.source.OSM');
+goog.require('ol.source.Vector');
+
+var raster = new ol.layer.Tile({
+ source: new ol.source.OSM()
+});
+
+var vector = new ol.layer.Vector({
+ source: new ol.source.Vector({
+ parser: new ol.parser.WKT(),
+ projection: ol.proj.get('EPSG:4326'),
+ data: 'POLYGON((10.689697265625 -25.0927734375, 34.595947265625 ' +
+ '-20.1708984375, 38.814697265625 -35.6396484375, 13.502197265625 ' +
+ '-39.1552734375, 10.689697265625 -25.0927734375))'
+ })
+});
+
+var map = new ol.Map({
+ layers: [raster, vector],
+ renderer: ol.RendererHint.CANVAS,
+ target: 'map',
+ view: new ol.View2D({
+ center: [2952104.019976033, -3277504.823700756],
+ zoom: 4
+ })
+});
diff --git a/src/ol/parser/wktparser.js b/src/ol/parser/wktparser.js
index 8e79e0a1e5..6a5838e558 100644
--- a/src/ol/parser/wktparser.js
+++ b/src/ol/parser/wktparser.js
@@ -2,6 +2,7 @@ goog.provide('ol.parser.WKT');
goog.require('goog.array');
goog.require('goog.string');
+goog.require('ol.Feature');
goog.require('ol.geom.Geometry');
goog.require('ol.geom.GeometryCollection');
goog.require('ol.geom.LineString');
@@ -11,12 +12,14 @@ goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.parser.Parser');
+goog.require('ol.parser.StringFeatureParser');
/**
* @constructor
* @extends {ol.parser.Parser}
+ * @implements {ol.parser.StringFeatureParser}
* @todo stability experimental
*/
ol.parser.WKT = function() {
@@ -341,6 +344,24 @@ ol.parser.WKT.prototype.read = function(str) {
};
+/**
+ * Parse a WKT document provided as a string.
+ * @param {string} str WKT document.
+ * @return {ol.parser.ReadFeaturesResult} Features and metadata.
+ */
+ol.parser.WKT.prototype.readFeaturesFromString = function(str) {
+ var geom = this.read(str);
+ var obj = /** @type {ol.parser.ReadFeaturesResult} */
+ ({});
+ if (goog.isDef(geom)) {
+ var feature = new ol.Feature();
+ feature.setGeometry(geom);
+ obj.features = [feature];
+ }
+ return obj;
+};
+
+
/**
* Write out a geometry as a WKT string.
* @param {ol.geom.Geometry} geom The geometry to encode.