ชุดข้อมูลช่วยให้คุณอัปโหลดข้อมูลเชิงพื้นที่จากไฟล์ในเครื่องหรือจาก 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
บทบาทนี้ให้สิทธิ์การเข้าถึงแบบอ่านอย่างเดียว สำหรับชุดข้อมูลในโปรเจ็กต์ บทบาทนี้ช่วยให้คุณดำเนินการ list, get หรือ download ในชุดข้อมูลได้
ดูข้อมูลเพิ่มเติมได้ที่ มอบบทบาท IAM โดยใช้คอนโซล Google Cloud
แหล่งข้อมูลสําหรับชุดข้อมูล
หลังจากสร้างชุดข้อมูลแล้ว ให้อัปโหลดข้อมูลไปยังชุดข้อมูลจาก 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
- ขนาดไฟล์สูงสุดที่รองรับคือ 500 MB
- ชื่อคอลัมน์แอตทริบิวต์ต้องไม่ขึ้นต้นด้วยสตริง "?_"
- ระบบไม่รองรับรูปทรงเรขาคณิตสามมิติ ซึ่งรวมถึงคำต่อท้าย "Z" ในรูปแบบ WKT และพิกัดความสูงในรูปแบบ GeoJSON
แนวทางปฏิบัติแนะนำในการจัดเตรียมข้อมูล
หากข้อมูลต้นทางมีความซับซ้อนหรือมีขนาดใหญ่ เช่น จุดหนาแน่น สตริงเส้นยาว หรือรูปหลายเหลี่ยม (โดยปกติแล้วไฟล์ต้นทางที่มีขนาดใหญ่กว่า 50 MB จะอยู่ในหมวดหมู่นี้) ให้ลองลดความซับซ้อนของข้อมูล ก่อนอัปโหลดเพื่อให้ได้ประสิทธิภาพสูงสุดในแผนที่ภาพ
แนวทางปฏิบัติแนะนำบางส่วนในการเตรียมข้อมูลมีดังนี้
- ลดพร็อพเพอร์ตี้ของฟีเจอร์ เก็บเฉพาะพร็อพเพอร์ตี้ของฟีเจอร์ที่จำเป็นต่อการจัดรูปแบบ แผนที่ เช่น "id" และ "category" คุณสามารถรวมพร็อพเพอร์ตี้เพิ่มเติมเข้ากับฟีเจอร์ในแอปพลิเคชันไคลเอ็นต์ ได้โดยใช้สไตล์ที่อิงตามข้อมูลในคีย์ตัวระบุที่ไม่ซ้ำกัน เช่น ดูดูข้อมูลแบบเรียลไทม์ด้วยการจัดรูปแบบตามข้อมูล
- ใช้ประเภทข้อมูลอย่างง่ายสำหรับออบเจ็กต์พร็อพเพอร์ตี้หากเป็นไปได้ เช่น จำนวนเต็ม เพื่อลดขนาดไทล์และปรับปรุงประสิทธิภาพของแผนที่
- ลดความซับซ้อนของรูปทรงเรขาคณิตก่อนอัปโหลดไฟล์ คุณทำได้ในเครื่องมือเชิงพื้นที่ที่ต้องการ เช่น ยูทิลิตี Mapshaper.org แบบโอเพนซอร์ส หรือใน BigQuery โดยใช้ ST_Simplify กับรูปหลายเหลี่ยมที่ซับซ้อน
- จัดกลุ่มจุดที่หนาแน่นมากก่อนอัปโหลดไฟล์ คุณทำได้ใน เครื่องมือเชิงพื้นที่ที่ต้องการ เช่น ฟังก์ชันคลัสเตอร์ turf.js แบบโอเพนซอร์ส หรือใน BigQuery โดยใช้ ST_CLUSTERDBSCAN ในรูปทรงเรขาคณิตของจุดที่หนาแน่น
ดูคำแนะนำเพิ่มเติมเกี่ยวกับแนวทางปฏิบัติแนะนำสำหรับชุดข้อมูลได้ในหัวข้อแสดงภาพข้อมูลด้วยชุดข้อมูลและ BigQuery
ข้อกำหนดของ GeoJSON
Maps SDK สำหรับ iOS รองรับข้อกำหนด GeoJSON ปัจจุบัน นอกจากนี้ Maps SDK สำหรับ iOS ยังรองรับไฟล์ GeoJSON ที่มีออบเจ็กต์ประเภทใดก็ได้ต่อไปนี้
- ออบเจ็กต์เรขาคณิต ออบเจ็กต์เรขาคณิตคือรูปร่างเชิงพื้นที่ ซึ่งอธิบายเป็นยูเนียน ของจุด เส้น และรูปหลายเหลี่ยมที่มีรูที่ไม่บังคับ
- ออบเจ็กต์ฟีเจอร์ ออบเจ็กต์ฟีเจอร์ประกอบด้วยเรขาคณิตและคู่ชื่อ/ค่าเพิ่มเติม ซึ่งมีความหมายเฉพาะแอปพลิเคชัน
- คอลเล็กชันฟีเจอร์ FeatureCollection คือชุดของออบเจ็กต์ฟีเจอร์
Maps SDK สำหรับ iOS ไม่รองรับไฟล์ GeoJSON ที่มีข้อมูลในระบบอ้างอิงพิกัด (CRS) อื่นที่ไม่ใช่ WGS84
ดูข้อมูลเพิ่มเติมเกี่ยวกับ GeoJSON ได้ที่ เป็นไปตาม RFC 7946
ข้อกำหนด KML
Maps SDK สำหรับ iOS มีข้อกำหนดต่อไปนี้
- URL ทั้งหมดต้องเป็น URL ในเครื่อง (หรือ 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
เป็นส่วนหนึ่งของคำจำกัดความของออบเจ็กต์ Feature และออบเจ็กต์ Geometry แต่ละรายการ
ข้อผิดพลาดของ 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 ให้ไปที่หน้าชุดข้อมูล
- คลิกสร้างชุดข้อมูล
- ป้อนชื่อชุดข้อมูล ชื่อต้องไม่ซ้ำกับชุดข้อมูลทั้งหมด
- ป้อนคำอธิบายชุดข้อมูลหรือไม่ก็ได้
- คลิกต่อไป หน้านำเข้าข้อมูลจะปรากฏขึ้น
- เลือกแหล่งที่มาของการอัปโหลดของข้อมูลที่ใช้ในการสร้างชุดข้อมูลเป็น
เดสก์ท็อป ซึ่งหมายถึงไฟล์ในเครื่องในระบบ หรือ
ที่เก็บข้อมูล Google Cloud Storage
- สำหรับเดสก์ท็อป ให้คลิกเรียกดู แล้วเลือกไฟล์จาก ตัวเลือกไฟล์
- สำหรับที่เก็บข้อมูล Google Cloud Storage ให้คลิกเรียกดู แล้วเลือก ที่เก็บข้อมูลและไฟล์ที่มีข้อมูล
- เลือกรูปแบบไฟล์
- คลิกต่อไปเพื่อตรวจสอบการตั้งค่า
คลิกสร้าง หน้าชุดข้อมูลจะปรากฏขึ้นพร้อมชุดข้อมูลใหม่ ของคุณ สถานะควรเป็นกำลังประมวลผล
หากอัปโหลดข้อมูลสําเร็จ
- ตั้งค่าสถานะของชุดข้อมูลเป็นเสร็จสมบูรณ์
- ชุดข้อมูลจะกลายเป็นเวอร์ชัน "ใช้งานอยู่" และเป็นเวอร์ชันที่แอปของคุณใช้
หากเกิดข้อผิดพลาดในการอัปโหลด ให้ทำดังนี้
- สถานะของชุดข้อมูลเวอร์ชันใหม่จะตั้งค่าเป็นสถานะอื่นที่ไม่ใช่ เสร็จสมบูรณ์
ดูหรือแก้ไขชุดข้อมูล
หลังจากสร้างชุดข้อมูลแล้ว คุณจะดูหรือแก้ไขชุดข้อมูลได้โดยทำดังนี้
- ในคอนโซล Google Cloud ให้ไปที่หน้าชุดข้อมูล
- คลิกชื่อชุดข้อมูล หน้ารายละเอียดชุดข้อมูลจะปรากฏขึ้น
- คลิกแท็บรายละเอียดเพื่อดูข้อมูลเกี่ยวกับชุดข้อมูล ในแท็บนี้ คุณยังแก้ไขชื่อและคำอธิบายของชุดข้อมูลได้ด้วย
- คลิกแท็บแสดงตัวอย่างเพื่อดูชุดข้อมูลในแผนที่ (เฉพาะชุดข้อมูลที่มีสถานะเป็นเสร็จสมบูรณ์หรือเปลี่ยนกลับ)
- คลิกแท็บข้อมูลตารางเพื่อดูแอตทริบิวต์ทั้งหมดของชุดข้อมูล (ชุดข้อมูลที่มีสถานะเป็นเสร็จสมบูรณ์หรือเปลี่ยนกลับเท่านั้น) ซึ่งเป็นแอตทริบิวต์ที่คุณใช้จัดรูปแบบชุดข้อมูลบนแผนที่ได้
- คลิกปุ่มดาวน์โหลดเพื่อดาวน์โหลดข้อมูลไปยังไฟล์ในเครื่อง
- คลิกปุ่มลบเพื่อลบชุดข้อมูล
คลิกปุ่มนำเข้าไฟล์ข้อมูลเพื่ออัปโหลดข้อมูลใหม่ไปยังชุดข้อมูล
การอัปโหลดข้อมูลใหม่ไปยังชุดข้อมูลจะสร้างชุดข้อมูลเวอร์ชันใหม่ หากอัปโหลดข้อมูลใหม่สำเร็จ ให้ทำดังนี้
- สถานะของชุดข้อมูลเวอร์ชันใหม่จะตั้งค่าเป็นเสร็จสมบูรณ์
- เวอร์ชันใหม่จะกลายเป็นเวอร์ชัน "ใช้งานอยู่" และเป็นเวอร์ชันที่แอปของคุณใช้
หากเกิดข้อผิดพลาดในการอัปโหลด ให้ทำดังนี้
- สถานะของชุดข้อมูลเวอร์ชันใหม่จะตั้งค่าเป็นสถานะอื่นที่ไม่ใช่ เสร็จสมบูรณ์ เช่น หากมีเวอร์ชัน "ใช้งานอยู่" ก่อนหน้า ระบบจะตั้งค่าสถานะของชุดข้อมูลเป็น REVERTED
- เวอร์ชันชุดข้อมูลที่ "ใช้งานอยู่" ก่อนหน้านี้จะยังคงเป็นเวอร์ชันที่ "ใช้งานอยู่" และเป็นเวอร์ชันที่แอปของคุณใช้