GEOS เป็นไลบรารี C++ สำหรับดำเนินการกับเรขาคณิตเวกเตอร์สองมิติ โดยหลักแล้วจะเป็นพอร์ตของไลบรารี JTS Topology Suite Java มีอัลกอริธึมมากมายที่ใช้โดย PostGIS, แพ็คเกจ Shapely สำหรับ Python, แพ็คเกจ sf สำหรับ R และอื่นๆ
ข้อมูลเพิ่มเติมมีอยู่ที่หน้าแรกของโครงการ
พื้นที่เก็บข้อมูล Git อย่างเป็นทางการอยู่ที่ GitHub
ซีไอ | สถานะ | ซีไอ | สถานะ | ซีไอ | สถานะ |
---|---|---|---|---|---|
GitHub | เบสซี่ | เด็บบี้ | |||
GitLab CI | เบสซี่32 | วินนี่ | |||
เบอร์รี่ | โดรน | ||||
เบอร์รี่64 |
ดูไฟล์ติดตั้ง
ดูเพิ่มเติมที่บทช่วยสอน C API และบทช่วยสอน C++ API มีตัวอย่างโค้ดอยู่ในที่เก็บโค้ด
GEOS รับประกันความเสถียรในระยะยาวของ C API โดยทั่วไป C API ที่ออกต่อเนื่องกันอาจเพิ่มฟังก์ชันใหม่ แต่จะไม่ลบหรือเปลี่ยนแปลงประเภทหรือลายเซ็นฟังก์ชันที่มีอยู่ ไลบรารี C ใช้อินเทอร์เฟซ C++ แต่ไลบรารี C เป็นไปตามเวอร์ชันที่ไวต่อการเปลี่ยนแปลงของ ABI ปกติ ดังนั้นโปรแกรมที่ลิงก์กับไลบรารี C เท่านั้นควรทำงานได้โดยไม่ต้องลิงก์ใหม่เมื่อมีการอัปเกรด GEOS ด้วยเหตุนี้ เราจึงแนะนำให้ใช้ C API สำหรับซอฟต์แวร์ที่มีจุดมุ่งหมายให้เชื่อมโยงแบบไดนามิกกับการติดตั้งระบบของ GEOS
โปรแกรม geos-config
สามารถใช้เพื่อกำหนดแฟล็กคอมไพเลอร์และลิงก์เกอร์ที่เหมาะสมสำหรับการสร้างเทียบกับไลบรารี C:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
ฟังก์ชันทั้งหมดของ C API พร้อมใช้งานผ่านไฟล์ส่วนหัว geos_c.h
เอกสารประกอบสำหรับ C API มีให้ผ่านทางความคิดเห็นในไฟล์ส่วนหัว geos_c.h
ตัวอย่างการใช้งาน C API สามารถพบได้ในไดเร็กทอรีตัวอย่าง
อินเทอร์เฟซ C++ ไปยัง GEOS มอบ API ที่เป็นธรรมชาติมากขึ้นสำหรับโปรแกรม C++ รวมถึงฟังก์ชันเพิ่มเติมที่ยังไม่เปิดเผยใน C API อย่างไรก็ตาม นักพัฒนาที่ตัดสินใจใช้อินเทอร์เฟซ C++ ควรทราบว่า GEOS ไม่ได้รับประกันความเสถียรของ API หรือ ABI ของ C++ API ระหว่างการเปิดตัว การเปลี่ยนแปลงที่เสียหายใน 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
หากต้องการจัดรูปแบบโค้ดของคุณให้เป็นสไตล์ที่ต้องการ ให้ใช้เวอร์ชัน astyle ที่รวมอยู่ในซอร์สทรี:
tools/astyle.sh <yourfile.cpp>
ดูเอกสารประกอบใน tests/README.md
geosop
- CLI สำหรับ GEOS เอกสารอยู่ใน util/geosop/README.md