🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

7 total messages Started by wizard Tue, 16 Jun 2009 06:15
Algorytm Line Marge
#11993
Author: wizard
Date: Tue, 16 Jun 2009 06:15
5 lines
1177 bytes
Witam
Szukam algorytmu Line marge (łączenie elemenów liniowych) w C++
Znalazłem na GEOS-ie, ale wchodzia tablica wektorów x,y,z a ja potrzebuję
jeszcze na wektorze jakiś wskaźnik (np. atrybut), oczywiście z wyjściem.
Może ktoś miał podobny problem i wie jak go rozwiązać?
Re: Algorytm Line Marge
#11994
Author: Mateusz Loskot
Date: Tue, 16 Jun 2009 11:23
18 lines
1609 bytes
"wizard" <gggg@wp.pl> wrote in message 
news:h17dhg$5or$1@nemesis.news.neostrada.pl...
> Witam
> Szukam algorytmu Line marge (��czenie elemen�w liniowych) w C++
> Znalaz�em na GEOS-ie, ale wchodzia tablica wektor�w x,y,z a ja potrzebuj�
> jeszcze na wektorze jaki� wska�nik (np. atrybut), oczywi�cie z wyj�ciem.
> Mo�e kto� mia� podobny problem i wie jak go rozwi�za�?


Jakie atrybuty?

To operacja na geometrii, więc nie kumam po co Ci atrybuty opisowe.

p.s. Popraw kodowanie wiadomości na iso-8859-2 albo utf-8
-- 
Mateusz Loskot, http://mateusz.loskot.net
pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
C++ FAQ: http://parashift.com/c++-faq-lite 
Re: Algorytm Line Marge
#11995
Author: wizard
Date: Tue, 16 Jun 2009 12:19
3 lines
1176 bytes
ok ale musze miec przynajmniej identyfikatory
obiektów aby odtworzyc ich atrybuty opisowe
np. laczenie drog ale tak by pamietac ich numery po zlaczeniu
Re: Algorytm Line Marge
#11996
Author: Mateusz Loskot
Date: Tue, 16 Jun 2009 12:54
32 lines
2337 bytes
"wizard" <gggg@wp.pl> wrote in message 
news:h182rs$7mc$1@nemesis.news.neostrada.pl...
> ok ale musze miec przynajmniej identyfikatory
> obiekt�w aby odtworzyc ich atrybuty opisowe
> np. laczenie drog ale tak by pamietac ich numery po zlaczeniu


GEOS to biblioteka do geometrii obliczeniowej.
Geometria obliczeniowa nic nie wie o elementach GIS, jak powiązanie
geometrii z atrybutami opisowymi. GEOS nie jest biblioteką GIS.
(Podobnie jak CGAL - http://www.cgal.org/ czy inne GGL - 
http://trac.osgeo.org/ggl/)

Natomiast OGR z GDAL (http://gdal.org/ogr) jest to GIS. OGR z GDAL używa 
GEOS do
operacji geometrycznych. I tak klasa OGRFeature powiązuje geometrię z 
atrybutami opisowymi.

Jeśli masz dwa obiekty OGRFeature reprezentują Twoje dwie drogi, to
możesz na nich zaaplikować na nich operację union (OGRGeometry::Union)
i np. utworzyć nowy obiekt OGRFeature który reprezentuje nową drogę
powstałą z poprzednich o numerach takich a takich.

W skrócie, na bazie egzampla z OGR, sam sobie implementujesz
wsparcie dla powiązania atrybutów z geometrią (albo używasz OGRFeature),
i w tej implementacji używasz GEOS jedynie do operacji na geometriach.

Pozdrawiam
-- 
Mateusz Loskot, http://mateusz.loskot.net
pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
C++ FAQ: http://parashift.com/c++-faq-lite 
Re: Algorytm Line Marge
#11997
Author: wizard
Date: Wed, 17 Jun 2009 05:45
41 lines
2739 bytes
Dzięki za obszerne wyjaśnienia
to jest dla mnie bardzo pomocne
i tego właśnie szukałem
pozdrawiam



Użytkownik "Mateusz Loskot" <mateusz@loskot.net> napisał w wiadomości 
news:h184lk$d6i$1@inews.gazeta.pl...
> "wizard" <gggg@wp.pl> wrote in message 
> news:h182rs$7mc$1@nemesis.news.neostrada.pl...
>> ok ale musze miec przynajmniej identyfikatory
>> obiekt?w aby odtworzyc ich atrybuty opisowe
>> np. laczenie drog ale tak by pamietac ich numery po zlaczeniu
>
>
> GEOS to biblioteka do geometrii obliczeniowej.
> Geometria obliczeniowa nic nie wie o elementach GIS, jak powiązanie
> geometrii z atrybutami opisowymi. GEOS nie jest biblioteką GIS.
> (Podobnie jak CGAL - http://www.cgal.org/ czy inne GGL - 
> http://trac.osgeo.org/ggl/)
>
> Natomiast OGR z GDAL (http://gdal.org/ogr) jest to GIS. OGR z GDAL używa 
> GEOS do
> operacji geometrycznych. I tak klasa OGRFeature powiązuje geometrię z 
> atrybutami opisowymi.
>
> Jeśli masz dwa obiekty OGRFeature reprezentują Twoje dwie drogi, to
> możesz na nich zaaplikować na nich operację union (OGRGeometry::Union)
> i np. utworzyć nowy obiekt OGRFeature który reprezentuje nową drogę
> powstałą z poprzednich o numerach takich a takich.
>
> W skrócie, na bazie egzampla z OGR, sam sobie implementujesz
> wsparcie dla powiązania atrybutów z geometrią (albo używasz OGRFeature),
> i w tej implementacji używasz GEOS jedynie do operacji na geometriach.
>
> Pozdrawiam
> -- 
> Mateusz Loskot, http://mateusz.loskot.net
> pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
> C++ FAQ: http://parashift.com/c++-faq-lite 
Re: Algorytm Line Marge
#11998
Author: wizard
Date: Wed, 17 Jun 2009 06:57
51 lines
3000 bytes
Ale jeszcze jedno wyjasnienie
w GEOS mam cos takiego

 LineMerger lm;
 lm.add(geoms);
 vector<LineString *> *mls = lm.getMergedLineStrings();

i sprawa prost bo dostaje zlaczone geometrie dla obiektow liniowych

w GDAL -u tego nie widze

a metoda Union (z tego co wyczytalem) sluzy do laczenia obszarow
czy bilbioteke geos nalezy podlaczyc do gdal ?
nie bardzo wiem jak to ugryzc



Użytkownik "Mateusz Loskot" <mateusz@loskot.net> napisał w wiadomości 
news:h184lk$d6i$1@inews.gazeta.pl...
> "wizard" <gggg@wp.pl> wrote in message 
> news:h182rs$7mc$1@nemesis.news.neostrada.pl...
>> ok ale musze miec przynajmniej identyfikatory
>> obiekt?w aby odtworzyc ich atrybuty opisowe
>> np. laczenie drog ale tak by pamietac ich numery po zlaczeniu
>
>
> GEOS to biblioteka do geometrii obliczeniowej.
> Geometria obliczeniowa nic nie wie o elementach GIS, jak powiązanie
> geometrii z atrybutami opisowymi. GEOS nie jest biblioteką GIS.
> (Podobnie jak CGAL - http://www.cgal.org/ czy inne GGL - 
> http://trac.osgeo.org/ggl/)
>
> Natomiast OGR z GDAL (http://gdal.org/ogr) jest to GIS. OGR z GDAL używa 
> GEOS do
> operacji geometrycznych. I tak klasa OGRFeature powiązuje geometrię z 
> atrybutami opisowymi.
>
> Jeśli masz dwa obiekty OGRFeature reprezentują Twoje dwie drogi, to
> możesz na nich zaaplikować na nich operację union (OGRGeometry::Union)
> i np. utworzyć nowy obiekt OGRFeature który reprezentuje nową drogę
> powstałą z poprzednich o numerach takich a takich.
>
> W skrócie, na bazie egzampla z OGR, sam sobie implementujesz
> wsparcie dla powiązania atrybutów z geometrią (albo używasz OGRFeature),
> i w tej implementacji używasz GEOS jedynie do operacji na geometriach.
>
> Pozdrawiam
> -- 
> Mateusz Loskot, http://mateusz.loskot.net
> pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
> C++ FAQ: http://parashift.com/c++-faq-lite 
Re: Algorytm Line Marge
#11999
Author: Mateusz Loskot
Date: Wed, 17 Jun 2009 13:11
36 lines
2114 bytes
"wizard" <gggg@wp.pl> wrote in message 
news:h1a3ug$koh$1@atlantis.news.neostrada.pl...
> Ale jeszcze jedno wyjasnienie
> w GEOS mam cos takiego
>
> LineMerger lm;
> lm.add(geoms);
> vector<LineString *> *mls = lm.getMergedLineStrings();
>
> i sprawa prost bo dostaje zlaczone geometrie dla obiektow liniowych
>
> w GDAL -u tego nie widze

Pobierz z OGRGeometry geometrię w formie obiektu zjadliwego przez GEOS:

OGRGeometry::exportToGEOS

Pamiętaj, że dostajesz tu wskaźnik na GEOSGeometry, czyli "wraper" na
geometrię GEOS na poziomie GEOS C API.
Mergera używasz przez funkcję GEOSLineMerge, a więc używasz GEOS C API nie 
C++ API.

> a metoda Union (z tego co wyczytalem) sluzy do laczenia obszarow

Racja, umkneło mi.

> czy bilbioteke geos nalezy podlaczyc do gdal ?

Nie wiem skąd masz binaria GDAL, ale jesli to jedne z oficjalnych, to GEOS 
jest włączony

Pozdrawiam
-- 
Mateusz Loskot, http://mateusz.loskot.net
pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
C++ FAQ: http://parashift.com/c++-faq-lite 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads