PlusMagi's Blog By Pitt Phunsanit Ai,Backend,Database Google Maps: สร้าง markers หลายตำแหน่ง

Google Maps: สร้าง markers หลายตำแหน่ง

การแสดงแผนที่ที่มีจุดสนใจ (Markers) หลายตำแหน่งเป็นฟังก์ชันพื้นฐานที่สำคัญในการพัฒนาแอปพลิเคชันเชิงภูมิศาสตร์ ไม่ว่าจะเป็นการทำแผนที่สาขาขององค์กร หรือการแสดงเครือข่ายโรงพยาบาล การใช้ Google Maps API เพื่อสร้าง Markers หลายจุดนั้นจำเป็นต้องอาศัยการจัดการข้อมูลพิกัด (Latitude และ Longitude) อย่างเป็นระบบ

ในฐานะ System Architect เราทราบดีว่าแหล่งข้อมูลที่น่าเชื่อถือและมีโครงสร้างที่ดีที่สุดคือฐานข้อมูลเชิงสัมพันธ์อย่าง PostgreSQL บทความนี้จะนำเสนอแนวทางที่ถูกต้องในการเตรียมข้อมูลพิกัดจำนวนมากจาก PostgreSQL เพื่อส่งไปยัง Google Maps API ให้สามารถแสดง Markers ได้อย่างมีประสิทธิภาพและยืดหยุ่น

🛠️ หลักการเตรียมข้อมูล Markers ด้วย PostgreSQL

แทนที่จะป้อนพิกัดแบบ Hardcode ในโค้ด JavaScript โดยตรง วิธีการที่ถูกต้องตามหลักสถาปัตยกรรมคือการจัดเก็บข้อมูลพิกัดทั้งหมดไว้ในตาราง (Table) ใน PostgreSQL ก่อน จากนั้นจึงใช้คำสั่ง SQL ในการดึงข้อมูลเหล่านั้นออกมาเป็นชุดข้อมูล (Array of Objects) ที่ API ต้องการ

สมมติว่าเรามีตารางชื่อ locations ที่เก็บข้อมูลสถานที่ต่างๆ ดังนี้:

SQL

-- 1. สร้างตารางสำหรับเก็บข้อมูลตำแหน่ง (Markers) </code>
CREATE TABLE locations (
    id SERIAL PRIMARY KEY,
    location_name VARCHAR(255) NOT NULL,
    latitude NUMERIC(10, 8) NOT NULL,
    longitude NUMERIC(11, 8) NOT NULL
);

-- 2. ใส่ข้อมูลตัวอย่าง (Markers 3 จุด)
INSERT INTO locations (location_name, latitude, longitude) VALUES
('โรงพยาบาล A', 13.7485809, 100.5832588),
('โรงพยาบาล B', 13.746166, 100.552348),
('โรงพยาบาล C', 13.7679658, 100.5345264);

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

SQL

-- 3. Query ข้อมูลทั้งหมดเพื่อส่งไปยัง API </code>
SELECT
    location_name,
    latitude,
    longitude
FROM
    locations;

ผลลัพธ์ที่ได้จากการ Query นี้คือชุดข้อมูลที่มีโครงสร้าง (Structured Data) ซึ่งสามารถนำไปวนลูป (Loop) ในฝั่ง Client-side (เช่น JavaScript) เพื่อสร้าง Object ของ Marker ได้อย่างง่ายดายและมีประสิทธิภาพสูง

🚀 ข้อดีของการใช้ PostgreSQL ในการจัดการ Markers

  • Scalability: สามารถรองรับ Markers ได้เป็นหลักพันหรือหลักแสนจุด โดยไม่กระทบต่อประสิทธิภาพของฐานข้อมูล
  • Data Integrity: การกำหนดชนิดข้อมูล (Data Type) เช่น NUMERIC ช่วยรับประกันความแม่นยำของค่าพิกัด
  • Maintainability: การแยกการจัดเก็บข้อมูล (PostgreSQL) ออกจากการแสดงผล (Google Maps API) ทำให้โค้ดมีความสะอาดและง่ายต่อการบำรุงรักษา

✅ บทสรุป

การสร้าง Markers หลายตำแหน่งบน Google Maps API ไม่ได้หมายถึงการเขียนโค้ดพิกัดจำนวนมาก แต่คือการออกแบบระบบที่สามารถดึงข้อมูลพิกัดจำนวนมากจากแหล่งที่มาที่เชื่อถือได้ PostgreSQL คือเครื่องมือที่สมบูรณ์แบบสำหรับการจัดการข้อมูลเชิงภูมิศาสตร์ในลักษณะนี้ การทำความเข้าใจวงจรตั้งแต่การจัดเก็บข้อมูล (CREATE/INSERT) ไปจนถึงการเรียกใช้ข้อมูล (SELECT) จะช่วยให้คุณสร้างระบบแผนที่ที่มีความเสถียรและพร้อมขยายตัวในอนาคตได้อย่างแท้จริง