Muito obrigado Gabriela.
Eu estava pesquisando mesmo sobre o Matrix pq tinha uma suspeita de
que uma solução seria por ele. Porém, a sua solução tira o trabalho do
servidor de converter os pontos e o transfere para o cliente flex, ou
seja, eu ainda continuo convertendo os pontos. Bem, mas como isso é
feito no cliente talvez o processamento seja mais rápido.
E ainda tem um outro problema, o que eu recebo do banco não são apenas
pontos, são geometrias mais complexas, como polígonos, linhas,
multipolígonos, etc
De qualquer forma vou testar seu código e comparar o desempenho.
Agradeço novamente por sua ajuda
[]'s
Damião
On 10 out, 10:39, gabriela perry <[EMAIL PROTECTED]> wrote:
> Ah...
> Eu tinha mesmo um palpite que não era tão fácil...
> Eu uso esta function aqui pra fazer isso:
>
> public static function
> transformCoordinates(matrixFrom:Matrix,origin:Point):Point{
> var affineTransform:Matrix;
>
> affineTransform = new Matrix(0,0,0,0,0,0);
> affineTransform.a=matrixFrom.a;
> affineTransform.d=matrixFrom.d;
> affineTransform.tx=matrixFrom.tx;
> affineTransform.ty=matrixFrom.ty;
>
> var ptA:Point= affineTransform.transformPoint(origin);
>
> return ptA;
> }
>
> Aqui vai um exemplo de como usar:
>
> var givenX:Number=20; //O que veio do banco
> var givenY:Number=20; //O que veio do banco
> var tempScale:Number=0.5; //A razão entre o tamanho original e o teu visual
> no Flex.
> var suaEscalaX:Number=1; //Isso se tu quiser usar essa função pra fazer zoom.
> Daí vais poder passar uma nova escala
> var suaEscalaY:Number=1;
>
> var origin:Point=new Point(givenX*tempScale, givenY*tempScale;
>
> var pt:Point= PointTransformation.transformCoordinates(new Matrix(suaEscalaX,
> 0,
> 0,
>
> suaEscalaY,
>
> seucontainer.x,
>
> seucontainer.y),
>
> origin);
>
> É mais ou menos isso. Se não funcionar, esse é o caminho que eu uso.
> Fora disso não consigo ajudar.
> Boa sorte :0)
>
> Gabriela Trindade Perry -http://www.gabriela.trindade.nom.br
>
>
>
> > Date: Fri, 10 Oct 2008 06:28:59 -0700
> > Subject: [flexdev] Re: Conversão de sistemas de coordenadas
> > From: [EMAIL PROTECTED]
> > To: [email protected]
>
> > Não é bem assim. O String é só um exemplo de como é feito no plugin
> > SVG.
> > O problema é que no flex vc só pode desenhar numa área que vai do
> > ponto (0,0) a (width, height). Mas as coordenadas do mapa que eu
> > recebo do banco estão numa área e escala diferentes do viewbox do
> > flex.
> > O que eu quero saber é se no flex é possível configurar a exibição de
> > um canvas para a área que representa o mapa sem precisar fazer
> > conversão de pontos. Por exemplo: se no banco de dados eu recebo a
> > latitude -40.243 e longitude -5.9971 eu preciso converter isso para
> > (252, 45) por exemplo, para poder visualizá-lo no flex. O problema é
> > que são muitos pontos e isso está causando perda de desempenho.
> > Gostaria de não precisar fazer essa conversão, pois eu já trabalhei
> > com SVG e isso era feito automaticamente.
>
> > On 10 out, 10:06, gabriela perry <[EMAIL PROTECTED]> wrote:
> > > Peraí: tu quer passar uma String como "-39.1772 5.8539 4.636 2.6862" e
> > > usar para posicionar um objeto?
> > > Direto não vai...
> > > Vais ter que repartir a String, sei lá, num Array, e usar isso pra passar
> > > os valores pra x, y, width e height
>
> > > Mas é isso a tua "Conversão de sistemas de coordenadas"?
> > > Achei que precissases converter um sistema em outro...
> > > Que bom que é só isso :0)
>
> > > Gabriela Trindade Perry -http://www.gabriela.trindade.nom.br
>
> > > > Date: Fri, 10 Oct 2008 05:39:37 -0700
> > > > Subject: [flexdev] Conversão de sistemas de coordenadas
> > > > From: [EMAIL PROTECTED]
> > > > To: [email protected]
>
> > > > Olá pessoal,
>
> > > > eu sou novo no flex e queria pedir a ajuda de vocês pra o seguinte
> > > > problema:
> > > > quero pegar as coordenadas espaciais de um banco de dados e montar o
> > > > mapa em um cliente flex. Porém essas coordenadas são negativas. Teria
> > > > como eu montar o mapa sem precisar converter cada ponto que eu recebo
> > > > do banco de dados?
>
> > > > No SVG isso é simples, bastando apenas configurar o viewBox que irá
> > > > exibir o mapa. Por exemplo viewBox="-39.1772 5.8539 4.636 2.6862",
> > > > onde -39.17 e 5.85 são as coordenadas do ponto superior esquerdo, os
> > > > outros são respectivamente largura e altura.
>
> > > > Teria como fazer algo semelhante no flex?
>
> > > _________________________________________________________________
> > > Invite your mail contacts to join your friends list with Windows Live
> > > Spaces. It's
> > > easy!http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friend...
>
> _________________________________________________________________
> Discover the new Windows
> Vistahttp://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---