ชุดข้อมูลช่วยให้คุณอัปโหลดข้อมูลเชิงพื้นที่จากไฟล์ในเครื่องหรือจาก Google Cloud Storage ไปยัง Google Maps Platform ได้ จากนั้นคุณจะเชื่อมโยงชุดข้อมูลกับรูปแบบแผนที่อย่างน้อย 1 รูปแบบใน Cloud Console ได้ หลังจากเชื่อมโยงชุดข้อมูลกับรูปแบบแผนที่แล้ว ให้ใช้ API การจัดรูปแบบตามข้อมูลเพื่อจัดรูปแบบแอปพลิเคชันแผนที่แบบไดนามิก
นอกจากนี้ คุณยังสามารถใช้ REST API เพื่ออัปโหลดข้อมูลเชิงพื้นที่ไปยังชุดข้อมูล ดูข้อมูลเพิ่มเติมได้ที่ Maps Datasets API
กำหนดค่าบทบาท
หากต้องการสร้างและจัดการชุดข้อมูลในโปรเจ็กต์ Google Cloud คุณต้องเก็บบทบาท IAM ของเจ้าของหรือผู้แก้ไขไว้ในโปรเจ็กต์
หรือมอบหมายบทบาท IAM ต่อไปนี้ให้กับบัญชีผู้ใช้หรือบัญชีบริการที่คุณใช้จัดการชุดข้อมูลก็ได้
- บทบาท
Maps Platform Datasets Admin
จะมอบสิทธิ์การอ่าน/เขียนชุดข้อมูลในโปรเจ็กต์ให้แก่ผู้ใช้หรือบัญชีบริการ บทบาทนี้ช่วยให้ผู้ใช้ดำเนินการทั้งหมดบนชุดข้อมูลได้ - บทบาท
Maps Platform Datasets Viewer
จะให้สิทธิ์เข้าถึงชุดข้อมูลในโปรเจ็กต์แบบอ่านอย่างเดียว บทบาทนี้ช่วยให้คุณดำเนินการสร้างรายการ รับ หรือดาวน์โหลด ในชุดข้อมูลได้
ดูข้อมูลเพิ่มเติมได้ที่มอบบทบาท IAM โดยใช้ Google Cloud Console
แหล่งข้อมูลของชุดข้อมูล
หลังจากที่สร้างชุดข้อมูลแล้ว ให้อัปโหลดข้อมูลไปยังชุดข้อมูลจาก Google Cloud Storage หรือจากไฟล์ในเครื่องเมื่ออัปโหลดข้อมูลจาก Cloud Storage ให้ระบุเส้นทางของไฟล์ไปยังทรัพยากรที่มีข้อมูลใน Cloud Storage เส้นทางนี้อยู่ในรูปแบบ
gs://GCS_BUCKET/FILE
ผู้ใช้ที่ส่งคำขอต้องมีบทบาทผู้ดูออบเจ็กต์พื้นที่เก็บข้อมูล หรือบทบาทอื่นๆ ที่มีสิทธิ์
storage.objects.get
ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการสิทธิ์เข้าถึง Cloud Storage ได้ที่ภาพรวมการควบคุมการเข้าถึง- เมื่ออัปโหลดข้อมูลจากไฟล์ในเครื่อง ให้ระบุเส้นทางไปยังไฟล์ GeoJSON, KML หรือ CSV ที่มีข้อมูลที่ต้องการอัปโหลด
สิ่งที่ต้องดำเนินการก่อน
เมื่อสร้างชุดข้อมูลให้ทำดังนี้
- ชื่อที่แสดงต้องไม่ซ้ำกันภายในโปรเจ็กต์ Google Cloud
- ชื่อที่แสดงต้องมีขนาดไม่เกิน 64 ไบต์ (เนื่องจากอักขระเหล่านี้แสดงด้วย UTF-8 ดังนั้นอักขระบางตัวจึงอาจแทนค่าได้หลายไบต์ในบางภาษา)
- คำอธิบายต้องมีขนาดไม่เกิน 1,000 ไบต์
เมื่ออัปโหลดข้อมูล ให้ทำดังนี้
- ประเภทไฟล์ที่รองรับ ได้แก่ CSV, GeoJSON และ KML
- ขนาดไฟล์สูงสุดที่รองรับคือ 350 MB
- ชื่อคอลัมน์แอตทริบิวต์ต้องไม่ขึ้นต้นด้วยสตริง "?_"
- ไม่สนับสนุนรูปทรงเรขาคณิตสามมิติ ซึ่งรวมถึงคำต่อท้าย "Z" ในรูปแบบ WKT และพิกัดระดับความสูงในรูปแบบ GeoJSON
แนวทางปฏิบัติแนะนำในการเตรียมข้อมูล
หากแหล่งข้อมูลของคุณมีความซับซ้อนหรือมีขนาดใหญ่ เช่น จุดหนาแน่น สตริงยาว หรือรูปหลายเหลี่ยม (ไฟล์ต้นฉบับที่มีขนาดใหญ่กว่า 50 MB จะอยู่ในหมวดหมู่นี้) ให้ลองลดความซับซ้อนของข้อมูลก่อนอัปโหลดเพื่อให้ได้ประสิทธิภาพที่ดีที่สุดในแผนที่ภาพ
แนวทางปฏิบัติแนะนำในการเตรียมข้อมูลมีดังนี้
- ลดคุณสมบัติของฟีเจอร์ เก็บเฉพาะคุณสมบัติของฟีเจอร์ที่ต้องใช้เพื่อจัดรูปแบบแผนที่ เช่น "id" และ "category" คุณเชื่อมโยงพร็อพเพอร์ตี้เพิ่มเติมกับฟีเจอร์ในแอปพลิเคชันไคลเอ็นต์ได้โดยใช้รูปแบบที่อิงตามข้อมูลในคีย์ตัวระบุที่ไม่ซ้ำกัน ตัวอย่างเช่น อ่านดูข้อมูลแบบเรียลไทม์ด้วยการจัดรูปแบบตามข้อมูล
- ใช้ประเภทข้อมูลอย่างง่ายสำหรับออบเจ็กต์พร็อพเพอร์ตี้หากเป็นไปได้ เช่น จำนวนเต็ม เพื่อลดขนาดไทล์และปรับปรุงประสิทธิภาพของแผนที่
- ลดความซับซ้อนของเรขาคณิตที่ซับซ้อนก่อนที่จะอัปโหลดไฟล์ โดยใช้เครื่องมือภูมิสารสนเทศที่คุณเลือก เช่น ยูทิลิตี Mapshaper.org แบบโอเพนซอร์ส หรือใน BigQuery ที่ใช้ ST_Simplify กับเรขาคณิตหลายรูปที่ซับซ้อน
- คลัสเตอร์จุดที่หนาแน่นมากก่อนอัปโหลดไฟล์ ซึ่งทำได้ในเครื่องมือภูมิสารสนเทศที่ต้องการ เช่น ฟังก์ชันคลัสเตอร์ turf.js แบบโอเพนซอร์ส หรือใน BigQuery โดยใช้ ST_CLUSTERDBSCAN ในเรขาคณิตแบบจุดที่มีความหนาแน่น
ดูคําแนะนําเพิ่มเติมเกี่ยวกับแนวทางปฏิบัติแนะนําเกี่ยวกับชุดข้อมูลได้ในการแสดงภาพข้อมูลด้วยชุดข้อมูลและ BigQuery
ข้อกำหนด GeoJSON
Maps JavaScript API รองรับข้อกำหนด GeoJSON ปัจจุบัน Maps JavaScript API ยังสนับสนุนไฟล์ GeoJSON ที่มีอ็อบเจกต์ประเภทต่อไปนี้ด้วย
- วัตถุเรขาคณิต วัตถุเรขาคณิตคือรูปทรงเชิงพื้นที่ ซึ่งอธิบายว่าเป็นจุดร่วมของจุด เส้น และรูปหลายเหลี่ยมที่มีรูซึ่งไม่บังคับ
- แสดงออบเจ็กต์ ออบเจ็กต์ฟีเจอร์มีเรขาคณิตบวกกับคู่ชื่อ/ค่าเพิ่มเติม ซึ่งมีความหมายเฉพาะแอปพลิเคชัน
- คอลเล็กชันฟีเจอร์ คอลเล็กชันฟีเจอร์คือชุดของออบเจ็กต์ฟีเจอร์
Maps JavaScript API ไม่รองรับไฟล์ GeoJSON ที่มีข้อมูลในระบบอ้างอิงพิกัด (CRS) อื่นที่ไม่ใช่ WGS84
ดูข้อมูลเพิ่มเติมเกี่ยวกับ GeoJSON ได้ที่เป็นไปตามข้อกำหนด RFC 7946
ข้อกำหนดของ KML
Maps JavaScript API มีข้อกำหนดต่อไปนี้
- URL ทั้งหมดต้องอยู่ในเครื่อง (หรือต้องสัมพัทธ์) กับไฟล์
- สนับสนุนเรขาคณิตของจุด เส้น และรูปหลายเหลี่ยม
- แอตทริบิวต์ข้อมูลทั้งหมดจะถือเป็นสตริง
- ไอคอนหรือ
<styleUrl>
ที่กำหนดไว้นอกไฟล์ - ลิงก์เครือข่าย เช่น
<NetworkLink>
- การวางซ้อนภาคพื้นดิน เช่น
<GroundOverlay>
- เรขาคณิต 3 มิติหรือแท็กที่เกี่ยวข้องกับระดับความสูง เช่น
<altitudeMode>
- ข้อมูลจำเพาะของกล้อง เช่น
<LookAt>
- รูปแบบที่กำหนดในไฟล์ KML
ข้อกำหนด CSV
สำหรับไฟล์ CSV ชื่อคอลัมน์ที่รองรับจะแสดงอยู่ด้านล่างตามลำดับความสำคัญ
latitude
longitude
lat
long
x
y
wkt
(ข้อความที่รู้จักกันดี)address
,city
,state
,zip
address
- คอลัมน์เดียวที่มีข้อมูลที่อยู่ทั้งหมด เช่น
1600 Amphitheatre Parkway Mountain View, CA 94043
เช่น ไฟล์มีคอลัมน์ที่ชื่อ x
, y
และ wkt
เนื่องจาก x
และ y
มีลำดับความสำคัญสูงกว่า โดยพิจารณาจากลำดับชื่อคอลัมน์ที่รองรับในรายการด้านบน ระบบจึงใช้ค่าในคอลัมน์ x
และ y
และระบบจะไม่สนใจคอลัมน์ wkt
นอกจากนี้
- ชื่อแต่ละคอลัมน์ต้องอยู่ในคอลัมน์เดียว กล่าวคือ คุณจะไม่สามารถมีคอลัมน์ชื่อ
xy
ที่มีทั้งข้อมูลพิกัด x และ y พิกัด x และ y ต้องอยู่ในคอลัมน์แยกกัน - ชื่อคอลัมน์ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
- ลำดับของชื่อคอลัมน์ไม่มีความสำคัญ เช่น หากไฟล์ CSV มีคอลัมน์
lat
และlong
คอลัมน์ดังกล่าวจะเรียงลำดับอย่างไรก็ได้
จัดการข้อผิดพลาดในการอัปโหลดข้อมูล
เมื่ออัปโหลดข้อมูลไปยังชุดข้อมูล คุณอาจพบข้อผิดพลาดที่พบบ่อยตามที่อธิบายไว้ในส่วนนี้
ข้อผิดพลาด GeoJSON
ข้อผิดพลาดทั่วไปของ GeoJSON ได้แก่
- ไม่มีช่อง
type
หรือtype
ไม่ใช่สตริง ไฟล์ข้อมูล GeoJSON ที่อัปโหลดต้องมีช่องสตริงชื่อtype
เป็นส่วนหนึ่งของคำจำกัดความของออบเจ็กต์ฟีเจอร์และออบเจ็กต์เรขาคณิต
ข้อผิดพลาด KML
ข้อผิดพลาด KML ที่พบบ่อย ได้แก่
- ไฟล์ข้อมูลต้องไม่มีฟีเจอร์ KML ที่ไม่รองรับตามรายการข้างต้น มิฉะนั้นการนำเข้าข้อมูลอาจไม่สำเร็จ
ข้อผิดพลาด CSV
ข้อผิดพลาด CSV ที่พบบ่อย ได้แก่
- บางแถวไม่มีค่าสำหรับคอลัมน์เรขาคณิต แถวทั้งหมดในไฟล์ CSV ต้องมีค่าสำหรับคอลัมน์เรขาคณิต คอลัมน์เรขาคณิตประกอบด้วยข้อมูลต่อไปนี้
latitude
longitude
lat
long
x
y
wkt
address
,city
,state
,zip
address
- คอลัมน์เดียวที่มีข้อมูลที่อยู่ทั้งหมด เช่น
1600 Amphitheatre Parkway Mountain View, CA 94043
- หาก
x
และy
เป็นคอลัมน์เรขาคณิต โปรดตรวจสอบว่าหน่วยเหล่านั้นคือลองจิจูดและละติจูด ชุดข้อมูลสาธารณะบางรายการใช้ระบบพิกัดที่แตกต่างกันภายใต้ส่วนหัวx
และy
หากใช้หน่วยที่ไม่ถูกต้อง ชุดข้อมูลอาจนำเข้าสำเร็จ แต่ข้อมูลที่แสดงผลอาจแสดงจุดชุดข้อมูลในตำแหน่งที่ไม่คาดคิด
สร้างชุดข้อมูล
วิธีสร้างชุดข้อมูลมีดังนี้
- ใน Google Cloud Console ให้ไปที่หน้าชุดข้อมูล
- คลิกสร้างชุดข้อมูล
- ป้อนชื่อชุดข้อมูล ชื่อชุดข้อมูลทั้งหมดต้องไม่ซ้ำกัน
- (ไม่บังคับ) ป้อนคำอธิบายชุดข้อมูล
- คลิกดำเนินการต่อ หน้านำเข้าข้อมูลจะปรากฏขึ้น
- เลือกแหล่งที่มาของการอัปโหลดของข้อมูลที่ใช้ป้อนข้อมูลให้ชุดข้อมูลเป็นเดสก์ท็อป ซึ่งหมายความว่าไฟล์ในเครื่องในระบบหรือที่เก็บข้อมูล Google Cloud Storage
- สำหรับเดสก์ท็อป ให้คลิกเรียกดู แล้วเลือกไฟล์จากตัวเลือกไฟล์
- สำหรับที่เก็บข้อมูล Google Cloud Storage ให้คลิกเรียกดู แล้วเลือกที่เก็บข้อมูลและไฟล์ที่มีข้อมูล
- เลือกรูปแบบไฟล์
- คลิกต่อไปเพื่อตรวจสอบการตั้งค่า
- คลิกสร้าง หน้าชุดข้อมูลจะปรากฏขึ้นเพื่อแสดงชุดข้อมูลใหม่ สถานะควรเป็นกำลังประมวลผล
- รอจนกว่าชุดข้อมูลจะมีสถานะเป็น เสร็จสมบูรณ์
ดูหรือแก้ไขชุดข้อมูล
หลังจากที่สร้างชุดข้อมูลสำเร็จแล้ว สถานะของชุดข้อมูลจะปรากฏเป็นเสร็จสมบูรณ์ จากนั้นคุณจะตรวจสอบรายละเอียดของชุดข้อมูลได้
วิธีดูหรือแก้ไขชุดข้อมูล
- ใน Google Cloud Console ให้ไปที่หน้าชุดข้อมูล
- คลิกชื่อชุดข้อมูล หน้ารายละเอียดชุดข้อมูลจะปรากฏขึ้น
- คลิกแท็บรายละเอียดเพื่อดูข้อมูลเกี่ยวกับชุดข้อมูล ในแท็บนี้ คุณยังแก้ไขชื่อและคำอธิบายชุดข้อมูลได้ด้วย
- คลิกแท็บแสดงตัวอย่างเพื่อดูชุดข้อมูลบนแผนที่
- คลิกแท็บข้อมูลตารางเพื่อดูแอตทริบิวต์ทั้งหมดของชุดข้อมูล แอตทริบิวต์เหล่านี้คือแอตทริบิวต์ที่คุณใช้จัดรูปแบบชุดข้อมูลบนแผนที่ได้
- คลิกปุ่มดาวน์โหลดเพื่อดาวน์โหลดข้อมูลไปยังไฟล์ในเครื่อง
- คลิกปุ่มลบเพื่อลบชุดข้อมูล
คลิกปุ่มนำเข้าไฟล์ข้อมูลเพื่ออัปโหลดข้อมูลใหม่ลงในชุดข้อมูล
การอัปโหลดข้อมูลใหม่ไปยังชุดข้อมูลจะสร้างชุดข้อมูลเวอร์ชันใหม่ หากข้อมูลใหม่อัปโหลดสำเร็จ ให้ทำดังนี้
- สถานะของชุดข้อมูลเวอร์ชันใหม่มีการตั้งค่าเป็น COMPLETED
- เวอร์ชันใหม่จะกลายเป็นเวอร์ชัน "ใช้งาน" และเป็นเวอร์ชันที่แอปของคุณใช้
หากมีข้อผิดพลาดในการอัปโหลด ให้ทำดังนี้
- สถานะของชุดข้อมูลเวอร์ชันใหม่กำหนดเป็นสถานะที่ไม่ใช่ COMPLETED เช่น หากมีเวอร์ชันก่อนหน้า "ใช้งานอยู่" สถานะของชุดข้อมูลจะตั้งค่าเป็นย้อนกลับ
- ชุดข้อมูลเวอร์ชัน "ใช้งานอยู่" ก่อนหน้านี้จะยังคงเป็นเวอร์ชัน "ใช้งาน" และเป็นเวอร์ชันที่แอปใช้