GEOS adalah pustaka C++ untuk melakukan operasi pada geometri vektor dua dimensi. Ini pada dasarnya adalah port dari perpustakaan JTS Topology Suite Java. Ini menyediakan banyak algoritma yang digunakan oleh PostGIS, paket Shapely untuk Python, paket sf untuk R, dan lain-lain.
Informasi lebih lanjut tersedia di beranda proyek.
Repositori resmi Git ada di GitHub.
CI | Status | CI | Status | CI | Status |
---|---|---|---|---|---|
GitHub | ![]() | Bessie | Debbie | ||
GitLab CI | Bessie32 | Winnie | |||
beri | Dronie | ||||
Berrie64 |
Lihat file INSTALL.
Lihat juga tutorial C API dan tutorial C++ API. Ada contoh kode di repositori kode.
GEOS menjanjikan stabilitas jangka panjang dari C API. Secara umum, rilis C API yang berurutan dapat menambahkan fungsi baru tetapi tidak akan menghapus atau mengubah tipe atau tanda tangan fungsi yang sudah ada. Pustaka C menggunakan antarmuka C++, namun pustaka C mengikuti pembuatan versi normal yang peka terhadap perubahan ABI, sehingga program yang hanya tertaut ke pustaka C akan berfungsi tanpa menautkan ulang saat GEOS ditingkatkan. Oleh karena itu, disarankan untuk menggunakan C API untuk perangkat lunak yang dimaksudkan untuk dihubungkan secara dinamis ke instalasi sistem GEOS.
Program geos-config
dapat digunakan untuk menentukan flag compiler dan linker yang sesuai untuk dibangun dengan pustaka C:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
Semua fungsionalitas C API tersedia melalui file header geos_c.h
.
Dokumentasi untuk C API disediakan melalui komentar di file header geos_c.h
. Contoh penggunaan C API dapat ditemukan di direktori contoh.
Antarmuka C++ ke GEOS menyediakan API yang lebih natural untuk program C++, serta fungsionalitas tambahan yang belum diekspos di C API. Namun, pengembang yang memutuskan untuk menggunakan antarmuka C++ harus menyadari bahwa GEOS tidak menjanjikan stabilitas API atau ABI pada C++ API di antara rilis. Perubahan yang dapat menyebabkan gangguan pada C++ API/ABI biasanya tidak diumumkan atau disertakan dalam file NEWS.
Nama perpustakaan C++ akan berubah pada setiap rilis minor.
Program geos-config
dapat digunakan untuk menentukan flag compiler dan linker yang sesuai untuk dibangun dengan pustaka C++:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
Peringatan kompiler mungkin dikeluarkan saat membangun terhadap pustaka C++. Untuk menghapus peringatan kompiler, tentukan USE_UNSTABLE_GEOS_CPP_API
di suatu tempat dalam program.
Fungsionalitas GEOS yang umum digunakan tersedia di file header geos.h
Fungsionalitas yang kurang umum dapat diakses dengan menyertakan header untuk masing-masing kelas, misalnya #include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
.
#include <geos.h>
Contoh penggunaan C++ dapat ditemukan di direktori contoh.
GEOS memiliki penjilidan dalam banyak bahasa, lihat halaman penjilidan.
Dokumentasi API dapat dibuat menggunakan Doxygen. Dokumentasi tidak disertakan dalam build default. Untuk membuat dokumentasi, jalankan:
cmake -DBUILD_DOCUMENTATION=YES
cmake --build . --target docs
Untuk memformat kode Anda ke dalam gaya yang diinginkan, gunakan versi astyle yang disertakan dalam pohon sumber:
tools/astyle.sh <yourfile.cpp>
Lihat dokumentasi di tes/README.md.
geosop
- CLI untuk GEOS. Dokumentasi ada di util/geosop/README.md.