ย้อนไปสู่พื้นฐานงานสำรวจ (Back to the basic)
ผมเคยบอกกันไว้ในบล็อกในบทความก่อนหน้านี้ว่าได้พัฒนาแอพพื้นฐานงานสำรวจ ชื่อเดิมที่ตั้งกันมาคือ SuperCOGO จากนั้นเปลี่ยนชื่อเป็น SurveyStar COGO สุดท้ายแล้วเปลี่ยนชื่อมาเป็น SurveyStar Calculator ในที่สุด เพราะว่าตัวแอพเองมีมากกว่า COGO



ภาษาและเครื่องมือพัฒนาโปรแกรม (Dart & Flutter)
ใช้ภาษาดาร์ทกับฟลัตเตอร์ (Dart & Flutter) ที่เป็นเครื่องไม้เครื่องมือในการพัฒนาโปรแกรม เดิมเป็นของกูเกิ้ลและปล่อยผ่านเป็น open-source ในกาลต่อมา จากที่ใช้ภาษาดาร์ทและฟลัตเตอร์พัฒนาแอพแรก Ezy Geo Pro และต่อด้วย SurveyStar Calculator ใช้เวลาพัฒนาแอพละหนึ่งปี รวมสองแอพเป็นสองปี ใช้เวลาพัฒนาแต่ละแอพนาน เนื่องจากมีงานประจำ

สองปีสำหรับภาษาดาร์ทและฟลัตเตอร์ถือว่าผ่านร้อนผ่านหนาวมาแล้ว จากที่จับตอนแรกๆแทบกระอักเลือดเพราะ concept ของภาษามันต่างภาษาที่ผมเคยใช้กันมาเช่น ไพทอน ปาสคาล หรือซี ตัวภาษาดาร์ทเองก็ไม่ได้ยากเกินไปนัก แต่มากระอักเลือดที่ตัวฟลัตเตอร์ตัวเขียน GUI ผ่านมาสองปีถือว่าสอบผ่าน ถึงยังไม่กระจ่างนักกับบางส่วนของภาษาและเครื่องมือตัวนี้ แต่พอเอาตัวรอดได้ ส่วน editor สำหรับเขียนโปรแกรมใช้ VS Code
หน้าตาของแอพ (User Interface)
หน้าแรกของแอพจะเป็นลักษณะโมดูล จัดเรียงเป็นหมวดหมู่ดังนี้
- Basic survey เป็นพื้นฐานงานสำรวจเช่นกำหนดค่าพิกัดสองค่า หาระยะทางและอะซิมัท หรือกำหนดค่าพิกัดมาสามจุด สามารถหามุมราบได้
- Offset solutions เป็นพื้นฐานการออฟเซ็ทจุดต่างๆหรือออฟเซ็ททั้งเส้นตรง และมีโมดูลพิเศษคือ Pile Array Generator ที่สามารถสร้างค่าพิกัดของเสาเข็มกลุ่มได้ ตามรูปแบบที่เลือกและกำหนดระยะห่างและขนาดเสาเข็มได้
- Circle solutions เป็นพื้นฐานการหาตำแหน่งจุดศูนย์กลางวงกลม จากข้อมูลที่มีเช่นทราบจุดบนวงกลมสามจุดหรือมากกว่าสามจุดที่ใช้การคำนวณหาพิกัดจุดวงกลมแบบ least-squares
- Curve solutions เป็นงานคำนวณโค้งทางทั้งดิ่งและราบ โดยโค้งราบจะมีทั้งโค้งวงกลมและสไปรัล
- Intersection solutions เป็นพื้นฐานการหาจุดตัดระหว่างเส้นตรงกับเส้นตรง เส้นตรงกับวงกลม และวงกลมกับวงกลม
- Miscellanous เช่นคำนวณหาพื้นที่จากจุด คำนวณหาจุดเล็งสกัดย้อน
คลิปสอนวิธีการใช้งาน
ผมจัดทำคลิปสอนวิธีการใช้งานแบบสั้นๆ อยู่ภายในโมดูล ผู้ใช้สามารถแตะไอคอนรูปยูทูปและเล่นได้ โดยคลิปสอนวิธีการใช้งานจะถูกโฮสต์อยู่ที่ youtube.com



