ArcObjects โครงสร้างพื้นฐานสำหรับการพัฒนาส่วนขยาย ArcGIS
สรุปใจความสำคัญ
- ArcObjects เป็นไลบรารีคอมโพเนนต์ COM ที่เป็นรากฐานของแพลตฟอร์ม ArcGIS
- เขียนขึ้นด้วยภาษา C++ และรองรับการพัฒนาด้วยภาษา C#, Java, Python และ Visual Basic
- ใช้กระบวนการ Query Interface (QI) ในการเข้าถึงคุณสมบัติและวิธีการของคลาสผ่านอินเทอร์เฟซ
ArcObjects คือสภาพแวดล้อมสำหรับการพัฒนาซอฟต์แวร์ที่อยู่ในตระกูลแอปพลิเคชัน ArcGIS ของบริษัท Esri โดยทำหน้าที่เป็นไลบรารีของคอมโพเนนต์ในรูปแบบ Component Object Model (COM) ซึ่งเป็นรากฐานสำคัญที่ใช้ในการสร้างแพลตฟอร์ม ArcGIS ทั้งหมด
สถาปัตยกรรมและการทำงาน
ArcObjects ถูกเขียนขึ้นด้วยภาษา C++ เป็นหลัก และเนื่องจาก ArcGIS ถูกสร้างขึ้นบน ArcObjects ทั้งหมด นักพัฒนาจึงสามารถปรับแต่งและขยายความสามารถของแพลตฟอร์ม ArcGIS ได้อย่างเต็มที่ผ่านการใช้งานบริการและขีดความสามารถของ COM
ด้วยมาตรฐาน COM ทำให้ ArcObjects สามารถทำงานร่วมกับภาษาโปรแกรมที่รองรับ COM ได้หลากหลาย เช่น:
- Visual Basic
- C#
- Visual Basic.NET
- Java
- Python
ข้อดีสำคัญของระบบ COM คือการอนุญาตให้คอมโพเนนต์สามารถนำกลับมาใช้ใหม่ได้ในระดับไบนารี (Binary level) ซึ่งหมายความว่านักพัฒนาไม่จำเป็นต้องเข้าถึงซอร์สโค้ด (Source code) ของ ArcObjects แต่สามารถเรียกใช้งานประเภทข้อมูล (Type) ต่างๆ ภายในระบบได้ โดยทราบเพียงหน้าที่การทำงานของประเภทข้อมูลนั้นๆ โดยไม่ต้องทราบรายละเอียดการนำไปใช้งานภายใน (Implementation details)
โมเดลข้อมูลและการติดต่อสื่อสาร
โมเดลข้อมูลของ ArcObjects ยึดตามมาตรฐาน COM ซึ่งช่วยให้สามารถบูรณาการและทำงานร่วมกับระบบหรือแอปพลิเคชันอื่นๆ ที่ใช้มาตรฐานเดียวกันได้อย่างมีประสิทธิภาพ
โครงสร้างของแพลตฟอร์ม ArcGIS ถูกสร้างขึ้นจากประเภทต่างๆ ใน ArcObjects เช่น คลาส (Classes), อินเทอร์เฟซ (Interfaces) และการกำหนดค่าแบบแจกแจง (Enumerations) โดยมีการใช้ COM interfaces ในการจัดระเบียบและสื่อสารคุณสมบัติ (Properties) และวิธีการ (Methods) ของคลาสต่างๆ
กระบวนการ Query Interface (QI)
ในการทำงานกับ COM class ของ ArcObjects การเข้าถึงคุณสมบัติและวิธีการจะทำผ่านอินเทอร์เฟซที่คลาสนั้นๆ นำไปใช้งาน (Implemented interfaces) เท่านั้น โดยใช้กระบวนการที่เรียกว่า Query Interface (QI)
คลาสหนึ่งคลาสใน ArcObjects มักจะมีอินเทอร์เฟซให้เลือกใช้งานได้หลายตัว ซึ่งช่วยเพิ่มความยืดหยุ่นในการใช้งาน แม้ว่าในขั้นตอนการสร้างออบเจกต์ (Instantiation) จะสามารถใช้อินเทอร์เฟซได้เพียงตัวเดียว แต่หลังจากนั้นนักพัฒนาสามารถใช้กระบวนการ QI เพื่อเรียกใช้อินเทอร์เฟซเพิ่มเติมที่ออบเจกต์นั้นรองรับได้
คำถามที่พบบ่อย
ArcObjects คืออะไร?
ArcObjects คือไลบรารีของคอมโพเนนต์ COM ที่ใช้เป็นโครงสร้างพื้นฐานในการสร้างซอฟต์แวร์ ArcGIS ของ Esri ช่วยให้นักพัฒนาสามารถสร้างส่วนขยายหรือปรับแต่งการทำงานของ ArcGIS ได้
นักพัฒนาจำเป็นต้องมีซอร์สโค้ดของ ArcObjects หรือไม่?
ไม่จำเป็น เนื่องจาก COM อนุญาตให้คอมโพเนนต์ถูกนำมาใช้ซ้ำในระดับไบนารี นักพัฒนาจึงสามารถใช้งานฟังก์ชันต่างๆ ได้โดยไม่ต้องเห็นซอร์สโค้ดภายใน
ภาษาโปรแกรมใดบ้างที่สามารถใช้กับ ArcObjects ได้?
ภาษาใดก็ตามที่รองรับมาตรฐาน COM เช่น C#, Visual Basic, Visual Basic.NET, Java และ Python
Query Interface (QI) ใน ArcObjects ทำหน้าที่อะไร?
QI คือกระบวนการที่ใช้ในการขอเข้าถึงอินเทอร์เฟซเฉพาะที่ออบเจกต์หนึ่งๆ รองรับ เพื่อให้สามารถเรียกใช้คุณสมบัติหรือวิธีการที่กำหนดไว้ในอินเทอร์เฟซนั้นได้
