Olá pessoal
alguém sabe como posso gravar um objeto Poligono no banco de dados, usando sql ou hibernate?
t+
Olá pessoal
alguém sabe como posso gravar um objeto Poligono no banco de dados, usando sql ou hibernate?
t+
:shock:
ãh? vamos lá explique um pouco melhor se não parece mais uma pérola brincadeira mantenha o bom humor …
mas o que vc quer fazer mesmo ?
não entendi a pérola???
o que eu quero é gravar um objeto Poligono(aquele negocio com vários pontos ligados como um pentagono, hexagono. etc)
[quote=cvinicios]não entendi a pérola???
[/quote]
Tentei fazer o tópico fica meio divertida mas não tenho vocação. Vamos lá o que vc precisa fazer ?
Quem sabe eu consigo te ajudar…
[quote=cvinicios]
o que eu quero é gravar um objeto Poligono(aquele negocio com vários pontos ligados como um pentagono, hexagono. etc)[/quote]
Posta o código desse objeto .
tenho a entidade abaixo e um campo que extende java.awt.Poligon quero gravar a entidade no banco
@Table(name="MapaMunicipal")
public class MapaMunicipal {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public Long id;
public java.awt.Polygon mapa;
@Column(name="nome", length=100)
public String Nome;
....
porem não quero gravar como imagem
Para desenhar um poligono é necessário as coordenadas x e y insira elas no banco como uma string.
Depois é só recuperar essas coordenads e montar o poligono.
Polygon poly = new Polygon(x, y, pts);
screen.drawPolygon(poly);
Não sei se é a melhor solução mas já é uma solução.
eu já tenho os poligonos, só preciso saber como grava-los no banco de dados
Basta gravar as coordenadas no banco de dados.
No BD
duas colunas com campo String x e y e um id para identificar o poligono
o problema é que são muitas coordenadas, e o carregamento dessas cooredenas para reconstruir o objeto demora, eu quero gravar o objeto direta porque acho que o carregamento vai ser mais rápido
tem alguma forma de serializar e gravar no banco ou usar o hashcode do objeto?
Resolvido
serializei os objetos e gravei em um xml, agora o processamento é muito mais rápido, o que demora 30 segundos para processar agora demora 3 seg.
t+
[quote=cvinicios]Resolvido
serializei os objetos e gravei em um xml, agora o processamento é muito mais rápido, o que demora 30 segundos para processar agora demora 3 seg.
t+[/quote]
Ótimo ta aí uma coisa que eu não pensei usar um XSream(framework para XML) da vida pra faze esse trabalho.
Só não sabia que era mais rápido que um acesso a BD.
Este poligono é gerado por uma ferramenta GIS? Ou algum componente do ArcGIS?
Outra coisa muito importante, qual o banco de dados você pretende gravar esses dados geometricos?
O Hibernate permite a criação de UserTypes e existe o projeto SpatialEJB3 é que um UserType do tipo GeometryType.
Com o PostGis e Oracle Spatial fica mais ou menos assim:
@Type(type = ?org.postgis.hibernate.GeometryType?)
public Geometry getPoligono(){
return poligono;
}
Dá uma olhada nos sites:
http://www.hibernatespatial.org/hibernate-spatial-postgis/source-repository.html
http://trac.osgeo.org/postgis/wiki/UsersWikiSpatialEJB3