2009-06-25 9 views
6

Jakie są zalecane ramy do manipulowania danymi przestrzennymi w C++?Jakie są zalecane ramy do manipulowania danymi przestrzennymi w C++?

Szukam obiektu wielokąta, obiektu punktu i niektórych operacji, takich jak połączenie, przecięcie, odległość i obszar. Muszę wprowadzić współrzędne w WGS84 (lon, lat) i uzyskać obszar w km kwadratowych.

Wolałbym wolny/open source framework, ale jestem otwarty na sugestie.

Edycja: Niestety, potrzebuję rozwiązania niezgodnego z GPL. LGPL jest w porządku.

Odpowiedz

3

GEOS to open source (LGPL) C++ geometria/silnik topologii. Może ci odpowiadać?

Przydatne miejsca do wyszukiwania tych rzeczy to useful article na stronie O'Reilly, a także OSGeo, która jest kolaboracją wspierającą oprogramowanie geoprzestrzenne typu open source.

0

W zależności od tego, jak skomplikowane będą te obliczenia, warto rozważyć napisanie własnego. Jeśli tylko robisz obszar, który może być twoją najlepszą opcją dla szybkości i braku wzdęcia.

w innym przypadku najlepiej jest wybrać Geographic Foundation Class (GFC) library.

+0

Dzięki za wskaźnik do GFC. Niestety potrzebuję rozwiązania niezgodnego z GPL, więc wyjaśniłem moje pytanie. –

0

To nie jest wyczerpujące i tyle co pytasz na wysokim poziomie, ale za to geodezyjny przekształca można użyć NGA za doskonałą GEOTRANS Biblioteka:

http://earth-info.nga.mil/GandG/geotrans/

który pozwoli Ci konwertować pomiędzy rzeczami jak WGS84 lat/długi i lokalny kartezjański układ współrzędnych. Kod C jest dobrze przetestowany, udokumentowany i jest własnością publiczną.

2
  • CGAL Open Source Projekt zapewnia łatwy dostęp do wydajnych i niezawodnych algorytmów geometrycznych w postaci z biblioteki C++. CGAL służy w różnych dziedzinach wymagających geometryczne obliczeń, takich jak: Komputer grafiki, wizualizacji naukowych, komputerowego wspomagania projektowania i modelowania, geograficznych systemów informacyjnych, biologii molekularnej, obrazowania medycznego, robotyki i planowania ruchu, siatki generacji , metody numeryczne.

  • Ogólna biblioteka geometrii (geometrylibrary.geodan.nl, obecnie w "podglądzie 4") zapewnia ogólną implementację algorytmów geometrii, pracując z geometriami zdefiniowanymi przez użytkownika. Algorytmy zawierają dobrze znane i często potrzebne algorytmy, takie jak punkt w wielokącie, obszar wielokąta, odległość od punktu do punktu, odległość między punktami, obcinanie linii i wycinanie wielokątów, wypukłe kadłuby. Zawiera również algorytmy transformacji, projekcje map i algorytmy selekcji. Oprócz algorytmów biblioteka udostępnia klasy geometrii, które mogą być używane, ale ogólne algorytmy nie od nich zależą. (Zaproponowano umieszczenie w Zwiększ)

1

GEOS na geometrii modelu i GDAL/OGR do poboru danych przestrzennych biblioteki, który obsługuje Rasters i Vectors.

Korzystając z tych bibliotek, będziesz w stanie obsługiwać różne układy współrzędnych (np. Przekształcanie z/do WGS84), ponieważ oba z nich używają pod maską Proj.4. Aby znaleźć odległości w metrach, możesz przekształcić z WGS84 w coś, co używa mierników takich jak UTM.

3

Polecam również Generic Geometry Library, który niedawno został reviewed i ostatecznie przyjęty do kolekcji Boost C++ Libraries. Jak uwzględniono w Boost, GGL nazywa się teraz Boost.Geometry, a dokładniej: Boost.Geometry aka GGL, Ogólna Geometria Library.

Inne przydatne narzędzia

  • ORFEO Toolbox (aka OTB) - biblioteka algorytmu
  • MetaCRS przetwarzania obrazu - projekt obejmujący kilka występów oraz koordynować technologii systemowych związanych.
  • libgeotiff do manipulacji podeszwa GeoTIFF
Powiązane problemy