กำเนิดคำว่า “COGO”
คำว่า “COGO” เป็นคำย่อรัสพจน์ที่เกิดจากการนำเอาอักษรย่อของชื่อเฉพาะหรือวลีมารวมกัน โดยคำว่า CO คำแรกย่อมาจาก Coordinate คำที่สอง GO ย่อมาจาก Geometry
ย้อนไปในราวปี 1950 – 1960 ศาสตราจารย์ชารล์ แอล มิลเลอร์ (Charles L. Miller) แห่ง MIT ได้พัฒนาโปรแกรมที่คำนวณพิกัดเรขาคณิต เรียกว่า COGO (Coordinate Geometry) เมื่อ 60 กว่าปีที่แล้ว ซึ่งถือว่าเป็นแก่นในการคำนวณเพื่อออกแบบงานถนนในยุคนั้น เพื่อแก้ปัญหาที่เกี่ยวข้องกับเรขาคณิตเช่นการเชื่อมโยงจุดเพื่อเป็นเส้นตรง เส้นโค้งประกอบกันเป็น Alignment
Back to the basic
ผมย้อนไปทำแอพที่เป็นพื้นฐานสำหรับงานช่างสำรวจอย่างจริงจัง เบื้องต้นตั้งชื่อว่า “SurveyStar COGO” ไปพลางๆก่อน ชื่อนี้แนะนำโดย chatGPT พัฒนาด้วยภาษาดาร์ท (Dart) และฟลัตเตอร์ (Flutter) โดยที่แอพสามารถรันได้บนแพลตฟอร์มแอนดรอยด์และไอโอเอส
ความยากง่ายของแอพนี้ งานคำนวณไม่ได้ใช้ไลบรารีเทพอะไรเลย การคำนวณใช้ไลบรารี math ธรรมดาเท่านั้น ต่างจากกับแอพโครงการก่อนหน้านี้คือ “Ezy Geo Pro” ที่ต้องไปเข็น PROJ มาคอมไพล์และบิวท์เอง ความยากของแอพนี้มาอยู่ที่การแสดงผลกราฟฟิค เนื่องจากไม่มีไลบรารีมาช่วยแบบ Matplotlib ของไพทอน ทำให้ต้องวาดรูปแสดงจุด เส้นตรง เส้นโค้งเอง ซึ่งออกมาแล้วพอทนดูได้
โมดูลหลักของแอพ
SurveyStar COGO จะแยกเป็นโมดูลเป็นกลุ่มๆเช่น พื้นฐานงานสำรวจ (Basic Survey), การแก้ปัญหาการออฟเซ็ท (Offset Solutions), การแก้ปัญหาวงกลม (Circle Solutions), การแก้ปัญหาโค้ง (Curve Solutions), การแก้ปัญหาจุดตัด (Intersection Solutions) และอื่นๆเช่นคำนวณหาพื้นที่ (Area) การคำนวณเล็งสกัดย้อน (Resection Solutions) เป็นต้น ซึ่งโมดูลหลักเหล่านี้จะมีการเพิ่มหรือลดในอนาคตตามความเหมาะสม
ทิศทางการใช้งานโมดูลในแอพ
เนื่องจากโมดูลในแอพจะมีหลายโมดูล ในการออกแบบทุกๆโมดูล ผมทำให้มีการป้อนข้อมูล (Input) อยู่หน้าแรก การคำนวณ (Resolve) ไว้อีกหน้าถัดไป และการวาด (Plot) อยู่หน้าสุดท้ายหรือเกือบสุดท้าย เพื่อให้ผู้ใช้คุ้นเคยและไม่สับสน ในรุ่นพัฒนานี้ยังไม่ได้ทำให้จัดเก็บข้อมูลได้ การใช้งานจะเป็นลักษณะ flow chart ดังนี้
Input => Resolve => Plot
ต้วอย่างโมดูลพื้นฐานงานสำรวจ (Basic Survey)
เริ่มจากตัวอย่าง 2 Points Bearing Dist โดยป้อนค่าพิกัดของจุดสองจุด จากนั้นจะทำการคำนวณย้อน (inverse) เพื่อหาระยะทางและอะซิมัท (มุมที่เส้นตรงเชื่อมสองจุดนี้กระทำกับทิศเหนือ) นับเป็นเรื่องพื้นฐานของช่างสำรวจที่จะต้องรู้ เข้าใจและคำนวณได้
ตัวอย่างโมดูลออฟเซ็ทเส้นตรง (Offset Line)
การออฟเซ็ทเส้นตรงนับว่าเป็นอีกหนึ่งที่ช่างสำรวจต้องใช้บ่อยหน้างาน ปกติถ้าใช้เครื่องคิดเลขจะมีโปรแกรมนี้ไว้เกือบทุกเครื่องกันทีเดียว เริ่มจากป้อนข้อมูลจุดสองจุดที่เชื่อมเป็นเส้นตรง จากนั้นกำหนดว่าต้องการออฟเซ็ทไปทั้งเส้นหรือบางส่วน (segment) ป้อนระยะออฟเซ็ท ป้อนสถานีจุดเริ่มจุดสิ้นสุดแล้วคำนวณ
ตัวอย่างโมดูลคำนวณโค้งราบ (Horizontal Curve)
โค้งราบนับว่าเป็นพื้นฐานของช่างสำรวจอีกอย่างที่ต้องรู้และเข้าใจกัน เป็นความสัมพันธ์ของจุดและเส้นโค้งของวงกลม ที่ประกอบกันเป็น alignment เนื่องจากการป้อนข้อมูลของโค้งราบมีหลายอย่างประกอบกัน ผมจีงได้ออกแบบหน้าป้อนข้อมูลเป็นสามหน้า เพื่อให้ดูง่ายไม่สับสน จากนั้นจะมีหน้าคำนวณแสดงผลและหน้า plot แสดงภาพกราฟฟิคให้ดู นอกจากนั้นยังมีหน้าสร้างตารางค่าพิกัดของโค้งราบให้ด้วย ผู้ใช้เพียงแต่ป้อนระยะ interval ให้รวมทั้งกำหนดออฟเซ็ทไปทางซ้ายหรือขวาหรือเป็น CL
ตัวอย่างโมดูลค่าพิกัดเสาเข็มแบบกลุ่ม (Pile Array Creator)
โมดูลนี้เป็นโมดูลพิเศษจัดอยู่ในเรื่องออฟเซ็ทจุด แต่ลักษณะการออฟฟเซ็ทจะเป็นแบบกลุ่มของเสาเข็มที่มี pattern ที่แน่นอนจากการกำหนดจำนวนเสาเข็ม ถึงแม้จำนวนเสาเข็มเท่ากันยังมีการวางตัวที่ต่างกัน (Frame type) ลองมาดูตัวอย่างกัน จากตัวอย่างมีเสาเข็มจำนวนเท่ากันคือ 7 ต้น แต่ทิศทางต่างกัน 30 องศาระหว่าง Frame type 1 และ Frame type 2
การตั้งค่า (Settings)
สามารถเปลี่ยนธีมมืดหรือธีมสว่างได้ ตั้งหน่วยเพื่อแสดงผลว่าเป็นเมตร (Metrics) หรือหน่วยฟุต (Imperial) เท่านั้นเมื่อเปลี่ยนหน่วยจะไม่มีการแปลงให้แต่อย่างใด ส่วนที่เหลือจะเป็นการตั้งจำนวนทศนิยม
ตัวอย่างการป้อนข้อมูล
ลึกๆแล้วผู้ใช้ทุกคนกับแอพใหม่ที่เพิ่งใช้หรือไม่เคยใช้มาก่อน จะกลัวป้อนข้อมูลผิด ผมเลยจัดทำตัวอย่างให้ทุกโมดูล ทุกโมดูลเมื่อเข้าไปแล้วจะสังเกตุเห็นด้านบนขวามีจุดสามจุดเรียงในแนวดิ่ง ถ้าจิ้มเข้าไปจะเห็นเมนูดรอปลงมา จะมีตัวอย่างให้เลือกได้ 2-5 ตัวอย่าง เมื่อเลือกแล้วสามารถคำนวณและแสดงผลได้ทันที ทำให้ผู้ใช้เห็นว่าข้อมูลต้องป้อนอะไรและรูปแบบของข้อมูล
กำหนดการออกรีลิส
สำหรับ Timeline ของแอพตัวนี้น่าจะต้นปีหน้า 2567 ถึงจะส่งไป Google play store และ App store ยังมีอะไรหลายอย่างที่ต้องพัฒนากันต่อ ได้แก่จัดเก็บข้อมูลของผู้ใช้ไว้ในแอพแบบโลคอล สามารถ export ข้อมูลออกในรูป pdf หรือ excel ได้ โปรดติดตามตอนต่อไปกันครับ
ขอสดุดีเลยครับ พี่ประจวบ
ขอบคุณครับจักรที่ติตตามกันมานาน โมเดลของแอพตัวนี้ให้ใช้ฟรีเป็น trial แล้วเก็บเงินครับ
ขอบคุณครับ
ขอบคุณครับ
ขอบคุณครับพี่สอที่ติดตาม
ติดตามผลงานครับ
ขอบคุณครับ