คลิปรวมมิตร
เป็นการนำคลิปสอบการใช้งานมาเรียงกันแบบการ์ดต่อๆกัน คลิปสอนการลบข้อมูล การจัดเก็บข้อมูล (save) ภายในแอพเพื่อนำมาใช้ใหม่ การจัดเก็บข้อมูลภายนอกแอพ การก๊อปปี้และวาง (copy & paste) ข้อมูล input และ output ในคลิปบอร์ด



รูปแบบการป้อนข้อมูล คำนวณและแสดงผลลัพธ์
แนวทางการใข้งานแต่ละโมดูลหรือฟีเจอร์ หน้าแรกจะเป็นการป้อนข้อมูล Input เมื่อปัดไปหน้าสองจะเป็นหน้าคำนวณโดยการกดแตะที่ไอคอนรูปประแจ Resolve ผลลัพธ์จะออกมา จากนั้นต้องการดูรูปผลลัพธ์ก็ปัดไปหน้า Plot



การบันทึกข้อมูลและเรียกใช้ภายในแอพ
ข้อมูลแต่ละชุดสามารถจัดเก็บภายในเพื่อเรียกมาใช้คำนวณทีหลังได้ หมายเหตุ ไม่จัดเก็บข้อมูลแยกเป็นจุด แต่จะจัดเก็บข้อมูลทั้งหมด






การบันทึกข้อมูล input & output เข้าจัดเก็บไฟล์ภายนอกแอพ
ข้อมูลที่ป้อนเข้าไปหรือข้อมูลที่ได้จากผลลัพธ์สามารถจัดเก็บเป็น text file ได้ ไม่ว่าจะจัดเก็บเข้าไว้ในพื้นที่ของโทรศัพท์หรือไดรว์จำพวกคลาวด์เช่น Google drive, One drive หรือ iCoud เป็นต้น สำหรับรุ่นถัดๆไปอาจจะเก็บข้อมูลเข้าฟอร์แมตยอดนิยมอย่าง excel






การตั้งค่า (Settings)
การตั้งค่าได้แก่เลือกธีมทั้งมืดหรือสว่าง รวมทั้งปรับทศนิยมของตัวเลขประเภทต่างเช่นจำนวนทศนิยมของค่าพิกัด ค่าระดับ



รุ่นสำหรับไอโอเอส
รุ่นสำหรับไอโอเอส (iOS) จะตามหลังแอนดรอยด์มาห่างๆ เนื่องจากข้อกำหนดต่างๆของแอปเปิลที่จะให้แอพผ่านรีวิวจากเขาค่อนข้างจุกจิกมากกว่ากูเกิ้ล ต้องใช้เวลาทำนานกว่า
ราคา
ถ้าต้องการใช้ทุกฟิเจอร์หรือทุกโมดูลก็ต้องแอคทิเวทหรือ subscription ซึ่งจะมีราคาหนึ่งเดือน ครึ่งปี และหนึ่งปี ราคาขนาดนี้ถ้าเป็นที่ยุโรปหรืออเมริกาไม่แพง ผมพยายามจะปรับราคาใหม่ในรุ่นต่อไปให้ราคาลดลงสำหรับประเทศทางเอเซียเช่นบังคลาเทศ ไทย หรือสปป.ลาวในลำดับถัดไป แต่ก็ตระหนักกันไว้ว่าของฟรีและดีไม่มีในโลกนี้ และอีกอย่างผู้พัฒนาแอพเองก็ต้องกินต้องใช้เหมือนกัน ถ้ามีกำลังทรัพย์พอก็อุดหนุนกันได้ครับ



ตลาดเป้าหมาย
แอพตัวนี้จะวางขายทั่วโลก 175 ประเทศเนื่องจากวิชาการสำรวจเป็นมาตรฐานสากลเดียวกัน ความต่างอาจจะมีบ้างเช่นบางที่ยังใช้อะซิมัทกวาดจากทิศใต้ ซึ่งผมคิดว่าใช้กันน้อยเลยยังไม่ได้ใส่ตัวเลือกนี้ การเรียงลำดับแบบ Easting, Northing ก็ยังไม่ได้ใส่เช่นเดียวกัน
ดาวน์โหลดและติดตั้งบนแอนดรอยด์
สามารถใช้มือถือแอนดรอยด์ไปดาวโหลดได้ที่ google play store รักชอบก็อุดหนุนกันได้ครับ
ใช้ได้ปนะโยาชน์กับงานคำนวณช่างสำรวจ
ขอบคุณมากๆครับ