Files
openlayers/examples/kml.js
Tim Schaub d2cd0808a8 Use projection option instead of reprojectTo
The projection option for vector file sources currently has no good meaning.  The reprojectTo option is used to set the projection for cached features.  This change makes it so the projection option is used for this purpose.  The getProjection method (not currently exported) can then be used to get the cached feature projection.

This also removes the default of 'EPSG:3857' for vector file sources.  If a projection is not configured, features will not be transformed.
2014-02-03 18:13:25 -07:00

60 lines
1.5 KiB
JavaScript

goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.source.BingMaps');
goog.require('ol.source.KML');
var raster = new ol.layer.Tile({
source: new ol.source.BingMaps({
imagerySet: 'Aerial',
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3'
})
});
var vector = new ol.layer.Vector({
source: new ol.source.KML({
projection: 'EPSG:3857',
url: 'data/kml/2012-02-10.kml'
})
});
var map = new ol.Map({
layers: [raster, vector],
renderer: ol.RendererHint.CANVAS,
target: document.getElementById('map'),
view: new ol.View2D({
center: [876970.8463461736, 5859807.853963373],
zoom: 10
})
});
var displayFeatureInfo = function(pixel) {
var features = [];
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
features.push(feature);
});
if (features.length > 0) {
var info = [];
var i, ii;
for (i = 0, ii = features.length; i < ii; ++i) {
info.push(features[i].get('name'));
}
document.getElementById('info').innerHTML = info.join(', ') || '(unknown)';
map.getTarget().style.cursor = 'pointer';
} else {
document.getElementById('info').innerHTML = '&nbsp;';
map.getTarget().style.cursor = '';
}
};
$(map.getViewport()).on('mousemove', function(evt) {
var pixel = map.getEventPixel(evt.originalEvent);
displayFeatureInfo(pixel);
});
map.on('singleclick', function(evt) {
displayFeatureInfo(evt.pixel);
});