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:
1 2 3 4 5 6 7 8 |
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; |
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.