i've built relatively simple openlayers map , i'm attempting geojson properties appear in on-click popup no matter try, either returns geometry name object object or undefined. think openlayers stores cluster data array of features rather multiple individual features? here code on-click function:
var container = document.getelementbyid('popup'), content_element = document.getelementbyid('popup-content'), closer = document.getelementbyid('popup-closer'); closer.onclick = function() { overlay.setposition(undefined); closer.blur(); return false; }; var overlay = new ol.overlay({ element: container, positioning: 'bottom-center', stopevent: false }); map.addoverlay(overlay); // display popup on click map.on('click', function(evt) { var feature = map.foreachfeatureatpixel(evt.pixel, function(feature, layer) { return feature; }); if (feature) { var geometry = feature.getgeometry(); var coord = geometry.getcoordinates(); var content =coord; //------------------------------------------------------------------------------ content += '<h5>' + feature.get('mmsi') + '</h5>'; //--------^^^^^^^ not work clusters ^^^^^^------------------------ //------------------------------------------------------------------------------ content_element.innerhtml = content; overlay.setposition(coord); } else { } i don't need properties of actual clusters need properties of single point(once zoomed in , clusters have separated individual points). appreciated!
try way:
map.on('click', function(evt) { var ft = map.foreachfeatureatpixel(evt.pixel, function(f, l){return f;}); if (ft) { var features = ft.get('features'); //this official examples features.foreach(function(feature){ //assumption there 'name' property console.info(feature.get('name')); }); } });
Comments
Post a Comment