Make synthetic data example more idiomatic

This commit is contained in:
Tom Payne
2013-11-10 21:31:07 +01:00
parent e504f69503
commit cab8cf4fde
+24 -36
View File
@@ -1,56 +1,44 @@
goog.require('goog.functions'); goog.require('ol.Feature');
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.Overlay'); goog.require('ol.Overlay');
goog.require('ol.RendererHint'); goog.require('ol.RendererHint');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.format.GeoJSON'); goog.require('ol.geom.Point');
goog.require('ol.layer.Vector'); goog.require('ol.layer.Vector');
goog.require('ol.source.Vector'); goog.require('ol.source.Vector');
goog.require('ol.symbol'); goog.require('ol.symbol');
// build up some GeoJSON features
var count = 20000; var count = 20000;
var features = new Array(count); var features = new Array(count);
var e = 18000000; var e = 18000000;
for (var i = 0; i < count; ++i) { for (var i = 0; i < count; ++i) {
features[i] = { features[i] = new ol.Feature({
type: 'Feature', 'geometry': new ol.geom.Point(
properties: { [2 * e * Math.random() - e, 2 * e * Math.random() - e]),
i: i, 'i': i,
size: i % 2 ? 10 : 20 'size': i % 2 ? 10 : 20
}, });
geometry: {
type: 'Point',
coordinates: [
2 * e * Math.random() - e, 2 * e * Math.random() - e
]
}
};
} }
var vectorSource = new ol.source.Vector(); var styles = {
new ol.format.GeoJSON().readObject({ '10': {
type: 'FeatureCollection', image: ol.symbol.renderCircle(
features: features 5, {color: '#666666'}, {color: '#bada55', width: 1})
}, vectorSource.addFeature, vectorSource); },
'20': {
var styleFunction = goog.functions.constant({ image: ol.symbol.renderCircle(
image: ol.symbol.renderCircle( 10, {color: '#666666'}, {color: '#bada55', width: 1})
5, }
{ };
color: '#666666'
},
{
color: '#bada55',
width: 1
})
});
var vector = new ol.layer.Vector({ var vector = new ol.layer.Vector({
source: vectorSource, source: new ol.source.Vector({
styleFunction: styleFunction features: features
}),
styleFunction: function(feature) {
return styles[feature.get('size')];
}
}); });
var popup = new ol.Overlay({ var popup = new ol.Overlay({