From cab8cf4fdeb49eb11a1293aba4ed512b452e41f0 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Sun, 10 Nov 2013 21:31:07 +0100 Subject: [PATCH] Make synthetic data example more idiomatic --- examples/synthetic-data.js | 60 +++++++++++++++----------------------- 1 file changed, 24 insertions(+), 36 deletions(-) diff --git a/examples/synthetic-data.js b/examples/synthetic-data.js index 86023728e0..7e8dbbe524 100644 --- a/examples/synthetic-data.js +++ b/examples/synthetic-data.js @@ -1,56 +1,44 @@ -goog.require('goog.functions'); +goog.require('ol.Feature'); goog.require('ol.Map'); goog.require('ol.Overlay'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); -goog.require('ol.format.GeoJSON'); +goog.require('ol.geom.Point'); goog.require('ol.layer.Vector'); goog.require('ol.source.Vector'); goog.require('ol.symbol'); -// build up some GeoJSON features var count = 20000; var features = new Array(count); var e = 18000000; for (var i = 0; i < count; ++i) { - features[i] = { - type: 'Feature', - properties: { - i: i, - size: i % 2 ? 10 : 20 - }, - geometry: { - type: 'Point', - coordinates: [ - 2 * e * Math.random() - e, 2 * e * Math.random() - e - ] - } - }; + features[i] = new ol.Feature({ + 'geometry': new ol.geom.Point( + [2 * e * Math.random() - e, 2 * e * Math.random() - e]), + 'i': i, + 'size': i % 2 ? 10 : 20 + }); } -var vectorSource = new ol.source.Vector(); -new ol.format.GeoJSON().readObject({ - type: 'FeatureCollection', - features: features -}, vectorSource.addFeature, vectorSource); - -var styleFunction = goog.functions.constant({ - image: ol.symbol.renderCircle( - 5, - { - color: '#666666' - }, - { - color: '#bada55', - width: 1 - }) -}); - +var styles = { + '10': { + image: ol.symbol.renderCircle( + 5, {color: '#666666'}, {color: '#bada55', width: 1}) + }, + '20': { + image: ol.symbol.renderCircle( + 10, {color: '#666666'}, {color: '#bada55', width: 1}) + } +}; var vector = new ol.layer.Vector({ - source: vectorSource, - styleFunction: styleFunction + source: new ol.source.Vector({ + features: features + }), + styleFunction: function(feature) { + return styles[feature.get('size')]; + } }); var popup = new ol.Overlay({