การใช้ Google Apps Script เพื่อดึงข้อมูลตำแหน่งโดยใช้ Maps.newGeocoder()


การใช้ Google Apps Script เพื่อดึงข้อมูลตำแหน่งโดยใช้ Maps.newGeocoder()

Google Apps Script เป็นเครื่องมือที่ช่วยให้เราสามารถพัฒนาโปรแกรมเสริม (Add-ons) หรือสร้างแอปพลิเคชันที่ใช้งานร่วมกับ Google Workspace ได้อย่างง่ายดาย หนึ่งในฟีเจอร์ที่มีประโยชน์มากคือการทำงานกับแผนที่และตำแหน่งโดยใช้ Maps.newGeocoder() สำหรับการแปลงพิกัด (Latitude, Longitude) เป็นที่อยู่จริง (Reverse Geocoding)


ฟังก์ชัน Maps.newGeocoder()

ฟังก์ชันนี้เป็นส่วนหนึ่งของ Google Maps Services ใน Google Apps Script ที่ช่วยให้คุณสามารถ:

  • แปลงพิกัดตำแหน่งเป็นข้อมูลที่อยู่ (Reverse Geocoding)
  • ปรับแต่งผลลัพธ์ เช่น ภูมิภาคและภาษา

ตัวอย่างการใช้งาน Maps.newGeocoder()

ดึงข้อมูลที่อยู่จากพิกัดตำแหน่ง

ฟังก์ชันตัวอย่างด้านล่างจะรับค่าพิกัด ละติจูด (Latitude) และ ลองจิจูด (Longitude) และส่งคืนข้อมูลที่อยู่ในรูปแบบข้อความ (Formatted Address) พร้อมระบุชื่อเมืองและประเทศ

function getLocationDetails(latitude, longitude) {
// ใช้ Maps.newGeocoder เพื่อดึงข้อมูล Reverse Geocoding const response = Maps.newGeocoder() .setRegion('en') // กำหนดภูมิภาค (เช่น 'en' สำหรับภาษาอังกฤษ) .setLanguage('en') // กำหนดภาษา .reverseGeocode(latitude, longitude); // ดึงข้อมูลที่อยู่จากพิกัด // ตรวจสอบผลลัพธ์ if (response.results && response.results.length > 0) { const formattedAddress = response.results[0].formatted_address; // ที่อยู่เต็ม const addressComponents = response.results[0].address_components; let city = ''; let country = ''; // วนลูปเพื่อดึงข้อมูลชื่อเมืองและประเทศ addressComponents.forEach(component => { if (component.types.includes('locality')) { city = component.long_name; // เมือง } if (component.types.includes('country')) { country = component.long_name; // ประเทศ } }); return { city, country, fullAddress: formattedAddress }; // คืนค่าข้อมูล } else { throw new Error('ไม่พบข้อมูลตำแหน่งสำหรับพิกัดที่กำหนด'); } } // ฟังก์ชันทดสอบ function testGetLocationDetails() { const latitude = 13.7563; // ตัวอย่างพิกัด (กรุงเทพฯ) const longitude = 100.5018; try { const location = getLocationDetails(latitude, longitude); Logger.log(`City: ${location.city}, Country: ${location.country}, Full Address: ${location.fullAddress}`); } catch (e) { Logger.log(`Error: ${e.message}`); } }

อธิบายการทำงาน

1. Maps.newGeocoder()

  • เรียกใช้ฟังก์ชันเพื่อทำงานกับ Geocoding
  • สามารถปรับภูมิภาค (setRegion()) และภาษา (setLanguage()) ได้

2. reverseGeocode(latitude, longitude)

  • แปลงพิกัดตำแหน่งเป็นข้อมูลที่อยู่โดยละเอียด

3. ดึงข้อมูลเมืองและประเทศ

  • ใช้ address_components เพื่อระบุส่วนประกอบของที่อยู่ เช่น เมือง (locality) และประเทศ (country)

ผลลัพธ์ที่ได้

เมื่อรันฟังก์ชัน testGetLocationDetails คุณจะได้ข้อมูลที่อยู่ในรูปแบบ:

City: Bangkok, Country: Thailand, Full Address: Bangkok, Thailand

ประโยชน์ของการใช้ Maps.newGeocoder()

  • สะดวก: ไม่ต้องตั้งค่า Google Maps API Key เพิ่มเติม
  • ประหยัดเวลา: ใช้งานง่ายด้วยโค้ดเพียงไม่กี่บรรทัด
  • ความแม่นยำ: ข้อมูลที่ได้รับจาก Google Maps มีความน่าเชื่อถือและอัปเดตเสมอ

การนำไปใช้งาน

ฟังก์ชันนี้เหมาะสำหรับ:

  • ระบบติดตามตำแหน่ง (Location Tracking)
  • ระบบแจ้งที่อยู่ (Address Notification) เช่น แอปพลิเคชันจัดส่งสินค้า
  • การบันทึกข้อมูลตำแหน่งผู้ใช้ในฟอร์มหรือฐานข้อมูล

หมายเหตุ

  1. การใช้ Maps.newGeocoder() มีข้อจำกัดเรื่อง โควต้า (Quota) ตรวจสอบเพิ่มเติมได้ที่ Google Apps Script Quotas.
  2. หากต้องการปรับแต่งข้อมูลเพิ่มเติม เช่น รูปแบบที่อยู่ หรือภาษา สามารถปรับค่าใน setRegion() และ setLanguage() ได้ตามความต้องการ



แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า