[Portugal] reproje??o em openlayers

Duarte Carreira DCarreira at edia.pt
Thu Apr 30 06:25:42 EDT 2009


Luís e colegas,

Já há algum tempo que não olho para esta questão mas vou arriscar uma resposta... o EPSG já tem um código standard para a Web Mercator - EPSG: 3785. Podem ver este post do Morten Nielsen http://www.sharpgis.net/post/2008/05/SphericalWeb-Mercator-EPSG-code-3785.aspx.

Mas parece que o EPSG depois veio confundir as coisas e mudou o código para 3857... coisa que eu nunca tinha visto suceder pelo menos tão rapidamente!! Podem ver este post do Vish Uma http://viswaug.wordpress.com/2009/04/01/gis-standards-gone-crazy-epsg-especially/.

No site do EPSG http://www.epsg-registry.org/, realmente o código 3785 não é encontrado. Mas o código 3857 é... a descrição dada é a seguinte:

Remarks: "Uses spherical development of ellipsoidal coordinates. Relative to an ellipsoidal development errors of up to 800 metres in position and 0.7 percent in scale may arise. It is not a recognised geodetic system: see WGS 84 / World Mercator (CRS code 3395)."
Scope: "Certain Web mapping and visualisation applications."
Information Source: Microsoft.

Por isso parece que o EPSG:3857 é definitivamente o sistema de coordenadas a usar em serviços WMS para sobrepor a mapas Google ou Microsoft. Agora resta saber qual dos códigos é reconhecido pelo servidor WMS que estamos a usar...

Duarte


-----Mensagem original-----
Message: 1
Date: Tue, 28 Apr 2009 09:38:27 -0700 (PDT)
From: Gabriel Nolasco <nolasco_gabriel  yahoo.com.br>
Subject: Re: [Portugal] reproje??o em openlayers
To: OSGeoPortugal <portugal  lists.osgeo.org>
Message-ID: <406183.71877.qm  web37101.mail.mud.yahoo.com>
Content-Type: text/plain; charset="iso-8859-1"

Ol? Luis,
Penso que n?o podes reprojectar a layer do goolge, tens sim que reprojectar os teus dados para projec??o de Mercator (epsg:4326). Os resultados da sobreposi??o v?o piorar ? medida que os dados se afastam do equador.

??? map = new OpenLayers.Map('map');

??? var satellite = new OpenLayers.Layer.Google(
??? ??? "Google Satellite" , {type: G_SATELLITE_MAP}
??? );

??? var wms = new OpenLayers.Layer.WMS(
??? ??? "World Map",
??????????????? "http://world.freemap.in/cgi-bin/mapserv",
???????????????
 {
??????????????????? map: '/www/freemap.in/world/map/factbooktrans.map',
??????????????????? transparent: 'TRUE',
??????????????????? layers: 'factbook'
??????????????? },
??????????????? {'reproject': true}
??? );

??? map.addLayers([satellite, wms]);

Podes ver v?rios exemplos em http://openlayers.org/dev/examples/

Cumprimentos,
Gabriel Nolasco

--- Em ter, 28/4/09, Luis Calisto <luis.calisto  hotmail.com>
 escreveu:

De: Luis Calisto <luis.calisto  hotmail.com>
Assunto: [Portugal] reproje??o em openlayers
Para: portugal  lists.osgeo.org
Data: Ter?a-feira, 28 de Abril de 2009, 15:42




#yiv1499237232 #yiv2136924094 .hmmessage P
{
margin:0px;padding:0px;}
#yiv1499237232 #yiv2136924094 {
font-size:10pt;font-family:Verdana;}

Tenho estado a trabalhar com o openlayers, actualmente estou a tentar fazer reprojec??es entre coordenadas dentro do openlayers, alguem pode dar uma ajuda?

?

Outra coisa que tenho tentado?? reprojectar uma layer do Google de forma a poder sobrepor informa??o noutro sistema de coordenadas, uma vez que?o google se?encontra em wgs84 certo?

?

Desde j? obrigado por tudo.

?

Lu?s Calisto

Quer deixar seu Messenger turbinado de emoticons? Clique aqui e baixe agora. ? gr?tis!

-----Anexo incorporado-----

_______________________________________________
Portugal mailing list
Portugal  lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/portugal




      Veja quais s?o os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - M?sica - Esportes


      Veja quais s?o os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/portugal/attachments/20090428/52308765/attachment-0001.html

------------------------------

Message: 2
Date: Tue, 28 Apr 2009 18:45:59 +0100
From: Jose Gon?alves <jagoncal  gmail.com>
Subject: Re: [Portugal] reproje??o em openlayers
To: portugal  lists.osgeo.org
Message-ID:
        <6a91fcb00904281045jdba7398p6d2b20ee8e7a6781  mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Aten??o a um pormenor que presumo possa levantar problemas: a projec??o
