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.