diff --git a/examples/filter-points-webgl.js b/examples/filter-points-webgl.js index e1f9042a70..af13dcf3ba 100644 --- a/examples/filter-points-webgl.js +++ b/examples/filter-points-webgl.js @@ -10,7 +10,6 @@ import WebGLPointsLayerRenderer from '../src/ol/renderer/webgl/PointsLayer'; import {clamp, lerp} from '../src/ol/math'; import Stamen from '../src/ol/source/Stamen'; -const features = []; const vectorSource = new Vector({ features: [], attributions: 'NASA' @@ -109,26 +108,28 @@ function loadData() { client.open('GET', 'data/csv/meteorite_landings.csv'); client.onload = function() { const csv = client.responseText; + const features = []; + + let prevIndex = csv.indexOf('\n') + 1; // scan past the header line + let curIndex; - let prevIndex = 0; - let line; - while ((curIndex = csv.indexOf('\n', prevIndex)) > 0) { - line = csv.substr(prevIndex, curIndex - prevIndex).split(','); + while ((curIndex = csv.indexOf('\n', prevIndex)) != -1) { + const line = csv.substr(prevIndex, curIndex - prevIndex).split(','); prevIndex = curIndex + 1; - // skip header - if (prevIndex === 0) { + const coords = fromLonLat([parseFloat(line[4]), parseFloat(line[3])]); + if (isNaN(coords[0]) || isNaN(coords[1])) { + // guard against bad data continue; } - const coords = fromLonLat([parseFloat(line[4]), parseFloat(line[3])]); - features.push(new Feature({ mass: parseFloat(line[1]) || 0, year: parseInt(line[2]) || 0, geometry: new Point(coords) })); } + vectorSource.addFeatures(features); }; client.send(); diff --git a/examples/icon-sprite-webgl.js b/examples/icon-sprite-webgl.js index ba509136d1..4eefd56ddb 100644 --- a/examples/icon-sprite-webgl.js +++ b/examples/icon-sprite-webgl.js @@ -10,7 +10,6 @@ import {fromLonLat} from '../src/ol/proj'; import WebGLPointsLayerRenderer from '../src/ol/renderer/webgl/PointsLayer'; import {lerp} from '../src/ol/math'; -const features = []; const vectorSource = new Vector({ features: [], attributions: 'National UFO Reporting Center' @@ -70,17 +69,14 @@ function loadData() { client.open('GET', 'data/csv/ufo_sighting_data.csv'); client.onload = function() { const csv = client.responseText; - let curIndex; - let prevIndex = 0; - let line; - while ((curIndex = csv.indexOf('\n', prevIndex)) > 0) { - line = csv.substr(prevIndex, curIndex - prevIndex).split(','); - prevIndex = curIndex + 1; + const features = []; - // skip header - if (prevIndex === 0) { - continue; - } + let prevIndex = csv.indexOf('\n') + 1; // scan past the header line + + let curIndex; + while ((curIndex = csv.indexOf('\n', prevIndex)) != -1) { + const line = csv.substr(prevIndex, curIndex - prevIndex).split(','); + prevIndex = curIndex + 1; const coords = fromLonLat([parseFloat(line[5]), parseFloat(line[4])]);