Docs
สร้างที่กรุงเทพฯ · location data สำหรับประเทศไทย

ประเทศไทยทำ map API พัง และต้นทุนไปโผล่ที่งบ P&L

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

เลื่อนหน้าจอเพื่อซูมเข้า
เหตุผลทางธุรกิจ
ตัวเลขของคุณ ไม่ใช่ของเรา

ข้อมูลภูมิศาสตร์ที่ผิด กินเงินคุณเท่าไร
ในทุก ๆ เดือน

ที่อยู่ที่ระบบหาไม่เจอ ไม่ได้พังแบบเงียบ ๆ มันกลายเป็นสายที่ต้องโทรหาลูกค้า รอบส่งที่สอง คนขับที่จอดรอผิดซอย หรือออร์เดอร์ที่ไม่เคยเกิดขึ้นเลย

บริษัทส่วนใหญ่แบกต้นทุนก้อนนี้อยู่ โดยไม่เคยตั้งชื่อให้มัน

ประเมินความเสี่ยงจากที่อยู่ที่ใช้ไม่ได้
ที่อยู่ที่พลาด / เดือน2,000
ต้นทุน / เดือน฿240,000
ต้นทุน / ปี฿2,880,000

ค่าตั้งต้นเป็นเพียงตัวอย่าง ไม่ใช่ benchmark และยังไม่นับลูกค้าที่ไม่กลับมาอีกเลย ซึ่งมักเป็นตัวเลขที่ใหญ่กว่า

โลจิสติกส์ last-mileอีคอมเมิร์ซเว็บประกาศอสังหาฯเรียกรถขยายสาขาค้าปลีกงานบริการนอกสถานที่
คุณภาพข้อมูล
สัปดาห์ของทีม engineer ที่คุณไม่ต้องเสียอีก

ทีมคุณเลิกนั่งไล่จับคู่ชื่อสถานที่
ด้วยมือ

ดึงข้อมูลกรุงเทพฯ จากสามแหล่ง แล้วคุณจะได้สามเมือง: Bangkok, Krung Thep, Krung Thep Maha Nakhon, บางครั้งก็เป็น Bangkok Metropolis — โดยชื่อภาษาไทยอยู่คนละฟิลด์ และภาษาจีนหายไปเลย

ทุก join ที่เขียนบนสตริงพวกนี้คือบั๊กที่รอวัน release อยู่ ที่นี่ ทุก alias ชี้ไปที่ id ถาวรตัวเดียว

ลองดูส่งชื่อแบบไหนมาก็ได้
เลือกสถานที่ แล้วเลือกวิธีสะกดแบบมั่ว ๆ
คุณส่งมาBangkok
แปลงเป็นth:10
ประเภทprovince
ทางการ (th)กรุงเทพมหานคร
ทางการ (en)Bangkok
ทางการ (zh)曼谷
รหัสเขตปกครองTH-10
ชื่อพ้อง9 ชื่อ ผูกกับ id นี้

ทุกปุ่มด้านบนคือเรคอร์ดเดียวกัน ไม่มีการเดาสักนิด — ทั้งหมดเป็น alias ที่เก็บไว้จริง

Conversion
ลูกค้าทิ้งตะกร้าน้อยลง

ลูกค้าหาที่อยู่ของตัวเองเจอ
ตั้งแต่ครั้งแรก

ภาษาไทยไม่มีการถอดเป็นอักษรโรมันแบบเดียวที่ถูกต้อง Jatujak, Chatuchak และ Chatujak คือตลาดเดียวกัน Thonglor และ Thong Lo คือถนนเส้นเดียวกัน พอค้นแล้วไม่เจอ ลูกค้าจะพิมพ์ใหม่อีกครั้งเดียว — แล้วก็ไป

เราจับคู่จากเสียงของชื่อ วิธีสะกดที่ไม่เคยมีใครเขียนไว้ก็ยังไปตกที่สถานที่ที่ถูกต้อง

ลองดูลองสะกดผิดดูสิ
คุณพิมพ์Jatujak
จับคู่ได้ตลาดนัดจตุจักร
อักษรโรมันChatuchak Market
จีน乍都乍周末市场
ประเภทการจับคู่phonetic
ความมั่นใจ 1.00
เขตChatuchak

ไม่ได้เปิดตาราง alias เลย —Jatujakไม่ได้ถูกเก็บไว้ที่ไหนทั้งนั้น แต่ระบบจับคู่ได้จากเสียง

index ตัวเดียวกันนี้ขับเคลื่อน dropdown ที่ลูกค้าคุณเห็นจริง ๆ

ลองดูพิมพ์สองหรือสามตัวอักษร
การเข้าถึง
สามตลาด เชื่อมต่อครั้งเดียว

ลูกค้าไทย ต่างชาติ และจีน
จากเรคอร์ดเดียวกัน

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

ทั้งสามภาษาอยู่บนตัวสถานที่เอง ตั้งค่าภาษาครั้งเดียว แล้วชื่อ ที่อยู่ ขั้นตอนเส้นทาง และป้ายชื่อพื้นที่จะตามไปทั้งหมด

ลองดูสลับภาษา
place idpl_huaikhwang
ชื่อHuai Khwang
ที่อยู่Ratchadaphisek Rd, Huai Khwang, Bangkok 10310
เขตHuai Khwang
จังหวัดBangkok

เรคอร์ดเดียว id เดียว สามภาษา — เก็บไว้จริง ไม่ได้แปลตอน request

ป้ายชื่อบนแผนที่เปลี่ยนตามด้วย

งานปฏิบัติการ
ส่งของพลาดน้อยลง

หมุดที่ปักกลายเป็นที่อยู่
ที่คนขับใช้ได้จริง

ลูกค้าแชร์ตำแหน่งมา คนขับต้องการชื่อถนน แขวง รหัสไปรษณีย์ — เป็นภาษาไทย ในรูปแบบจ่าหน้าซอง ไม่ใช่การถอดเสียงจากภาษาอังกฤษที่เดาเอา ช่องว่างตรงนี้คือที่มาของการส่งซ้ำ

ลองดูคลิกตรงไหนก็ได้บนแผนที่
จุด13.73000, 100.56980
ที่อยู่Soi Sukhumvit 30, Watthana, Bangkok 10110
เขต (khet)Watthana
จังหวัดBangkok
รหัสไปรษณีย์10110
สถานที่ใกล้สุดPhrom Phong · 0 m

คลิกบนแผนที่เพื่อย้ายหมุด บรรทัดภาษาไทยคือรูปแบบจ่าหน้าซองจริง ไม่ใช่การถอดเสียงจากบรรทัดภาษาอังกฤษ

วางแผน
ETA ที่รับปากลูกค้าได้

เวลาเดินทางที่ตรงกับความจริง
บอกทีละเลี้ยว ไม่ใช่ลากเส้นตรง

ระยะทาง เวลา และขั้นตอน คำนวณบน geometry ที่จำแนกคลาสถนนแบบไทย — ETA ที่คุณโชว์ลูกค้า กับ SLA ที่คุณเซ็นกับคู่ค้า จึงมาจากตัวเลขชุดเดียวกัน

ลองดูคลิกเพื่อตั้งจุด B, shift-click เพื่อตั้งจุด A
Mo ChitSuvarnabhumi Airportกำลังหาเส้นทาง…
พื้นที่ให้บริการ
คิดเป็นนาที ไม่ใช่เดารัศมีตายตัว

เราให้บริการได้ถึงไหน
จากจุดนี้?

รัศมีบนแผนที่คือการเดาที่แต่งตัวมาเป็นข้อมูล — ห้ากิโลเมตรข้างทางด่วน กับห้ากิโลเมตรในซอย ไม่ใช่เรื่องเดียวกัน นี่คือ contour เวลาขับจริงจาก Valhalla ซึ่งเป็น routing engine ของเราเอง: 8, 15, 23 และ 30 นาที คำนวณบนโครงข่ายถนนชุดเดียวกับที่เพิ่งพาคุณไปในส่วนเส้นทางด้านบน

พื้นที่และจำนวนสถานที่ในแต่ละแถบ อ่านตรงจาก geometry ที่ Valhalla คืนมา — เป็นการคำนวณแบบ geodesic บนรูปหลายเหลี่ยมจริง ไม่ใช่การนับช่องจากกริดที่ทำขึ้นเอง เลื่อน slider แล้วทุกตัวเลขจะอัปเดตจาก contour เส้นเดียวกับที่วาดอยู่

ลองดูลากเพื่อเลือก contour, คลิกเพื่อย้ายจุดตั้งต้น
8 นาที — contour จาก Asok
8 นาทีกำลังโหลด…
15 นาทียังไม่โหลด
23 นาทียังไม่โหลด
30 นาทียังไม่โหลด

ทีละหนึ่ง contour เวลาขับจริงจาก Valhalla ที่ความละเอียดของ engine เอง แต่ละช่วงเวลาเป็นไฟล์ของตัวเอง ดึงมาเมื่อ slider เลื่อนไปถึง แล้วเก็บไว้ในหน่วยความจำหลังจากนั้น

ภาระโครงข่าย
คำนวณจากคลาสถนน

ภาระอยู่ตรงไหน
ไม่ใช่ traffic feed

ไม่มีใครเผยแพร่ปริมาณจราจรที่วัดจริงของประเทศไทย และคลังข้อมูลนี้เผยแพร่น้อยกว่านั้นอีก: เลเยอร์ถนนไม่มีจำนวนเลน ไม่มีความเร็วจำกัด สิ่งที่มันมีคือ การจำแนกคลาส — motorway, trunk, primary, secondary, tertiary, minor, service — กับ flag oneway ตรงที่มีคนแท็กไว้

รถบนแผนที่จึงคำนวณจากคลาสนั้นอย่างเดียว motorway มีรถมากกว่าและวิ่งเร็วกว่าซอย เพราะคลาสของมันบอกอย่างนั้น ไม่ใช่เพราะมีใครนับรถจริง ทิศทางเดินตาม tile ตรงที่ oneway ถูกตั้งไว้ และแยกสองทางตรงที่ไม่ได้ตั้ง

มันอ่านเป็นภาพรวมโครงข่ายได้ดี — เส้นทางไหนแบกเมืองไว้ ฟลีตควรกระจุกตรงไหน แต่มันอ่านเป็นข้อมูลสำหรับ route ไม่ได้ และเราจะไม่ขายมันแบบนั้น

จำลองใส่คลาสถนนเข้า ได้จำนวนรถออกมา
ความหนาแน่นและความเร็วตามคลาสถนน
คลาสต่อ กม.กม./ชม.บนจอ
motorway2688
trunk2172
primary1748
secondary1237
tertiary830
minor522
service212
ถนนในเฟรม
รถที่วาด
ทิศทางoneway จาก tile ตรงที่แท็กไว้
ปริมาณที่วัดจริงไม่มี — ไม่มีฟิลด์นี้อยู่จริง

คำนวณจากการจำแนกคลาสถนนอย่างเดียว tile ไม่มีจำนวนเลน ไม่มีความเร็วจำกัด และไม่มีจำนวนรถ ตัวเลขด้านบนจึงเป็นสิ่งที่คลาสบอกเป็นนัย ไม่ใช่สิ่งที่แยกนั้นทำจริง

ความสูง
ความสูงที่สำรวจจริง ไม่ใช่เดาจากจำนวนชั้น

เมืองมีความสูง
และ tile รู้อยู่แล้ว

ต่างจากส่วนด้านบน ตรงนี้ไม่มีอะไรที่จำลองขึ้นมา footprint ของอาคารในคลังข้อมูลมีฟิลด์ render_heightและหลายรายการยังมี render_min_height — ระดับพื้นที่ปริมาตรเริ่มต้น แผงนี้นับทั้งสองค่าแบบสด ๆ จาก tile ที่โหลดอยู่ใต้กล้อง

ฟิลด์ที่สองนั่นแหละคือเหตุผลที่ควรเอียงกล้องดู คิง เพาเวอร์ มหานคร กลางเฟรม มาถึงในรูปปริมาตรราวสามสิบก้อนซ้อนกัน ไล่จาก 270 ม. ถึง 315 ม. ซึ่งเป็นที่มาของเงาขั้นบันไดแบบพิกเซลของมัน — กล่องเดียวที่ดันขึ้นความสูงเดียวจะทำรูปทรงนั้นหายไป หมุดอ่าน footprint ที่สูงที่สุดในเฟรมจากเรคอร์ดโดยตรง ไม่มีตัวเลขไหนในส่วนนี้ที่พิมพ์ใส่ด้วยมือ

จาก tileอ่านความสูงจริง ไม่ได้ประมาณ
footprint ในเฟรม
ที่มี render_height
สูงสุด
ความสูงมัธยฐาน
ปริมาตรซ้อนชั้น
ฟิลด์ที่ใช้render_height, render_min_height

สองแอตทริบิวต์บนเลเยอร์อาคาร ดันขึ้นตามค่าที่มีจริง จำนวนปริมาตรซ้อนชั้นคือเหตุผลที่การเอียงกล้องคุ้มค่า: ตึกที่มีการถอยระดับมาถึงในรูปแท่งแยกกันหลายก้อน แต่ละก้อนมีระดับพื้นของตัวเอง และมีเพียงการดันขึ้นจากฐานจริงเท่านั้นที่แสดงสิ่งนั้นได้

ต่อยอดได้
geometry ของคุณ ระบบพิกัดของเรา

แผนที่รับวัตถุของคุณได้
ไม่ใช่แค่ของเรา

ทุกอย่างเหนือเส้นนี้คือข้อมูลที่เราถือไว้ ส่วนนี้ไม่ใช่: มันคือฉาก three.js ที่ส่งให้แผนที่ผ่าน custom WebGL layer พร้อม model matrix ที่สร้างจาก lng/lat จุดเดียว แล้ววาดลงในเฟรมเดียวกับอาคาร

มันคือมาร์ก MapScale สูง 205 ม. เหนือสวนลุมพินี บนเสาที่แตะพื้นหญ้าที่พิกัด 13.7312, 100.5425. จงใจไม่ทำให้เหมือนอาคาร — เพชรลอยในวงแหวนสองวงชัดเจนว่าเป็นของเรา จึงไม่มีคำถามว่ารูปทรงไหนมาจากคลังข้อมูล และรูปทรงไหนเราวางเอง

ลากมันดู หรือกด ⌘ ค้างแล้วเลื่อนเพื่อซูม มันยังอยู่บนหญ้าผืนเดิมทั้งสองกรณี เพราะจุดยึดเป็นพิกัด mercator ไม่ใช่ตำแหน่งบนจอ — นั่นคือความต่างระหว่างวัตถุ 3D บนแผนที่ กับรูปภาพที่แปะไว้บนหน้าเว็บ มันเขียนลง depth buffer เดียวกับการดันขึ้นของอาคาร ตึกที่ยืนขวางระหว่างคุณกับมันจึงบังมันได้ ไม่ใช่กลับกัน

Custom layerthree.js ที่แผนที่เป็นคนวาด1,432
สิ่งที่ใช้กำหนดตำแหน่งวัตถุ
จุดยึด13.7312 N · 100.5425 E
mercator x, y0.7792847, 0.4614873
หนึ่งเมตร ในหน่วย mercator2.5716 × 10⁻⁸
ความสูงจากพื้น205 m
model matrixtranslate · rotate · scale(1 m)
การฉายภาพmatrix ของแผนที่เอง ทุกเฟรม
ถูกบังโดยdepth buffer ของอาคาร

ตัวคูณสเกลนั้นคือเหตุผลที่ใช้ค่าคงที่ไม่ได้: หน่วย mercator เป็นเศษส่วนของโลกที่ฉายแล้ว หนึ่งเมตรจึงมีค่าต่างกันในทุกละติจูด คำนวณที่ 13.7312 N วัตถุนี้สูง 205 ม. ที่นี่ — และจะสูง 205 ม. เท่ากันที่เชียงใหม่ จากโค้ดชุดเดิมเพียงเปลี่ยนพิกัด

รถที่ ping ล่าสุด แปลนพื้นบนที่ดินของมัน เครนบนไซต์งาน ปริมาตรสัญญาณเหนือเสาส่ง — เรียกแบบเดียวกัน แค่สามเหลี่ยมมากขึ้น ส่ง geometry กับพิกัดมา ส่วนกล้อง การบัง และการฉายภาพ มีอยู่แล้วที่นี่

ลำดับชั้น
สามระดับ id ชุดเดียว

จังหวัด อำเภอ ตำบล —
และ id เดียวที่รอดทั้งสามระดับ

“ขอดูทุกอย่างในจังหวัดนี้” คือคำถามที่ทีมบริหารถามแผนที่บ่อยที่สุด และแพงที่สุดถ้าต้องสร้างเอง ภูมิศาสตร์ไทยซ้อนกันเป็นชั้น — 77 จังหวัด 928 อำเภอใต้จังหวัด และตำบลใต้อำเภออีกที — และเกือบทุกคำถามบนต้นไม้นี้ไปตกตรงจุดที่ชุดข้อมูลซึ่งใช้ชื่อเป็นคีย์จะพังทันทีที่การถอดเสียงเปลี่ยน

ลองไล่คลิกลงไปดู แต่ละระดับเชื่อมกับระดับบนด้วย รหัสเขตปกครองไม่เคยเชื่อมด้วยชื่อ — เขตที่ทุกคนสะกดว่า Watthana ในข้อมูลต้นทางคือ Vadhana และการ join ด้วยสตริงนั้นจะทำให้เขตนี้หายไป โดยไม่มี error สักบรรทัด

นี่คือขอบเขตทางการ ส่วนรูปทรงที่คุณวาดเอง — โซนจัดส่ง เขตการขาย — เป็นคนละ query บนสถานที่ชุดเดียวกัน ส่ง polygon มา แล้วเราจะ scope ให้ ดีกว่าปั้นตัวอย่างปลอมไว้ตรงนี้

ลองดูคลิกรูปทรงบนแผนที่ หรือคลิกชื่อด้านล่าง
กำลังโหลดขอบเขต…
กำลังแสดงเขต / อำเภอ
ที่เลือกประเทศไทย
pcodeTH

ขอบเขต: RTSD / UNOCHA COD-AB เผยแพร่บน HDX (CC BY-IGO) นำมาเป็นไฟล์สแตติกและลดรายละเอียดเพื่อการแสดงผล — ไม่ได้อยู่ใน tile ของเราเอง แต่ละระดับเชื่อมกันด้วย PCODE — การถอดอักษรโรมันทางการของ วัฒนา คือ “Vadhana” การ join ด้วยชื่อภาษาอังกฤษจึงทำให้เขตหนึ่งหายไป โดยดูเหมือนว่าทำงานได้ปกติ

การเปรียบเทียบ

สิ่งที่คุณกำลังเลือก
อยู่จริง ๆ

ผู้ให้บริการระดับโลกทำได้ดีเยี่ยมเกือบทุกที่ ประเทศไทยเป็นหนึ่งในที่ที่คำว่า “เกือบ” มีราคาแพง — และเป็นที่ที่ผู้ให้บริการในประเทศรับผิดชอบได้ในไทม์โซนเดียวกัน

ผู้ให้บริการระดับโลกทั่วไปMapScale
ชื่อสถานที่ภาษาไทยต่างกันไปตามชุดข้อมูลและตามฟิลด์ชื่อไทยทางการบนทุกเรคอร์ด
การสะกดอักษรโรมันหลายแบบจับคู่แบบตรงตัว พลาดถ้าสะกดต่างจับคู่จากเสียง ไม่ขึ้นกับการสะกด
ชื่อภาษาจีนมีน้อย หรือแปลด้วยเครื่องเก็บไว้จริง ตรวจแล้ว และนิ่ง
geometry เขตปกครองระดับจังหวัด และมักหยาบจังหวัด อำเภอ และตำบล
การเรียกเก็บเงินคิดตาม map load และ session คาดการณ์ยากคิดต่อ call อัตราเดียว
การซัพพอร์ตคิวตั๋ว ภาษาอังกฤษ คนละไทม์โซนไทยและอังกฤษ เวลาทำการกรุงเทพฯ
ที่ตั้งข้อมูลแล้วแต่ผู้ให้บริการap-southeast-1 ระบุในสัญญา
แก้ชื่อที่ผิดแก้แบบ community รอเป็นสัปดาห์กว่าจะกระจายคุณแจ้ง เราแก้ที่เรคอร์ด

อธิบายพฤติกรรมที่พบทั่วไปของผู้ให้บริการระดับโลก ไม่ได้เจาะจงเจ้าใดเจ้าหนึ่ง บอกเรามาว่าจะเทียบกับเจ้าไหน แล้วเราจะ benchmark ด้วยข้อมูลของคุณเอง

เงื่อนไขเชิงพาณิชย์

ราคาที่คาดการณ์ได้
รับผิดชอบโดยทีมในประเทศ

อัตราเดียวต่อ call ครบทุก endpoint ไม่มีการคิดตาม map load ไม่มีการนับ session ไม่มีใบแจ้งหนี้ที่พุ่งสามเท่าในเดือนที่แคมเปญได้ผล

Starter
ฟรี100,000 call / เดือน
  • ครบทุก endpoint
  • ครบทั้งสามภาษา
  • ซัพพอร์ตแบบ community
Growth
฿ —ต่อเดือน คิดตามขั้นปริมาณ
  • ซัพพอร์ตภาษาไทย
  • เป้า uptime 99.9%
  • ล้างข้อมูลที่อยู่แบบ bulk
  • มีผู้ดูแลประจำ
Enterprise
รายปีปริมาณตามสัญญา
  • SLA ที่เซ็นร่วมกัน
  • region ส่วนตัวหรือ on-prem
  • พื้นที่กำหนดเอง
  • รีวิวข้อมูลรายไตรมาส
การย้ายระบบendpoint ยังคงรูปแบบเดิมที่ทีมคุณเชื่อมต่อไว้แล้ว รันคู่ขนานได้ เทียบผลด้วยทราฟฟิกของคุณเอง แล้วค่อยย้ายเมื่อตัวเลขบอกว่าควรย้าย
การผูกมัดส่งออกสถานที่ id และพื้นที่กำหนดเองของคุณได้ทุกเมื่อ id นิ่ง การย้ายออกจึงไม่ทำให้ warehouse ของคุณพัง
การกำกับดูแลประมวลผลตาม PDPA โฮสต์ในภูมิภาค และมี DPA ข้อมูล query ไม่เคยถูกนำไปเทรนอะไรทั้งสิ้น
ความต่อเนื่องชุดข้อมูลฝาก escrow และ schema ที่มีเอกสารกำกับ การตรวจความเสี่ยงผู้ขายจึงมีอะไรให้อ่านจริง

ราคาที่แสดงเป็นเพียงตัวอย่าง รอประกาศ rate card อย่างเป็นทางการ

ขั้นต่อไป

เริ่มจากการตรวจสอบ
ที่อยู่ที่คุณมีอยู่แล้ว

ส่งไฟล์ตัวอย่างมา เราจะตอบกลับด้วยสัดส่วนที่แปลงได้สะอาด รูปแบบความผิดพลาดในข้อมูลของคุณ และต้นทุนที่มันน่าจะกินไป — ก่อนที่ใครจะเซ็นอะไรทั้งนั้น

แผนที่พื้นฐาน