usada pelo Google Maps ? uma projec??o de Mercator mas de uma esfera e n?o
de um elips?ide. A epsg:4326 tamb?m n?o ? a de Mercator mas a sim a
projec??o "latlong" (isto ?, n?o projec??o):

# WGS 84
<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs  <>


A epsg:3395 ("World Mercator") ? a projec??o de Mercator do elips?ide e tem
a seguinte instru??o do PROJ.4

# WGS 84 / World Mercator
<3395> +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84
+units=m +no_defs  <>


A projec??o usada pelo Google Maps dever? ser

+proj=merc +R=6378137 +lon_0=0 +k=1 +x_0=0 +y_0=0 +units=m +no_defs

Apesar de usar coordenadas (long,lat) no elips?ide WGS84 considera nas
f?rmulas uma esfera (i.e. excentricidade zero) e n?o o elips?ide.

Cumprimentos

Jos? A. Gon?alves


2009/4/28 Gabriel Nolasco <nolasco_gabriel  yahoo.com.br>

>      Ol? Luis,
> Penso que n?o podes reprojectar a layer do goolge, tens sim que reprojectar
> os teus dados para projec??o de Mercator (epsg:4326). Os resultados da
> sobreposi??o v?o piorar ? medida que os dados se afastam do equador.
>
>     map = new OpenLayers.Map('map');
>
>     var satellite = new OpenLayers.Layer.Google(
>         "Google Satellite" , {type: G_SATELLITE_MAP}
>     );
>
>     var wms = new OpenLayers.Layer.WMS(
>         "World Map",
>                 "http://world.freemap.in/cgi-bin/mapserv",
>                 {
>                     map: '/www/freemap.in/world/map/factbooktrans.map',
>                     transparent: 'TRUE',
>                     layers: 'factbook'
>                 },
>                 {'reproject': true}
>     );
>
>     map.addLayers([satellite, wms]);
>
> Podes ver v?rios exemplos em http://openlayers.org/dev/examples/
>
> Cumprimentos,
> Gabriel Nolasco
>
> --- Em *ter, 28/4/09, Luis Calisto <luis.calisto  hotmail.com>* escreveu:
>
>
> De: Luis Calisto <luis.calisto  hotmail.com>
> Assunto: [Portugal] reproje??o em openlayers
> Para: portugal  lists.osgeo.org
> Data: Ter?a-feira, 28 de Abril de 2009, 15:42
>
>
> Tenho estado a trabalhar com o openlayers, actualmente estou a tentar fazer
> reprojec??es entre coordenadas dentro do openlayers, alguem pode dar uma
> ajuda?
>
> Outra coisa que tenho tentado ? reprojectar uma layer do Google de forma a
> poder sobrepor informa??o noutro sistema de coordenadas, uma vez que o
> google se encontra em wgs84 certo?
>
> Desde j? obrigado por tudo.
>
> Lu?s Calisto
>
> ------------------------------
> Quer deixar seu Messenger turbinado de emoticons? Clique aqui e baixe
> agora. ? gr?tis! <http://specials.br.msn.com/ilovemessenger/pacotes.aspx>
>
> -----Anexo incorporado-----
>
> _______________________________________________
> Portugal mailing list
> Portugal  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal
>
>
> ------------------------------
> Veja quais s?o os assuntos do momento no Yahoo! + Buscados: Top 10<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/>-
> Celebridades<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/>-
> M?sica<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/>-
> Esportes<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/>
>
>
>  ------------------------------
> Veja quais s?o os assuntos do momento no Yahoo! + Buscados: Top 10<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/>-
> Celebridades<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/>-
> M?sica<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/>-
> Esportes<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/>
>
> _______________________________________________
> Portugal mailing list
> Portugal  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/portugal/attachments/20090428/63f356ec/attachment-0001.html

------------------------------

Message: 3
Date: Tue, 28 Apr 2009 13:42:27 -0700 (PDT)
From: Gabriel Nolasco <nolasco_gabriel  yahoo.com.br>
Subject: Re: [Portugal] reproje??o em openlayers
To: OSGeoPortugal <portugal  lists.osgeo.org>
Message-ID: <384751.24714.qm  web37102.mail.mud.yahoo.com>
Content-Type: text/plain; charset=iso-8859-1


Professor Jos? Alberto Gon?alves,

Obrigado pelas correc??es, ? bom saber que h? algu?m atento ?s asneiras que se v?o dizendo!

Cumprimentos,
Gabriel Nolasco


