From 3769d220d9d0f4cc35ce4b092a81e8215ea75bc9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:39:46 +0100 Subject: [PATCH 1/5] Add urls option to ol.source.VectorFile --- src/objectliterals.jsdoc | 1 + src/ol/source/vectorfilesource.js | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index bc5d5bf4c4..075a24cdbb 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -710,6 +710,7 @@ * @property {ol.proj.ProjectionLike} projection Projection. * @property {string|undefined} text Text. * @property {string|undefined} url URL. + * @property {Array.|undefined} urls URLs. */ /** diff --git a/src/ol/source/vectorfilesource.js b/src/ol/source/vectorfilesource.js index b43fcc68bf..584e1b5a21 100644 --- a/src/ol/source/vectorfilesource.js +++ b/src/ol/source/vectorfilesource.js @@ -57,9 +57,19 @@ ol.source.VectorFile = function(opt_options) { this.readFeatures_(options.text); } - if (goog.isDef(options.url)) { + if (goog.isDef(options.url) || goog.isDef(options.urls)) { this.setState(ol.source.State.LOADING); - goog.net.XhrIo.send(options.url, goog.bind(this.handleXhrIo_, this)); + var handleXhrIo = goog.bind(this.handleXhrIo_, this); + if (goog.isDef(options.url)) { + goog.net.XhrIo.send(options.url, handleXhrIo); + } + if (goog.isDef(options.urls)) { + var urls = options.urls; + var i, ii; + for (i = 0, ii = urls.length; i < ii; ++i) { + goog.net.XhrIo.send(urls[i], handleXhrIo); + } + } } }; From 8c0e2d3c1a3d4d6b2814de269cf7bb580f1634dc Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:40:09 +0100 Subject: [PATCH 2/5] Add urls option to ol.source.GeoJSON --- src/objectliterals.jsdoc | 1 + src/ol/source/geojsonsource.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index 075a24cdbb..f16be827a7 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -525,6 +525,7 @@ * @property {ol.proj.ProjectionLike} reprojectTo Re-project to. * @property {string|undefined} text Text. * @property {string|undefined} url URL. + * @property {Array.|undefined} urls URLs. */ /** diff --git a/src/ol/source/geojsonsource.js b/src/ol/source/geojsonsource.js index 94da078387..4d37429d25 100644 --- a/src/ol/source/geojsonsource.js +++ b/src/ol/source/geojsonsource.js @@ -25,7 +25,8 @@ ol.source.GeoJSON = function(opt_options) { projection: options.projection, reprojectTo: options.reprojectTo, text: options.text, - url: options.url + url: options.url, + urls: options.urls }); }; From c1ceb60f509a70ba88a5111494e17677abf4c790 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:40:29 +0100 Subject: [PATCH 3/5] Add urls option to ol.source.KML --- src/objectliterals.jsdoc | 1 + src/ol/source/igcsource.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index f16be827a7..f13a5d0a4d 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -534,6 +534,7 @@ * Possible values are `barometric`, `gps`, and `none`. Default is `none`. * @property {string|undefined} text Text. * @property {string|undefined} url URL. + * @property {Array.|undefined} urls URLs. */ /** diff --git a/src/ol/source/igcsource.js b/src/ol/source/igcsource.js index 2ca98e470e..a74e0e851f 100644 --- a/src/ol/source/igcsource.js +++ b/src/ol/source/igcsource.js @@ -19,7 +19,8 @@ ol.source.IGC = function(opt_options) { altitudeMode: options.altitudeMode }), text: options.text, - url: options.url + url: options.url, + urls: options.urls }); }; From 699cfb3e3180fee406e6a346af289d5a0ebb60d4 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:40:44 +0100 Subject: [PATCH 4/5] Add urls option to ol.source.KML --- src/objectliterals.jsdoc | 1 + src/ol/source/kmlsource.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index f13a5d0a4d..aa84090a20 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -567,6 +567,7 @@ * @property {ol.proj.ProjectionLike} reprojectTo Re-project to. * @property {string|undefined} text Text. * @property {string|undefined} url URL. + * @property {Array.|undefined} urls URLs. */ /** diff --git a/src/ol/source/kmlsource.js b/src/ol/source/kmlsource.js index ef951220ed..a10a5be288 100644 --- a/src/ol/source/kmlsource.js +++ b/src/ol/source/kmlsource.js @@ -24,7 +24,8 @@ ol.source.KML = function(opt_options) { projection: options.projection, reprojectTo: options.reprojectTo, text: options.text, - url: options.url + url: options.url, + urls: options.urls }); }; From d25ee8df0a6d64caf2ff408d10f50f4733d9cd1e Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 2 Jan 2014 22:41:21 +0100 Subject: [PATCH 5/5] Use urls option in igc example --- examples/igc.js | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/examples/igc.js b/examples/igc.js index 0d78b7c4c5..0c7a65e076 100644 --- a/examples/igc.js +++ b/examples/igc.js @@ -2,27 +2,17 @@ goog.require('ol.Attribution'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.format.IGC'); goog.require('ol.geom.LineString'); goog.require('ol.geom.Point'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); -goog.require('ol.proj'); +goog.require('ol.source.IGC'); goog.require('ol.source.OSM'); -goog.require('ol.source.Vector'); goog.require('ol.style.Circle'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); -var tracklogs = [ - 'data/igc/Clement-Latour.igc', - 'data/igc/Damien-de-Baenst.igc', - 'data/igc/Sylvain-Dhonneur.igc', - 'data/igc/Tom-Payne.igc', - 'data/igc/Ulrich-Prinz.igc' -]; - var colors = { 'Clement Latour': 'rgba(0, 0, 255, 0.7)', 'Damien de Baesnt': 'rgba(0, 215, 255, 0.7)', @@ -47,7 +37,15 @@ var styleFunction = function(feature, resolution) { return styleArray; }; -var vectorSource = new ol.source.Vector(); +var vectorSource = new ol.source.IGC({ + urls: [ + 'data/igc/Clement-Latour.igc', + 'data/igc/Damien-de-Baenst.igc', + 'data/igc/Sylvain-Dhonneur.igc', + 'data/igc/Tom-Payne.igc', + 'data/igc/Ulrich-Prinz.igc' + ] +}); var map = new ol.Map({ layers: [ @@ -77,18 +75,6 @@ var map = new ol.Map({ }); -var transform = ol.proj.getTransform('EPSG:4326', 'EPSG:3857'); -var i, ii; -for (i = 0, ii = tracklogs.length; i < ii; ++i) { - $.get(tracklogs[i], function(data) { - var format = new ol.format.IGC(); - var feature = format.readFeature(data); - feature.getGeometry().transform(transform); - vectorSource.addFeature(feature); - }); -} - - var point = null; var line = null; var displaySnap = function(coordinate) {