Uma solução alternativa, mas você pode usar o getExtent
método na geometria para definir a extensão no mapa. Presumo que o centro da vista será o centro da geometria;
Test = new ol.geom.Geometry();
map.getView().fitExtent(Test.getExtent, map.getSize());
var CenterOfGeom = map.getView().getCenter()
Se você não deseja alterar a visualização (o que eu posso imaginar), você pode pensar em uma função para calcular o centro da extensão. Isso será fácil em certos tipos de sistemas de coordenadas (EPSG: 3857, que é baseado em medidores), mas mais difícil em outros (EPSG: 4326, baseado em cordas lon / lat). Uma função que poderia calcular esse centro (no EPSG: 3857) seria a seguinte;
function getCenterOfExtent(Extent){
var X = Extent[0] + (Extent[2]-Extent[0])/2;
var Y = Extent[1] + (Extent[3]-Extent[1])/2;
return [X, Y];
}
Espero que isto ajude!
var x = extent[0] + (extent[2] - extent[0]) / 2; var y = extent[1] + (extent[3] - extent[1]) / 2;
getCenterOfExtent
ol.extent.getCenter
e está estável. Por exemplo, eu fizvar aa = e.selected[0].getGeometry().getExtent(); var oo = ol.extent.getCenter(aa);
e me deu o centro de pontos, linhas e polígonos. Confira aquiVocê 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
Para cada clique ...
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
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 aquifonte
Você também pode obter o centro com:
fonte
Uncaught TypeError: feature.getGeometry(...).getCenter is not a function
.getCenter()
método é aplicável apenas a geometrias de círculosol.geom.Circle
. É possível que você tenha um tipo diferente de geometria?OpenLayers v 6.1.1
var center = e.feature.getGeometry().getExtent().getCenter()
fonte