Você pode obter o seu centro de extensão usando ol.extent.getCenter
. No meu caso, tenho uma camada vetorial e quero obter o centro de um recurso depois de clicar nele.
então
crie uma interação simples de clique e adicione-a ao mapa
var select = new ol.interaction.Select();
map.addInteraction(select);
Para cada clique ...
select.on('select', function(e) {
Obtenha o primeiro recurso selecionado, na matriz "selecionada". Em seguida, obtenha sua geometria e, em seguida, sua extensão.
Use essa extensão para encontrar seu centro, usando ol.extent.getCenter
var aa = e.selected[0].getGeometry().getExtent();
var oo = ol.extent.getCenter(aa);
console.log("The center is : "+oo); // voila!!!!
});
O mesmo código funcionou para linhas, pontos e polígonos.
PS. O ol.extent.getCenter
é estável, usado no OL versão 3.9.0 e versão 3.10.1 e você pode encontrá-lo aqui
var x = extent[0] + (extent[2] - extent[0]) / 2; var y = extent[1] + (extent[3] - extent[1]) / 2;