Conversão de projeção direta com o OpenLayers.Format.WKT

Boa tarde a todos,

Para quem trabalha com o OpenLayers e está trabalhando com a projeção 900913 e precisa exportar o WKT gerado em 4326, você pode passar 2 parâmetros para o construtor da classe OpenLayers.Format.WKT, assim:

[javascript]

var this.polygonLayer     = new OpenLayers.Layer.Vector("Line Layer");

var writer = new OpenLayers.Format.WKT({
‘internalProjection’: new OpenLayers.Projection(“EPSG:900913”),
‘externalProjection’: new OpenLayers.Projection(“EPSG:4326”)
});
var wkt = writer.write(polygonLayer.features);
document.getElementById(‘meu-input’).value = wkt;
[/javascript]

Isso fará com que as coordenadas do seu WKT fiquem no padrão 4326 e não gerem uma exception no banco de dados do PostgreSQL + Postgis. A exceção gerada é conhecida, achava que era um bug mas não é:

“ERRO: Coordinate values are out of range [-180 -90, 180 90] for GEOGRAPHY type”

Senão me engano este erro ocorre porque no campo da minha tabela o geometry está definido para ser representado pela projeção 4326 e não pela 900913, logo as coordenadas da 900913 são maiores que o limite da 4326.

Abraços e até a próxima.