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