GEOS هي مكتبة C++ لتنفيذ العمليات على الأشكال الهندسية المتجهة ثنائية الأبعاد. وهو في الأساس منفذ لمكتبة JTS Topology Suite Java. فهو يوفر العديد من الخوارزميات التي تستخدمها PostGIS، وحزمة Shapely لـ Python، وحزمة sf لـ R، وغيرها.
مزيد من المعلومات متاحة على الصفحة الرئيسية للمشروع.
مستودع Git الرسمي موجود في GitHub.
سي.آي | حالة | سي.آي | حالة | سي.آي | حالة |
---|---|---|---|---|---|
جيثب | بيسي | ديبي | |||
جيتلاب سي | بيسي32 | ويني | |||
بيري | دروني | ||||
بيري64 |
انظر ملف التثبيت.
راجع أيضًا البرنامج التعليمي لـ C API والبرنامج التعليمي لـ C++ API. توجد أمثلة للتعليمات البرمجية في مستودع التعليمات البرمجية.
يعد نظام GEOS باستقرار طويل المدى لواجهة برمجة تطبيقات C. بشكل عام، قد تضيف الإصدارات المتعاقبة من واجهة برمجة التطبيقات C وظائف جديدة ولكنها لن تزيل أو تغير الأنواع الحالية أو توقيعات الوظائف. تستخدم مكتبة C واجهة C++، لكن مكتبة C تتبع إصدار ABI العادي الحساس للتغيير، لذلك يجب أن تعمل البرامج التي ترتبط فقط بمكتبة C دون إعادة الارتباط عند ترقية GEOS. لهذا السبب، يوصى باستخدام واجهة برمجة تطبيقات C للبرامج التي تهدف إلى ربطها ديناميكيًا بتثبيت نظام GEOS.
يمكن استخدام برنامج geos-config
لتحديد علامات المترجم والرابط المناسبة للبناء على مكتبة C:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
جميع وظائف C API متاحة من خلال ملف الرأس geos_c.h
.
يتم توفير الوثائق الخاصة بواجهة برمجة تطبيقات C عبر التعليقات الموجودة في ملف الرأس geos_c.h
. يمكن العثور على أمثلة استخدام C API في دليل الأمثلة.
توفر واجهة C++ لنظام GEOS واجهة برمجة تطبيقات أكثر طبيعية لبرامج C++، بالإضافة إلى وظائف إضافية لم يتم الكشف عنها في واجهة برمجة تطبيقات C. ومع ذلك، يجب على المطورين الذين يقررون استخدام واجهة C++ أن يدركوا أن GEOS لا يعد باستقرار API أو ABI لواجهة برمجة تطبيقات C++ بين الإصدارات. لا يتم عادةً الإعلان عن التغييرات العاجلة في C++ API/ABI أو تضمينها في ملف NEWS.
سيتم تغيير اسم مكتبة C++ في كل إصدار ثانوي.
يمكن استخدام برنامج geos-config
لتحديد علامات المترجم والرابط المناسبة للبناء على مكتبة C++:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
قد يتم إصدار تحذير للمترجم عند البناء على مكتبة C++. لإزالة تحذير المترجم، قم بتعريف USE_UNSTABLE_GEOS_CPP_API
في مكان ما في البرنامج.
تتوفر وظائف GEOS شائعة الاستخدام في ملف رأس geos.h
يمكن الوصول إلى الوظائف الأقل شيوعًا عن طريق تضمين رؤوس للفئات الفردية، على سبيل المثال #include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
.
#include <geos.h>
يمكن العثور على أمثلة استخدام C++ في دليل الأمثلة.
لدى GEOS روابط بعدة لغات، راجع صفحة الروابط.
يمكن إنشاء وثائق API باستخدام Doxygen. لا يتم تضمين الوثائق في البناء الافتراضي. لبناء الوثائق، قم بتشغيل:
cmake -DBUILD_DOCUMENTATION=YES
cmake --build . --target docs
لتنسيق التعليمات البرمجية الخاصة بك في النمط المطلوب، استخدم إصدار النمط المضمن في شجرة المصدر:
tools/astyle.sh <yourfile.cpp>
راجع الوثائق في الاختبارات/README.md.
geosop
- CLI لنظام GEOS. الوثائق موجودة في util/geosop/README.md.