[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