Aten??o a um pormenor que presumo possa levantar problemas: a projec??o
usada pelo Google Maps ? uma projec??o de Mercator mas de uma esfera e n?o
de um elips?ide. A epsg:4326 tamb?m n?o ? a de Mercator mas a sim a
projec??o "latlong" (isto ?, n?o projec??o):

# WGS 84
<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs  <>


A epsg:3395 ("World Mercator") ? a projec??o de Mercator do elips?ide e tem
a seguinte instru??o do PROJ.4

# WGS 84 / World Mercator
<3395> +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84
+units=m +no_defs  <>


A projec??o usada pelo Google Maps dever? ser

+proj=merc +R=6378137 +lon_0=0 +k=1 +x_0=0 +y_0=0 +units=m +no_defs

Apesar de usar coordenadas (long,lat) no elips?ide WGS84 considera nas
f?rmulas uma esfera (i.e. excentricidade zero) e n?o o elips?ide.

Cumprimentos

Jos? A. Gon?alves


2009/4/28 Gabriel Nolasco <nolasco_gabriel  yahoo.com.br>

> Ol? Luis,
> Penso que n?o podes reprojectar a layer do goolge, tens sim que reprojectar
> os teus dados para projec??o de Mercator (epsg:4326). Os resultados da
> sobreposi??o v?o piorar ? medida que os dados se afastam do equador.
>
>     map = new OpenLayers.Map('map');
>
>     var satellite = new OpenLayers.Layer.Google(
>         "Google Satellite" , {type: G_SATELLITE_MAP}
>     );
>
>     var wms = new OpenLayers.Layer.WMS(
>         "World Map",
>                 "http://world.freemap.in/cgi-bin/mapserv",
>                 {
>                     map: '/www/freemap.in/world/map/factbooktrans.map',
>                     transparent: 'TRUE',
>                     layers: 'factbook'
>                 },
>                 {'reproject': true}
>     );
>
>     map.addLayers([satellite, wms]);
>
> Podes ver v?rios exemplos em http://openlayers.org/dev/examples/
>
> Cumprimentos,
> Gabriel Nolasco
>
> --- Em *ter, 28/4/09, Luis Calisto <luis.calisto  hotmail.com>* escreveu:
>
>
> De: Luis Calisto <luis.calisto  hotmail.com>
> Assunto: [Portugal] reproje??o em openlayers
> Para: portugal  lists.osgeo.org
> Data: Ter?a-feira, 28 de Abril de 2009, 15:42
>
>
> Tenho estado a trabalhar com o openlayers, actualmente estou a tentar fazer
> reprojec??es entre coordenadas dentro do openlayers, alguem pode dar uma
> ajuda?
>
> Outra coisa que tenho tentado ? reprojectar uma layer do Google de forma a
> poder sobrepor informa??o noutro sistema de coordenadas, uma vez que o
> google se encontra em wgs84 certo?
>
> Desde j? obrigado por tudo.
>
> Lu?s Calisto



      Veja quais s?o os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com


------------------------------

Message: 4
Date: Wed, 29 Apr 2009 00:45:23 +0100
From: Lu?s Ferreira <lferreira75.1  gmail.com>
Subject: Re: [Portugal] reproje??o em openlayers
To: OSGeoPortugal <portugal  lists.osgeo.org>
Message-ID: <1240962323.10456.15.camel  leopardo.lan>
Content-Type: text/plain; charset=ISO-8859-15

Ol? Lu?s

Tamb?m estou a partir a cabe?a com Openlayers e Mapfish.

Eu estou a usar a projec??o epsg: 900913 Spherical Mercator para
visualizar camadas do Google juntamente com outros dados.

Junta ? lista epsg do PROJ:
<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs <>

Projecta os teus dados, num servi?o WMS ou WFS, para epsg: 900913.

Depois, com Openlayers:


//Definir Projec??es
        var sphericalmercator = new OpenLayers.Projection("EPSG:900913");

        //maxExtent e restrictedExtent
        var sphericalmercatorbounds = new OpenLayers.Bounds(-992810.0031061, 4581630.1929423, -916168.19724106, 4650374.13191182);

        var scales = [100000, 50000, 25000, 10000, 5000, 1000, 500, 100];

        var resolutions = new Array(scales.length);
          for (i=0;i<scales.length;i++) {
            resolutions[i] = scales[i] / (OpenLayers.INCHES_PER_UNIT[39.3701] * OpenLayers.DOTS_PER_INCH);
          }

        var options = {
            scales: scales,
            projection: sphericalmercator,
            displayProjection: sphericalmercator,
            units: "m",
            numZoomLevels: 20,
            maxResolution: 'auto',
            maxScale: 1000000,
          /*  minResolution: 'auto',*/
            maxExtent: sphericalmercatorbounds,
            restrictedExtent: sphericalmercatorbounds
        };
