ป้ายกำกับ: GoogleMaps

Google Maps: สร้างและลบ marker / overlayGoogle Maps: สร้างและลบ marker / overlay

ในฐานะ System Specialist และ Senior Architect การแสดงผลข้อมูลทางภูมิศาสตร์ (Geospatial Data) บนแพลตฟอร์มอย่าง Google Maps นั้น ไม่ได้หมายถึงการเขียนโค้ด API เพียงอย่างเดียว แต่หัวใจสำคัญคือการจัดการข้อมูลต้นทาง (Source of Truth) ที่มีประสิทธิภาพสูง

เมื่อพูดถึงการสร้าง (Create) การแสดงผล (Read) และการลบ (Delete) Marker หรือ Overlay ต่างๆ เราต้องอาศัยระบบฐานข้อมูลที่แข็งแกร่งอย่าง PostgreSQL โดยเฉพาะการใช้ส่วนขยายเชิงพื้นที่ (PostGIS) เพื่อให้สามารถจัดเก็บและจัดการพิกัด (Latitude/Longitude) ได้อย่างแม่นยำและเป็นระบบ

หลักการจัดการ Marker และ Overlay ด้วย PostgreSQL

ในมุมมองของสถาปัตยกรรมระบบ (System Architecture) Marker แต่ละตัวบนแผนที่เปรียบเสมือน Record หรือแถวข้อมูลในตารางฐานข้อมูล การทำ Overlays หรือการแสดงกลุ่มข้อมูลจึงเป็นการ Query ข้อมูลหลายชุดพร้อมกัน การจัดการนี้จะถูกดำเนินการผ่านคำสั่ง SQL หลัก 3 คำสั่ง คือ INSERT, SELECT, และ DELETE

1. การสร้าง Marker (CREATE/INSERT)

เราต้องกำหนดตารางเพื่อเก็บข้อมูลพิกัดและรายละเอียดของ Marker ต่างๆ โดยใช้ PostGIS เพื่อรับรองความถูกต้องของข้อมูลเชิงพื้นที่

SQL

-- 1. สร้างตารางสำหรับเก็บข้อมูล Marker
CREATE TABLE IF NOT EXISTS map_markers (
    marker_id SERIAL PRIMARY KEY,
    marker_name VARCHAR(255) NOT NULL,
    geom GEOMETRY(Point, 4326) NOT NULL
);

-- 2. เพิ่มข้อมูล Marker ใหม่ (แทนที่ด้วยพิกัดจริง)
INSERT INTO map_markers (marker_name, geom) VALUES 
('Hospital A', ST_SetSRID(ST_MakePoint(100.53, 13.76), 4326)),
('Hospital B', ST_SetSRID(ST_MakePoint(100.55, 13.74), 4326));

2. การดึงข้อมูลเพื่อแสดงผล (READ/SELECT)

เมื่อ Frontend (JavaScript) ต้องการแสดงผล Marker บนแผนที่ จะต้องเรียกใช้คำสั่ง SELECT เพื่อดึงข้อมูลทั้งหมดที่ยัง Active อยู่

SQL

-- ดึงข้อมูล Marker ทั้งหมดเพื่อส่งไปยัง API
SELECT marker_id, marker_name, ST_AsGeoJSON(geom) FROM map_markers;

3. การลบ Marker (DELETE)

หากข้อมูล Marker นั้นถูกยกเลิกหรือลบออกจากระบบ จะใช้คำสั่ง DELETE โดยอ้างอิงจาก Primary Key เพื่อรักษาความสมบูรณ์ของข้อมูล (Data Integrity)

SQL

-- ลบ Marker ที่มี ID เท่ากับ 2
DELETE FROM map_markers WHERE marker_id = 2;

บทสรุป: บทบาทของ PostgreSQL ในการจัดการ Geo-Data

การใช้ PostgreSQL ร่วมกับ PostGIS ในการจัดการ Marker และ Overlay ไม่เพียงแต่ช่วยให้การจัดเก็บข้อมูลมีประสิทธิภาพเท่านั้น แต่ยังรับประกันว่าข้อมูลพิกัดทั้งหมดจะถูกจัดการอย่างเป็นมาตรฐาน ทำให้การเรียกใช้ API จากฝั่ง Client (เช่น Google Maps JavaScript API) มีความเสถียรและเชื่อถือได้สูงสุด การออกแบบฐานข้อมูลที่ถูกต้องจึงเป็นรากฐานสำคัญของการพัฒนาแอปพลิเคชัน GIS ระดับองค์กร