| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2007 16:45:00
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
Um de meus sistemas gera o seguinte no google maps:
o problema é o seguinte: Nem sempre as coberturas estão classificadas nessa ordem. E para que eu consiga fechar o poligono corretamente, precisa
ser ordenado... no Banco de Dados, pode ser que esteja 3-1-4-2-6-5... E entao o poligono fica todo cagado...
Eu percebi que posso ordenar de acordo com o ângulo... partindo de qqer ponto, posso fazer a ordem certa buscando sempre o proximo ponto
que tem o menor ângulo em relação ao anterior... mas nao conheço a fórmula matemática que pode ser aplicado aqui.
alguem pode me ajudar?
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2007 16:48:50
|
CintiaDR
JavaEvangelist
![[Avatar]](/images/avatar/48b508b64892bdf1d3a44e6de12e146a.jpg)
Membro desde: 01/10/2007 06:49:30
Mensagens: 476
Localização: Curitiba - PR
Offline
|
Creio que vc quer o algoritmo do fecho convexo, isso?
Tenta aí o google por fecho convexo, em inglês é Convex Hull.
Quer dizer, resolve só as partes convexas, daí teria que calcular o polígono para os demais pontos que não são limites.
Eu me lembro vagamente de isso sem simples.....
This message was edited 3 times. Last update was at 14/11/2007 16:55:20
|
Faça Perguntas Inteligentes - NÃO me pergunte como
PelaMorDeQualquerCoisa, o GUJ não é penico! Google é seu amigo! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2007 16:55:49
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
bom... deve ser algo parecido com isso...
no meu caso nao há pontos internos, a nao ser o ponto central.
e os pontos estao em coordenadas de latitude e longitude... sendo que o centro do eixo cartesiano é o ponto central... partindo dai era so começar por qer ponto e ir achando os menores ângulos subsequentes...
sei lá
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2007 10:01:47
|
CintiaDR
JavaEvangelist
![[Avatar]](/images/avatar/48b508b64892bdf1d3a44e6de12e146a.jpg)
Membro desde: 01/10/2007 06:49:30
Mensagens: 476
Localização: Curitiba - PR
Offline
|
Olha só, me passaram um mini material do nosso professor de geometria computacional:
http://www.inf.ufpr.br/andre/geom/geom.html
Numa dessas, algum dos algoritmos pode te ajudar....
|
Faça Perguntas Inteligentes - NÃO me pergunte como
PelaMorDeQualquerCoisa, o GUJ não é penico! Google é seu amigo! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2007 10:43:56
|
fsquadro
GUJ Master
![[Avatar]](/images/avatar/9a4d6e8685bd057e4f68930bd7c8ecc0.png)
Membro desde: 10/07/2006 17:19:04
Mensagens: 1197
Localização: Florianópolis - SC
Offline
|
Fábio,
Da onde saiu esse polígono? De um shapefile? Ou alguém digitou as coordenadas e ele foi plotado no mapa?
Bom, caso ele alguem tenha digitado as coordenadas, você deverá fazer uma validação, pois um polígono deve ter pelo menos 4 pares de coordenadas e a primeira sempre deve ser igual a última.
Dependendo do que você está utilizando como banco de dados, eu sugiro a você utilizar o suporte espacial do banco. Caso seja o PostgreSQL, você pode utilizar o PostGIS, e no Oracle o Oracle Spatial, ou Oracle Locator.
Espero ter ajudado.
|
"Coisas boas estão dentro de pequenos arquivos .jar"
Fernando Quadro
Blog
twitter
LinkedIn
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2007 10:48:46
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
O polígono é originado a partir de uma consulta feita no banco de dados, que retorna os pontos de "cobertura" da torre (o ponto central)
que o usuario cadastrou no banco. Na verdade, no sistema ele só associa aquela torre às coberturas, pois ja existe o cadastro das localidades
com sua devidas coordenadas.
Então eu vo plotando as linhas no maps e no final traço o polígono em volta. Mas o problema tava no fato de que elas podem vir em qqer ordem,
ai o poligono ficava todo cagado, em forma de estrela por exemplo.
Resolvi com a função Math.atan2 do javascript. Depois fiz um bubblesort no array e pronto =D
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/03/2009 01:50:52
|
Jokabeludoido
JavaEvangelist
Membro desde: 23/08/2008 15:34:07
Mensagens: 305
Offline
|
Eu tô com esse mesmo problema...
Consegui calcular o fecho/envelope convexo de uma nuvem de pontos, o que me dá os pontos limites dessa nuvem...Só que não sei odená-los, de modo que eu consiga plotar o contorno do polígono...Esse problema me parecia um tanto trivial até eu ter que resolvê-lo...
|
|
|
 |
|
|