-------------------------------------------------------------
        map = new OpenLayers.Map('center', options);

        var conc_grandola_dt73ipcc =  new OpenLayers.Layer.WMS(
          "Concelho de Gr?ndola",
          "http://proxy.xxx/cgi-bin/mapserv?",
          {map:'/var/www/mapserver/muda_wms.map',
          layers: 'conc_grandola_dt73ipcc',
          srs: 'EPSG:900913',
          format: 'image/png',
          transparent: true
          },
          {visibility:false,
          isBaseLayer: false,
          opacity: 0.4,
          noMagic: false
          }
        );

Um abra?o

Lu?s Ferreira

Ter, 2009-04-28 ?s 13:42 -0700, Gabriel Nolasco escreveu:
> Professor Jos? Alberto Gon?alves,
>
> Obrigado pelas correc??es, ? bom saber que h? algu?m atento ?s asneiras que se v?o dizendo!
>
> Cumprimentos,
> Gabriel Nolasco
>
>
> Aten??o a um pormenor que presumo possa levantar problemas: a projec??o
> usada pelo Google Maps ? uma projec??o de Mercator mas de uma esfera e n?o
> de um elips?ide. A epsg:4326 tamb?m n?o ? a de Mercator mas a sim a
> projec??o "latlong" (isto ?, n?o projec??o):
>
> # WGS 84
> <4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs  <>
>
>
> A epsg:3395 ("World Mercator") ? a projec??o de Mercator do elips?ide e tem
> a seguinte instru??o do PROJ.4
>
> # WGS 84 / World Mercator
> <3395> +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84
> +units=m +no_defs  <>
>
>
> A projec??o usada pelo Google Maps dever? ser
>
> +proj=merc +R=6378137 +lon_0=0 +k=1 +x_0=0 +y_0=0 +units=m +no_defs
>
> Apesar de usar coordenadas (long,lat) no elips?ide WGS84 considera nas
> f?rmulas uma esfera (i.e. excentricidade zero) e n?o o elips?ide.
>
> Cumprimentos
>
> Jos? A. Gon?alves
>
>
> 2009/4/28 Gabriel Nolasco <nolasco_gabriel  yahoo.com.br>
>
> > Ol? Luis,
> > Penso que n?o podes reprojectar a layer do goolge, tens sim que reprojectar
> > os teus dados para projec??o de Mercator (epsg:4326). Os resultados da
> > sobreposi??o v?o piorar ? medida que os dados se afastam do equador.
> >
> >     map = new OpenLayers.Map('map');
> >
> >     var satellite = new OpenLayers.Layer.Google(
> >         "Google Satellite" , {type: G_SATELLITE_MAP}
> >     );
> >
> >     var wms = new OpenLayers.Layer.WMS(
> >         "World Map",
> >                 "http://world.freemap.in/cgi-bin/mapserv",
> >                 {
> >                     map: '/www/freemap.in/world/map/factbooktrans.map',
> >                     transparent: 'TRUE',
> >                     layers: 'factbook'
> >                 },
> >                 {'reproject': true}
> >     );
> >
> >     map.addLayers([satellite, wms]);
> >
> > Podes ver v?rios exemplos em http://openlayers.org/dev/examples/
> >
> > Cumprimentos,
> > Gabriel Nolasco
> >
> > --- Em *ter, 28/4/09, Luis Calisto <luis.calisto  hotmail.com>* escreveu:
> >
> >
> > De: Luis Calisto <luis.calisto  hotmail.com>
> > Assunto: [Portugal] reproje??o em openlayers
> > Para: portugal  lists.osgeo.org
> > Data: Ter?a-feira, 28 de Abril de 2009, 15:42
> >
> >
> > Tenho estado a trabalhar com o openlayers, actualmente estou a tentar fazer
> > reprojec??es entre coordenadas dentro do openlayers, alguem pode dar uma
> > ajuda?
> >
> > Outra coisa que tenho tentado ? reprojectar uma layer do Google de forma a
> > poder sobrepor informa??o noutro sistema de coordenadas, uma vez que o
> > google se encontra em wgs84 certo?
> >
> > Desde j? obrigado por tudo.
> >
> > Lu?s Calisto
>
>
>
>       Veja quais s?o os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
> _______________________________________________
> Portugal mailing list
> Portugal  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal



------------------------------

_______________________________________________
Portugal mailing list
Portugal  lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/portugal


End of Portugal Digest, Vol 13, Issue 26
****************************************


More information about the Portugal mailing list