Skip to content

Instantly share code, notes, and snippets.

@tschaub
Created May 21, 2013 05:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tschaub/5617621 to your computer and use it in GitHub Desktop.
Save tschaub/5617621 to your computer and use it in GitHub Desktop.
Rendering synthetic data with the canvas renderer.
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.geom.Point');
goog.require('ol.layer.TileLayer');
goog.require('ol.layer.Vector');
goog.require('ol.parser.GeoJSON');
goog.require('ol.projection');
goog.require('ol.source.MapQuestOpenAerial');
goog.require('ol.source.Vector');
goog.require('ol.style.Rule');
goog.require('ol.style.Shape');
goog.require('ol.style.ShapeType');
goog.require('ol.style.Style');
var raster = new ol.layer.TileLayer({
source: new ol.source.MapQuestOpenAerial()
});
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
projection: ol.projection.get('EPSG:3857')
}),
style: new ol.style.Style({rules: [
new ol.style.Rule({
symbolizers: [
new ol.style.Shape({
type: ol.style.ShapeType.CIRCLE,
size: 10,
strokeColor: '#666666',
fillColor: '#bada55'
})
]
})
]})
});
var count = 20000;
var features = new Array(count);
var e = 18000000;
for (var i = 0; i < count; ++i) {
features[i] = new ol.Feature({
i: i,
geom: new ol.geom.Point([
2 * e * Math.random() - e, 2 * e * Math.random() - e
])
});
}
vector.addFeatures(features);
var map = new ol.Map({
layers: [raster, vector],
renderer: ol.RendererHint.CANVAS,
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 1
})
});
map.on('mousemove', function(evt) {
map.getFeatureInfo({
pixel: evt.getPixel(),
layers: [vector],
success: function(features) {
var info = [];
for (var i = 0, ii = features.length; i < ii; ++i) {
info.push(features[i].get('i'));
}
document.getElementById('info').innerHTML = info.join(', ') || '&nbsp;';
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment