_

Algorytm Line Marge

Archiwum grupy newsowej pl.comp.gis. Na razie tylko do czytania i przeszukiwania.

Algorytm Line Marge

Postprzez wizard » cze 16, 2009 08:15

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ć?
wizard
 

Re: Algorytm Line Marge

Postprzez Mateusz Loskot » cze 16, 2009 13:23

"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
Mateusz Loskot
 

Re: Algorytm Line Marge

Postprzez wizard » cze 16, 2009 14:19

ok ale musze miec przynajmniej identyfikatory
obiektów aby odtworzyc ich atrybuty opisowe
np. laczenie drog ale tak by pamietac ich numery po zlaczeniu
wizard
 

Re: Algorytm Line Marge

Postprzez Mateusz Loskot » cze 16, 2009 14:54

"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
Mateusz Loskot
 

Re: Algorytm Line Marge

Postprzez wizard » cze 17, 2009 07:45

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
wizard
 

Re: Algorytm Line Marge

Postprzez wizard » cze 17, 2009 08:57

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
wizard
 

Re: Algorytm Line Marge

Postprzez Mateusz Loskot » cze 17, 2009 15:11

"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
Mateusz Loskot
 


Powrót do pl.comp.gis

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników