RRevX#RevUpChargeOn

ช่องค้นหาสถานที่ภาษาไทย: ทำอย่างไรให้พิมพ์ "รพ.ราม" หรือ "BTS อารีย์" แล้วเจอ

อัปเดต 10 ต.ค. 2569 · อ่าน 5 นาที · ทีมงาน RRevX

These articles are currently available in Thai only.

RRevX Maps API: แผนที่ + เส้นทาง ไทย/ลาว ครึ่งราคา Googleฟรี 10,000 ครั้งทุกเดือน ไม่ต้องใส่บัตร · จ่ายเป็นบาท รวม VAT มีใบกำกับภาษีช่วงเปิดตัว: ทีมงานช่วยย้ายจาก Google Maps ให้ฟรี + ส่วนลดสำหรับลูกค้ารายแรกดูราคา →

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

คนไทยพิมพ์ค้นหาแบบนี้

ผู้ใช้พิมพ์ต้องการเจอทำไมยาก
รพ.รามาธิบดีโรงพยาบาลรามาธิบดีตัวย่อ
BTS อารีย์สถานีอารีย์ชื่อในข้อมูลไม่มีคำว่า BTS
เซ็นทรัล ลาดพร้าวเซ็นทรัลลาดพร้าวเว้นวรรคไม่ตรงกัน
ICONSIAMไอคอนสยามชื่ออังกฤษ ข้อมูลเป็นภาษาไทย
สุวรรณภูมิท่าอากาศยานสุวรรณภูมิมีร้านเล็ก ๆ ชื่อ "สุวรรณภูมิ" ตรงกว่าแต่ไม่ใช่ที่ที่ต้องการ
Patuxayประตูชัย เวียงจันทน์สะกดได้หลายแบบ ข้อมูลเป็นภาษาลาว

หลัก 5 ข้อ

  1. ทำให้ข้อความเป็นรูปเดียวกันก่อนเทียบ ตัดเว้นวรรค เครื่องหมาย วรรณยุกต์ และตัวการันต์ ทั้งคำค้นและชื่อในฐานข้อมูล "เซ็นทรัล ลาดพร้าว" กับ "เซ็นทรัลลาดพร้าว" จะกลายเป็นข้อความเดียวกัน
  2. ขยายตัวย่อทั้งสองฝั่ง รพ. = โรงพยาบาล, ม. = มหาวิทยาลัย, รร. = โรงเรียน, BTS/MRT/รถไฟฟ้า = สถานี, ท่าอากาศยาน = สนามบิน
  3. เก็บชื่ออื่นของสถานที่ ชื่อไทย อังกฤษ ลาว ชื่อเล่น และชื่อเดิม ให้ค้นได้ทุกชื่อแต่แสดงชื่อหลักชื่อเดียว
  4. จัดอันดับด้วยความสำคัญ ไม่ใช่แค่ตัวอักษรตรง สนามบิน สถานี ห้าง โรงพยาบาล ต้องขึ้นก่อนร้านที่ชื่อตรงกว่า และสถานที่ใกล้ผู้ใช้ขึ้นก่อนที่ไกล
  5. เติมคำขณะพิมพ์อย่างประหยัด รอผู้ใช้หยุดพิมพ์ราว 250 มิลลิวินาทีก่อนส่ง ยกเลิกคำขอเก่า และนับเงินเป็นรอบการค้นหา (session) ไม่ใช่ทุกตัวอักษร

ผลทดสอบของ RRevX Maps API

ข้อมูลสถานที่ไทยและลาว 731,096 แห่ง (Overture Maps อัปเดตทุกเดือน) ใช้หลักทั้ง 5 ข้อข้างบน ทดสอบเมื่อ 10 ต.ค. 2569 ด้วยคำค้น 17 คำในตารางชุดเดียวกับที่ใช้ในแอป RRevX Ride: สถานที่ที่ถูกต้องขึ้นอันดับ 1 ครบ 17/17 ห่างจากตำแหน่งจริงไม่เกิน 300 เมตร · เวลาค้นในฐานข้อมูลขณะพิมพ์ p95 38 มิลลิวินาที

สิ่งที่ยังค้นไม่ได้: บ้านเลขที่และที่อยู่ที่ไม่ใช่สถานที่ (ให้ผู้ใช้ปักหมุดแทน) · หมู่บ้านเล็กหรือร้านเปิดใหม่ที่ยังไม่อยู่ในข้อมูล

ตัวอย่างโค้ดเติมคำขณะพิมพ์

let session = crypto.randomUUID(), ctrl, timer;

input.addEventListener('input', () => {
  clearTimeout(timer);
  timer = setTimeout(async () => {
    ctrl?.abort(); ctrl = new AbortController();
    const p = new URLSearchParams({ q: input.value, session, focus: `${lng},${lat}`, key: PUBLIC_KEY });
    const { results } = await fetch('https://api.rrevx.com/v1/autocomplete?' + p, { signal: ctrl.signal }).then((x) => x.json());
    show(results); // แสดง name + region.name + ใต้ผลค้นหาใส่ "Places © Overture Maps Foundation"
  }, 250);
});

function picked(place) { session = crypto.randomUUID(); /* place.lat, place.lng */ }

คำขอที่ใช้ session เดียวกันภายใน 3 นาทีนับเป็น 1 ครั้ง · ฟรี 10,000 ครั้งต่อเดือน เกินแล้ว 0.09 บาท รวม VAT · ใช้คีย์ rx_pub_ ที่ผูกโดเมนในหน้าเว็บได้ ดูรายละเอียดในเอกสาร API

ลองค้นหาสถานที่ฟรี

อ่านต่อ