diff --git a/build.py b/build.py index 0afe5f6eb8..32578a3679 100755 --- a/build.py +++ b/build.py @@ -176,7 +176,7 @@ virtual('build', 'build/ol.css', 'build/ol.js', 'build/ol-simple.js', 'build/ol-whitespace.js') -virtual('check', 'lint', 'build/ol.css', 'build/ol-all.js', 'test') +virtual('check', 'lint', 'build/ol-all.js', 'test') virtual('todo', 'fixme') diff --git a/examples/data/gpx/gpx4j.xml b/examples/data/gpx/gpx4j.xml new file mode 100644 index 0000000000..7c58942267 --- /dev/null +++ b/examples/data/gpx/gpx4j.xml @@ -0,0 +1,37 @@ + + + + 290311 + (null) + + + 126.951324 + + + + 122.974365 + + + + 122.974365 + + + + 120.310211 + + + + 117.177261 + + + + 116.083771 + + + + 115.956726 + + + + + diff --git a/old/examples/gpx-trkpt.html b/old/examples/gpx-trkpt.html new file mode 100644 index 0000000000..84d45a6a77 --- /dev/null +++ b/old/examples/gpx-trkpt.html @@ -0,0 +1,50 @@ + + + + + + + + + + + GPX tracks example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

GPX tracks example

+

Example of using the GPX parser to display tracks.

+
+

See the gpx-trkpt.js source to see how this is done.

+
+
GPX trackpoint tracks
+
+
+ +
+ + + + + + + diff --git a/old/examples/gpx-trkpt.js b/old/examples/gpx-trkpt.js new file mode 100644 index 0000000000..b0b330a57f --- /dev/null +++ b/old/examples/gpx-trkpt.js @@ -0,0 +1,40 @@ +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.GPX'); +goog.require('ol.proj'); +goog.require('ol.source.OSM'); +goog.require('ol.source.Vector'); +goog.require('ol.style.Stroke'); +goog.require('ol.style.Style'); + +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.GPX(), + url: 'data/gpx/gpx4j.xml' + }), + style: new ol.style.Style({ + symbolizers: [ + new ol.style.Stroke({ + color: 'red', + opacity: 1 + }) + ] + }) +}); + +var map = new ol.Map({ + layers: [raster, vector], + renderer: ol.RendererHint.CANVAS, + target: 'map', + view: new ol.View2D({ + center: ol.proj.transform([-0.425692, 39.114318], 'EPSG:4326', 'EPSG:3857'), + zoom: 19 + }) +}); diff --git a/src/ol/object.exports b/src/ol/object.exports index a0a76d0033..c824a78609 100644 --- a/src/ol/object.exports +++ b/src/ol/object.exports @@ -1,6 +1,7 @@ @exportSymbol ol.Object @exportProperty ol.Object.prototype.bindTo @exportProperty ol.Object.prototype.get +@exportProperty ol.Object.prototype.getProperties @exportProperty ol.Object.prototype.notify @exportProperty ol.Object.prototype.on @exportProperty ol.Object.prototype.once diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 75dd46a533..f940390277 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -79,6 +79,7 @@ ol.renderer.webgl.Map = function(container, map) { this.gl_ = ol.webgl.getContext(this.canvas_, { antialias: true, depth: false, + failIfMajorPerformanceCaveat: true, preserveDrawingBuffer: false, stencil: true }); diff --git a/src/ol/webgl/webgl.js b/src/ol/webgl/webgl.js index 4e84847510..8720d354d6 100644 --- a/src/ol/webgl/webgl.js +++ b/src/ol/webgl/webgl.js @@ -52,15 +52,21 @@ ol.webgl.getContext = function(canvas, opt_attributes) { * @const * @type {boolean} */ -ol.webgl.SUPPORTED = (function() { - if (!('WebGLRenderingContext' in goog.global)) { - return false; - } - try { - var canvas = /** @type {HTMLCanvasElement} */ - (goog.dom.createElement(goog.dom.TagName.CANVAS)); - return !goog.isNull(ol.webgl.getContext(canvas)); - } catch (e) { - return false; - } -})(); +ol.webgl.SUPPORTED = ( + /** + * @return {boolean} WebGL supported. + */ + function() { + if (!('WebGLRenderingContext' in goog.global)) { + return false; + } + try { + var canvas = /** @type {HTMLCanvasElement} */ + (goog.dom.createElement(goog.dom.TagName.CANVAS)); + return !goog.isNull(ol.webgl.getContext(canvas, { + failIfMajorPerformanceCaveat: true + })); + } catch (e) { + return false; + } + })();