<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Obrigado a todos pela ajuda.<BR>
Foi muito útil.<BR>
&nbsp;<BR>
Cumprimentos a todos<BR>
&nbsp;<BR>
Luis&nbsp;Calisto<BR>&nbsp;<BR>&gt; Subject: Re: [Portugal] reprojeção em openlayers<BR>&gt; From: lferreira75.1@gmail.com<BR>&gt; To: portugal@lists.osgeo.org<BR>&gt; Date: Wed, 29 Apr 2009 00:45:23 +0100<BR>&gt; <BR>&gt; Olá Luís<BR>&gt; <BR>&gt; Também estou a partir a cabeça com Openlayers e Mapfish.<BR>&gt; <BR>&gt; Eu estou a usar a projecção epsg: 900913 Spherical Mercator para<BR>&gt; visualizar camadas do Google juntamente com outros dados.<BR>&gt; <BR>&gt; Junta à lista epsg do PROJ:<BR>&gt; &lt;900913&gt; +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 &lt;&gt;<BR>&gt; <BR>&gt; Projecta os teus dados, num serviço WMS ou WFS, para epsg: 900913.<BR>&gt; <BR>&gt; Depois, com Openlayers:<BR>&gt; <BR>&gt; <BR>&gt; //Definir Projecções<BR>&gt; var sphericalmercator = new OpenLayers.Projection("EPSG:900913");<BR>&gt; <BR>&gt; //maxExtent e restrictedExtent<BR>&gt; var sphericalmercatorbounds = new OpenLayers.Bounds(-992810.0031061, 4581630.1929423, -916168.19724106, 4650374.13191182);<BR>&gt; <BR>&gt; var scales = [100000, 50000, 25000, 10000, 5000, 1000, 500, 100];<BR>&gt; <BR>&gt; var resolutions = new Array(scales.length);<BR>&gt; for (i=0;i&lt;scales.length;i++) {<BR>&gt; resolutions[i] = scales[i] / (OpenLayers.INCHES_PER_UNIT[39.3701] * OpenLayers.DOTS_PER_INCH);<BR>&gt; }<BR>&gt; <BR>&gt; var options = {<BR>&gt; scales: scales,<BR>&gt; projection: sphericalmercator,<BR>&gt; displayProjection: sphericalmercator,<BR>&gt; units: "m",<BR>&gt; numZoomLevels: 20,<BR>&gt; maxResolution: 'auto',<BR>&gt; maxScale: 1000000,<BR>&gt; /* minResolution: 'auto',*/<BR>&gt; maxExtent: sphericalmercatorbounds,<BR>&gt; restrictedExtent: sphericalmercatorbounds<BR>&gt; };<BR>&gt; -------------------------------------------------------------<BR>&gt; map = new OpenLayers.Map('center', options);<BR>&gt; <BR>&gt; var conc_grandola_dt73ipcc = new OpenLayers.Layer.WMS(<BR>&gt; "Concelho de Grândola",<BR>&gt; "http://proxy.xxx/cgi-bin/mapserv?",<BR>&gt; {map:'/var/www/mapserver/muda_wms.map',<BR>&gt; layers: 'conc_grandola_dt73ipcc',<BR>&gt; srs: 'EPSG:900913',<BR>&gt; format: 'image/png',<BR>&gt; transparent: true<BR>&gt; },<BR>&gt; {visibility:false,<BR>&gt; isBaseLayer: false,<BR>&gt; opacity: 0.4,<BR>&gt; noMagic: false<BR>&gt; }<BR>&gt; );<BR>&gt; <BR>&gt; Um abraço<BR>&gt; <BR>&gt; Luís Ferreira<BR>&gt; <BR>&gt; Ter, 2009-04-28 às 13:42 -0700, Gabriel Nolasco escreveu:<BR>&gt; &gt; Professor José Alberto Gonçalves,<BR>&gt; &gt; <BR>&gt; &gt; Obrigado pelas correcções, é bom saber que há alguém atento às asneiras que se vão dizendo!<BR>&gt; &gt; <BR>&gt; &gt; Cumprimentos,<BR>&gt; &gt; Gabriel Nolasco<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; Atenção a um pormenor que presumo possa levantar problemas: a projecção<BR>&gt; &gt; usada pelo Google Maps é uma projecção de Mercator mas de uma esfera e não<BR>&gt; &gt; de um elipsóide. A epsg:4326 também não é a de Mercator mas a sim a<BR>&gt; &gt; projecção "latlong" (isto é, não projecção):<BR>&gt; &gt; <BR>&gt; &gt; # WGS 84<BR>&gt; &gt; &lt;4326&gt; +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs &lt;&gt;<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; A epsg:3395 ("World Mercator") é a projecção de Mercator do elipsóide e tem<BR>&gt; &gt; a seguinte instrução do PROJ.4<BR>&gt; &gt; <BR>&gt; &gt; # WGS 84 / World Mercator<BR>&gt; &gt; &lt;3395&gt; +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84<BR>&gt; &gt; +units=m +no_defs &lt;&gt;<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; A projecção usada pelo Google Maps deverá ser<BR>&gt; &gt; <BR>&gt; &gt; +proj=merc +R=6378137 +lon_0=0 +k=1 +x_0=0 +y_0=0 +units=m +no_defs<BR>&gt; &gt; <BR>&gt; &gt; Apesar de usar coordenadas (long,lat) no elipsóide WGS84 considera nas<BR>&gt; &gt; fórmulas uma esfera (i.e. excentricidade zero) e não o elipsóide.<BR>&gt; &gt; <BR>&gt; &gt; Cumprimentos<BR>&gt; &gt; <BR>&gt; &gt; José A. Gonçalves<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; 2009/4/28 Gabriel Nolasco &lt;nolasco_gabriel yahoo.com.br&gt;<BR>&gt; &gt; <BR>&gt; &gt; &gt; Olá Luis,<BR>&gt; &gt; &gt; Penso que não podes reprojectar a layer do goolge, tens sim que reprojectar<BR>&gt; &gt; &gt; os teus dados para projecção de Mercator (epsg:4326). Os resultados da<BR>&gt; &gt; &gt; sobreposição vão piorar à medida que os dados se afastam do equador.<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; map = new OpenLayers.Map('map');<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; var satellite = new OpenLayers.Layer.Google(<BR>&gt; &gt; &gt; "Google Satellite" , {type: G_SATELLITE_MAP}<BR>&gt; &gt; &gt; );<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; var wms = new OpenLayers.Layer.WMS(<BR>&gt; &gt; &gt; "World Map",<BR>&gt; &gt; &gt; "http://world.freemap.in/cgi-bin/mapserv",<BR>&gt; &gt; &gt; {<BR>&gt; &gt; &gt; map: '/www/freemap.in/world/map/factbooktrans.map',<BR>&gt; &gt; &gt; transparent: 'TRUE',<BR>&gt; &gt; &gt; layers: 'factbook'<BR>&gt; &gt; &gt; },<BR>&gt; &gt; &gt; {'reproject': true}<BR>&gt; &gt; &gt; );<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; map.addLayers([satellite, wms]);<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Podes ver vários exemplos em http://openlayers.org/dev/examples/<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Cumprimentos,<BR>&gt; &gt; &gt; Gabriel Nolasco<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; --- Em *ter, 28/4/09, Luis Calisto &lt;luis.calisto hotmail.com&gt;* escreveu:<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; De: Luis Calisto &lt;luis.calisto hotmail.com&gt;<BR>&gt; &gt; &gt; Assunto: [Portugal] reprojeção em openlayers<BR>&gt; &gt; &gt; Para: portugal lists.osgeo.org<BR>&gt; &gt; &gt; Data: Terça-feira, 28 de Abril de 2009, 15:42<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Tenho estado a trabalhar com o openlayers, actualmente estou a tentar fazer<BR>&gt; &gt; &gt; reprojecções entre coordenadas dentro do openlayers, alguem pode dar uma<BR>&gt; &gt; &gt; ajuda?<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Outra coisa que tenho tentado é reprojectar uma layer do Google de forma a<BR>&gt; &gt; &gt; poder sobrepor informação noutro sistema de coordenadas, uma vez que o<BR>&gt; &gt; &gt; google se encontra em wgs84 certo?<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Desde já obrigado por tudo.<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Luís Calisto<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; Veja quais são os assuntos do momento no Yahoo! +Buscados<BR>&gt; &gt; http://br.maisbuscados.yahoo.com<BR>&gt; &gt; _______________________________________________<BR>&gt; &gt; Portugal mailing list<BR>&gt; &gt; Portugal@lists.osgeo.org<BR>&gt; &gt; http://lists.osgeo.org/mailman/listinfo/portugal<BR>&gt; <BR>&gt; _______________________________________________<BR>&gt; Portugal mailing list<BR>&gt; Portugal@lists.osgeo.org<BR>&gt; http://lists.osgeo.org/mailman/listinfo/portugal<BR><br /><hr />Quer deixar seu Messenger turbinado de emoticons? <a href='http://specials.br.msn.com/ilovemessenger/pacotes.aspx' target='_new'>Clique aqui e baixe agora. É grátis!</a></body>
</html>