11 คะแนน โดย GN⁺ 2025-04-25 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • Geocoding API ให้ความสามารถในการแปลง ที่อยู่ ↔ พิกัด และ reverse geocoding คือการนำพิกัดที่กำหนดไปจับคู่กับที่อยู่ถนน ซึ่งนำไปใช้ได้ในแอปพลิเคชันหลากหลายประเภท
  • เปรียบเทียบบริการ API หลัก 7 รายตามเกณฑ์ด้านราคา ปริมาณใช้งานฟรี และเงื่อนไขการใช้ข้อมูล
    • HERE, Google Maps, Azure Maps, OpenCage, TomTom Maps, LocationIQ, Nominatim
  • Google Maps และ Azure Maps มีราคาสูงและมีข้อจำกัดค่อนข้างมาก
  • LocationIQ และ OpenCage มีแพ็กเกจราคาแบบคงที่ที่ถูกและยืดหยุ่น โดยเฉพาะเมื่อใช้งานปริมาณมาก
  • TomTom และ HERE คิดค่าบริการตามปริมาณการใช้งานโดยไม่มีแพ็กเกจคงที่ เหมาะกับการใช้งานขนาดเล็กหรือไม่สม่ำเสมอ

Geocoding API คืออะไร?

  • Geocoding: แปลงที่อยู่ → พิกัดละติจูด/ลองจิจูด
  • Reverse geocoding: แปลงละติจูด/ลองจิจูด → ที่อยู่
  • กรณีใช้งานหลัก:
    • แสดงตำแหน่งบนแผนที่
    • ทำภาพข้อมูลจากข้อมูลลูกค้า
    • ใช้ข้อมูลพิกัดที่อยู่ในรูปภาพ
    • ฟังก์ชันค้นหาตามพื้นที่ (เช่น อีเวนต์ ร้านอาหาร)
  • การใช้ Geocoding API ช่วยให้สามารถติดตั้งฟังก์ชันเหล่านี้ได้อย่างง่ายดาย
  • ส่วนใหญ่รองรับทั้งการปรับรูปแบบที่อยู่และ reverse geocoding

เกณฑ์การเปรียบเทียบ

  • นโยบายราคา: ส่วนใหญ่คิดค่าบริการตามจำนวนคำขอ
  • ปริมาณใช้งานฟรี: อาจมีการจำกัดฟีเจอร์ หรือจำกัดจำนวนคำขอ
  • เงื่อนไขการใช้ข้อมูล:
    • อนุญาตให้ใช้เชิงพาณิชย์หรือไม่
    • มีข้อจำกัดว่าต้องแสดงบนแผนที่ใดหรือไม่
    • ต้องระบุแหล่งที่มาหรือไม่ เป็นต้น
  • ในบทความถัดไปจะเปรียบเทียบ ความแม่นยำ และ ประสิทธิภาพ ด้วย

ข้อมูลพื้นฐานเพื่อความเป็นกลาง

  • Superface ไม่มี Geocoding API ของตัวเอง
  • แต่มี OneSDK ซึ่งเป็นไคลเอนต์ API แบบโอเพนซอร์สที่ช่วยเชื่อม API หลายตัวผ่านอินเทอร์เฟซเดียว
  • ข้อมูลจะถูกส่งตรงไปยัง API โดยไม่ผ่านเซิร์ฟเวอร์ของ Superface
  • OneSDK ใช้งานได้ฟรีทั้งหมด และ เชื่อมต่อหลาย API พร้อมกันได้

สรุปลักษณะเด่นของแต่ละ API

  • HERE

    • ฟรี 1,000 ครั้งต่อวัน และใน Base Plan ฟรี 30,000 ครั้งต่อเดือน
    • สูงสุด 5M คำขอคิด $0.83/1,000 ครั้ง และสูงสุด 10M คำขอคิด $0.66/1,000 ครั้ง
    • ใช้งานเชิงพาณิชย์ได้ และมีความยืดหยุ่นด้านราคา
  • Google Maps Platform

    • มีเครดิต $200 ต่อเดือน ทำให้ใช้ฟรีได้ 40,000 ครั้ง
    • หลังจากนั้นคิด $5/1,000 ครั้ง และหากปริมาณมากคิด $4/1,000 ครั้ง
    • แสดงผลได้เฉพาะบน Google Maps และ ต้องระบุแหล่งที่มา
    • จำกัดที่ 50 คำขอต่อวินาที
  • Azure Maps

    • ฟรี 5,000 ครั้งต่อเดือน หลังจากนั้นคิด $4.50/1,000 ครั้ง
    • Geocoding: 500 คำขอต่อวินาที, Reverse: 250 คำขอต่อวินาที
    • เป็นหนึ่งใน แพ็กเกจที่แพงที่สุด ร่วมกับ Google
  • OpenCage

    • ฟรี: 2,500 ครั้ง/วัน, จำกัด 1 คำขอต่อวินาที
    • แบบเสียเงิน: $50/เดือน (10,000 ครั้ง/วัน), $1,000/เดือน (300,000 ครั้ง/วัน)
    • มี “soft limit”: ใช้เกินแล้วจะไม่ถูกตัดทันที
    • ไม่จำเป็นต้องระบุแหล่งที่มา และรองรับหลายสกุลเงิน
  • LocationIQ

    • ฟรี: 5,000 ครั้ง/วัน, ใช้เชิงพาณิชย์ได้ (แต่ต้องใส่ลิงก์แหล่งที่มา)
    • $49/เดือน (10,000 ครั้ง/วัน), $950/เดือน (1M ครั้ง/วัน → 30 ล้าน/เดือน)
    • มีต้นทุนต่อหน่วยต่ำที่สุด ($0.03/1,000 ครั้ง)
    • ใช้นโยบาย soft limit เช่นเดียวกัน
  • TomTom Maps

    • ฟรี: 2,500 ครั้ง/วัน
    • หลังจากนั้นคิด €0.50/1,000 ครั้ง (ประมาณ $0.54)
    • อนุญาตให้ใช้เชิงพาณิชย์ และไม่มีแพ็กเกจราคาแบบเหมาจ่าย
  • Nominatim

    • เป็น โอเพนซอร์ส API ที่อิงกับ OpenStreetMap
    • ฟรี แต่ อนุญาตเฉพาะการใช้งานที่ไม่ใช่เชิงพาณิชย์
    • สูงสุด 1 คำขอต่อวินาที และ ต้องระบุแหล่งที่มา
    • สามารถติดตั้งบนเซิร์ฟเวอร์ของตัวเองได้

สรุปการเปรียบเทียบราคา

  • การใช้งานขนาดเล็ก (ไม่เกิน 30,000 ครั้ง/เดือน)

    • HERE, Google Maps, TomTom, LocationIQ: อาจใช้ฟรีได้
    • Azure Maps: $112.5/เดือน
    • OpenCage: ฟรี หรือ $50/เดือน
  • การใช้งานระดับกลาง (100,000 ครั้ง/เดือน)

    • ถูกที่สุด: LocationIQ, TomTom ($16.2)
    • แพงที่สุด: Azure Maps ($427.5), Google Maps ($300)
  • การใช้งานปริมาณสูง (300,000 ครั้ง/เดือน)

    • ถูกที่สุด: LocationIQ ($49), TomTom ($121.5)
    • แพงที่สุด: Azure Maps ($1,327.5), Google Maps ($1,100)
    • HERE: $224.1
    • OpenCage: $50~$125

สรุป: แนะนำตามสถานการณ์

  • การใช้งานปริมาณสูง:
    • แพงที่สุด: Azure Maps, Google Maps
    • ถูกที่สุด: LocationIQ, OpenCage
  • ปริมาณใช้งานที่ยืดหยุ่น:
    • TomTom: ต้นทุนต่อหน่วยต่ำ ไม่มีแพ็กเกจเหมาจ่าย
  • หากต้องการโควตาฟรีสูง:
    • Google Maps (40,000 ครั้ง), HERE (30,000 ครั้ง)
  • หากต้องการต้นทุนต่อหน่วยดีที่สุด:
    • LocationIQ (รองรับได้ถึง 1M ครั้ง/วัน)
  • โปรเจกต์ส่วนตัวขนาดเล็ก/ไม่เชิงพาณิชย์:
    • Nominatim

เอกสารอ้างอิง

3 ความคิดเห็น

 
amada 2025-04-25

ถ้าทำเฉพาะพื้นที่ในประเทศเรา
GeoService ก็ค่อนข้างโอเคเลย

 
rtyu1120 2025-04-25

สิ่งที่ผมสงสัยที่สุดก็คือมันรองรับที่อยู่ในเกาหลีได้ดีแค่ไหน...

 
GN⁺ 2025-04-25
ความคิดเห็นจาก Hacker News
  • เอกสารนี้พูดถึงข้อกำหนดเรื่องการอ้างอิงแหล่งที่มา แต่ไม่ได้ตอบคำถามเกี่ยวกับ geocoding API ที่ผมสนใจที่สุด

    • สามารถเก็บพิกัดละติจูด/ลองจิจูดที่ API ส่งกลับมาไว้ถาวรในฐานข้อมูลของผม และนำไปใช้กับ point-in-polygon หรือคำสั่งค้นหาจุดที่ใกล้ที่สุดได้หรือไม่
    • สามารถนำพิกัดละติจูด/ลองจิจูดเหล่านี้ไปเผยแพร่ต่อผ่าน API ของผมได้หรือไม่
    • geocoding API ยอดนิยมหลายตัว (รวมถึง Google) ไม่อนุญาตให้ทำแบบนี้
    • เรื่องนี้จำกัดประโยชน์การใช้งานของ API อย่างมาก
    • OpenCage ดีมากด้วยเหตุผลนี้
    • "เก็บผลลัพธ์การทำ geocoding ได้มากเท่าที่คุณต้องการ เก็บผลลัพธ์ไว้ได้แม้ไม่ใช่ลูกค้าของเราก็ตาม"
  • สวัสดีครับ ผมคือ Ed หนึ่งในผู้ก่อตั้ง OpenCage

    • พูดตามตรง การเปรียบเทียบนี้เป็นการเปรียบเทียบตื้น ๆ ที่ดูแค่ราคาเท่านั้น
    • ราคาสำคัญก็จริง แต่ในฐานะคนที่ทำงานด้าน geocoding มากว่า 10 ปี มีอีกหลายปัจจัยที่ควรพิจารณาตามความต้องการของลูกค้า
    • ตัวอย่างเช่น คุณภาพ, เงื่อนไขการใช้ข้อมูล, การสนับสนุน, การเพิ่มคุณภาพข้อมูล, ความง่ายในการใช้งาน, เอกสารประกอบ, เงื่อนไขการชำระเงิน เป็นต้น
    • คำตอบเดียวของคำถามว่า "บริการ geocoding ไหนดีที่สุด" คือ "ขึ้นอยู่กับสถานการณ์"
    • บนเว็บไซต์ของเรามีคู่มือสำหรับผู้ซื้อ geocoding แบบครอบคลุม
    • ถ้าต้องการก็ติดต่อมาได้ แล้วผมจะบอกว่าบริการนี้เหมาะกับคุณหรือไม่
  • ดีใจที่ได้เห็นคอมเมนต์ดี ๆ เกี่ยวกับ API หลายตัวและความสามารถของมัน

    • ข้อมูลพื้นฐานเกี่ยวกับที่อยู่นั้นหาได้ยากมาก
    • เหตุผลที่ผู้ให้บริการ geocoding เชิงพาณิชย์ไม่ยอมให้เก็บข้อมูล ก็เพราะกังวลว่าผู้ใช้จะเก็บข้อมูลมากพอจนสร้าง geocoder ของตัวเองได้
    • เพื่อช่วยเรื่องนี้ เราจึงเริ่มกลุ่มชื่อ OpenAddresses
    • เป้าหมายคือค้นหาข้อมูลที่อยู่สาธารณะทั้งหมดทั่วโลก
    • API หลายตัวใช้ข้อมูลชุดนี้เป็นส่วนสำคัญของชุดข้อมูลที่ถูกพูดถึงในเธรดนี้
    • โครงการนี้ดำเนินมานานกว่า 10 ปีแล้ว แต่ก็คงจะดีถ้ามีคนช่วยค้นหาแหล่งข้อมูลที่อยู่อีกมากขึ้น
  • Photon เป็นคอมโพเนนต์ที่โฮสต์เองได้ซึ่งยังไม่ได้รับความสนใจเท่าที่ควร

    • มันใช้ข้อมูล geocoder ของ Nominatim จาก OSM และมีฐานข้อมูลให้ดาวน์โหลด, ฟีเจอร์ autocomplete และไฟล์ .jar ที่ติดตั้งได้
    • ถ้าคุณรับข้อจำกัดของข้อมูล OSM ได้ มันทั้งง่ายและเร็ว
  • วิธีทดสอบ geocoding API ที่ดีอย่างหนึ่งคือป้อน ZIP code ที่ใช้สำหรับ PO Box เท่านั้น

    • ตัวอย่างเช่น ถ้าป้อน 22313 แล้วมันคืนค่าตำแหน่งใกล้ Alexandria, VA ก็ถือว่าเป็น geocoding API ที่ใช้ได้
    • ถ้ามันไม่คืนค่าตำแหน่ง หรือคืนค่าเป็นที่อื่น ก็มีโอกาสสูงว่าจะเกิดปัญหาในงานจริง
  • OpenCage คุ้มค่าพอสมควรถ้าตรงกับ use case ของคุณ

    • แม้จะมีข้อจำกัด แต่ free tier และ rate limit ค่อนข้างใจกว้าง
    • อัตราส่วนราคา/ประสิทธิภาพ/คุณภาพยอดเยี่ยม
    • Ed Freyfogle มีความรู้ด้านภูมิสารสนเทศอย่างมากและเข้าถึงง่าย
    • เอกสารของเขายอดเยี่ยม และ API ก็เริ่มใช้งานได้ง่ายมาก
  • มีอีกทางเลือกหนึ่ง

    • ซื้อเซิร์ฟเวอร์ Docker ราคาถูก
    • ใช้ Docker ติดตั้งสแตก OSM/Nominatim
    • ด้วย Docker การตั้งค่าง่ายมาก
    • ต้นทุนคงที่และคาดการณ์ได้
    • รองรับทราฟฟิกได้ตามที่ต้องการ และแม้แต่ v-server ราคาถูกก็เพียงพอ
    • ไม่มีปัญหาความเป็นส่วนตัวจากบุคคลที่สาม
  • Geocodio ก็เป็นอีกตัวเลือกที่ดี

    • โดยเฉพาะเมื่อคุณต้องการประมวลผลแบบแบตช์
  • ผมเคยสำรวจบริการเหล่านี้ในปี 2019

    • ใช้ Azure Maps, MapQuest และ Nominatim ของ OpenStreetMap อยู่มาก
    • เลือก Nominatim เพราะข้อจำกัดด้านงบประมาณ
    • การทำให้รูปแบบที่อยู่เป็นมาตรฐานเป็นปัญหาใหญ่
  • หลังจากบทความนี้เผยแพร่ Stadia Maps ก็เปิดตัว geocoding API ของตัวเองและพัฒนาไปมาก

    • มันอิงกับ Pelias แต่ปรับปรุงประสิทธิภาพและความแม่นยำอย่างมากด้วยแหล่งข้อมูลเพิ่มเติม
    • ถ้ามีคำถาม ผมยินดีตอบ