ชุดข้อมูลช่วยให้คุณอัปโหลดข้อมูลเชิงพื้นที่จากไฟล์ในเครื่องหรือจาก Google Cloud Storage ไปยัง Google Maps Platform ได้ จากนั้นคุณจะเชื่อมโยงชุดข้อมูลกับรูปแบบแผนที่อย่างน้อย 1 รูปแบบในคอนโซลของ Cloud ได้ หลังจากเชื่อมโยงชุดข้อมูลกับสไตล์แผนที่แล้ว ให้ใช้ API การจัดสไตล์ตามข้อมูลเพื่อจัดสไตล์แอปพลิเคชันแผนที่แบบไดนามิก
นอกจากนี้ คุณยังใช้ REST API เพื่ออัปโหลดข้อมูลเชิงพื้นที่ไปยังชุดข้อมูลได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่ Maps Datasets API
กำหนดค่าบทบาท
หากต้องการสร้างและจัดการชุดข้อมูลในโปรเจ็กต์ Google Cloud คุณต้องมีบทบาท IAM ระดับเจ้าของหรือผู้แก้ไขในโปรเจ็กต์
หรือจะมอบหมายบทบาท IAM ต่อไปนี้ให้กับบัญชีผู้ใช้หรือบัญชีบริการที่คุณใช้จัดการชุดข้อมูลก็ได้
- บทบาท 
Maps Platform Datasets Adminจะมอบสิทธิ์การอ่าน/เขียนชุดข้อมูลในโปรเจ็กต์ให้แก่ผู้ใช้หรือบัญชีบริการ บทบาทนี้ช่วยให้ผู้ใช้ดําเนินการทั้งหมดในชุดข้อมูลได้ - บทบาท 
Maps Platform Datasets Viewerให้สิทธิ์เข้าถึงชุดข้อมูลในโปรเจ็กต์แบบอ่านอย่างเดียว บทบาทนี้ช่วยให้คุณดำเนินการแสดงรายการ รับ หรือดาวน์โหลดในชุดข้อมูลได้ 
ดูข้อมูลเพิ่มเติมได้ที่หัวข้อมอบบทบาท IAM โดยใช้คอนโซล Google Cloud
แหล่งข้อมูลของชุดข้อมูล
หลังจากสร้างชุดข้อมูลแล้ว ให้อัปโหลดข้อมูลไปยังชุดข้อมูลจาก Google Cloud Storage หรือจากไฟล์ในเครื่องเมื่ออัปโหลดข้อมูลจาก Cloud Storage ให้ระบุเส้นทางไฟล์ไปยังทรัพยากรที่มีข้อมูลใน Cloud Storage เส้นทางนี้อยู่ในรูปแบบ
gs://GCS_BUCKET/FILEผู้ใช้ที่ส่งคำขอต้องมีบทบาทผู้ดูออบเจ็กต์ใน Storage หรือบทบาทอื่นๆ ที่มีสิทธิ์
storage.objects.getดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการสิทธิ์เข้าถึง Cloud Storage ได้ที่ภาพรวมการควบคุมการเข้าถึง- เมื่ออัปโหลดข้อมูลจากไฟล์ในเครื่อง ให้ระบุเส้นทางไปยังไฟล์ GeoJSON, KML หรือ CSV ที่มีข้อมูลที่จะอัปโหลด
 
ข้อกำหนดเบื้องต้น
เมื่อสร้างชุดข้อมูล
- ชื่อที่แสดงต้องไม่ซ้ำกันภายในโปรเจ็กต์ Google Cloud
 - ชื่อที่แสดงต้องมีความยาวน้อยกว่า 64 ไบต์ (เนื่องจากอักขระเหล่านี้แสดงเป็น UTF-8 ซึ่งในบางภาษา อักขระแต่ละตัวอาจแสดงด้วยไบต์หลายตัว)
 - คำอธิบายต้องมีความยาวไม่เกิน 1,000 ไบต์
 
เมื่ออัปโหลดข้อมูล
- ประเภทไฟล์ที่รองรับ ได้แก่ CSV, GeoJSON และ KML
 - ขนาดไฟล์สูงสุดที่รองรับคือ 500 MB
 - ชื่อคอลัมน์แอตทริบิวต์ต้องไม่ขึ้นต้นด้วยสตริง "?_"
 - ไม่รองรับเรขาคณิต 3 มิติ ซึ่งรวมถึงส่วนต่อท้าย "Z" ในรูปแบบ WKT และพิกัดระดับความสูงในรูปแบบ GeoJSON
 
แนวทางปฏิบัติแนะนำสำหรับการจัดเตรียมข้อมูล
หากข้อมูลต้นทางมีความซับซ้อนหรือมีขนาดใหญ่ เช่น จุดที่หนาแน่น เส้นสตริงที่ยาว หรือรูปหลายเหลี่ยม (โดยปกติแล้วไฟล์ต้นทางที่มีขนาดใหญ่กว่า 50 MB จะจัดอยู่ในหมวดหมู่นี้) ให้พิจารณาลดความซับซ้อนของข้อมูลก่อนอัปโหลดเพื่อให้ได้ประสิทธิภาพที่ดีที่สุดในแผนที่ภาพ
แนวทางปฏิบัติแนะนำบางส่วนสำหรับการเตรียมข้อมูลมีดังนี้
- ลดพร็อพเพอร์ตี้ของฟีเจอร์ เก็บเฉพาะพร็อพเพอร์ตี้องค์ประกอบที่จําเป็นสําหรับการจัดรูปแบบแผนที่ เช่น "รหัส" และ "หมวดหมู่" คุณสามารถรวมพร็อพเพอร์ตี้เพิ่มเติมเข้ากับฟีเจอร์ในแอปพลิเคชันไคลเอ็นต์ได้โดยใช้สไตล์ที่ขับเคลื่อนโดยข้อมูลในคีย์ตัวระบุที่ไม่ซ้ำกัน ตัวอย่างเช่น ดูข้อมูลแบบเรียลไทม์ด้วยการจัดรูปแบบตามข้อมูล
 - ใช้ประเภทข้อมูลแบบง่ายสำหรับออบเจ็กต์พร็อพเพอร์ตี้เมื่อเป็นไปได้ เช่น จำนวนเต็ม เพื่อลดขนาดไทล์และปรับปรุงประสิทธิภาพแผนที่
 - ลดความซับซ้อนของรูปทรงเรขาคณิตที่ซับซ้อนก่อนอัปโหลดไฟล์ ซึ่งทําได้ในเครื่องมือเชิงพื้นที่ที่คุณต้องการ เช่น ยูทิลิตี 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 ทั้งหมดต้องเป็น URL ในเครื่อง (หรือ URL แบบสัมพัทธ์) ของไฟล์นั้นๆ
 - รองรับเรขาคณิตของจุด เส้น และรูปหลายเหลี่ยม
 - ระบบจะถือว่าแอตทริบิวต์ข้อมูลทั้งหมดเป็นสตริง
 
- ไอคอนหรือ 
<styleUrl>ที่กําหนดไว้นอกไฟล์ - ลิงก์เครือข่าย เช่น 
<NetworkLink> - การวางซ้อนพื้น เช่น 
<GroundOverlay> - เรขาคณิต 3 มิติหรือแท็กที่เกี่ยวข้องกับระดับความสูง เช่น 
<altitudeMode> - ข้อกำหนดของกล้อง เช่น 
<LookAt> - รูปแบบที่กําหนดไว้ในไฟล์ KML
 
ข้อกำหนดของ CSV
สำหรับไฟล์ CSV ชื่อคอลัมน์ที่รองรับจะแสดงอยู่ด้านล่างตามลําดับความสําคัญ
latitude,longitudelat,longx,ywkt(ข้อความที่รู้จักดี)address,city,state,zipaddress- คอลัมน์เดียวที่มีข้อมูลที่อยู่ทั้งหมด เช่น
    
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,longitudelat,longx,ywktaddress,city,state,zipaddress- คอลัมน์เดียวที่มีข้อมูลที่อยู่ทั้งหมด เช่น
        
1600 Amphitheatre Parkway Mountain View, CA 94043 
 - หาก 
xและyเป็นคอลัมน์เรขาคณิต ให้ตรวจสอบว่าหน่วยเป็นลองจิจูดและละติจูด ชุดข้อมูลสาธารณะบางชุดใช้ระบบพิกัดที่ต่างกันในส่วนหัวxและyหากใช้หน่วยที่ไม่ถูกต้อง ชุดข้อมูลอาจนําเข้าสําเร็จ แต่ข้อมูลที่แสดงผลอาจแสดงจุดชุดข้อมูลในตําแหน่งที่ไม่คาดคิด 
สร้างชุดข้อมูล
วิธีสร้างชุดข้อมูล
- ในคอนโซล Google Cloud ให้ไปที่หน้าชุดข้อมูล
 - คลิกสร้างชุดข้อมูล
 - ป้อนชื่อชุดข้อมูล โดยชื่อต้องไม่ซ้ำกันในทุกชุดข้อมูล
 - ป้อนคําอธิบายชุดข้อมูล (ไม่บังคับ)
 - คลิกต่อไป หน้านําเข้าข้อมูลจะปรากฏขึ้น
 - เลือกแหล่งที่มาของการอัปโหลดของข้อมูลที่ใช้ในการป้อนข้อมูลชุดข้อมูลเป็นเดสก์ท็อป ซึ่งหมายถึงไฟล์ในเครื่องของระบบ หรือที่เก็บข้อมูล Google Cloud Storage
    
- สำหรับเดสก์ท็อป ให้คลิกเรียกดู แล้วเลือกไฟล์จากเครื่องมือเลือกไฟล์
 - สําหรับที่เก็บข้อมูล Google Cloud Storage ให้คลิกเรียกดู แล้วเลือกที่เก็บข้อมูลและไฟล์ที่มีข้อมูล
 
 - เลือกรูปแบบไฟล์
 - คลิกต่อไปเพื่อตรวจสอบการตั้งค่า
 คลิกสร้าง หน้าชุดข้อมูลจะปรากฏขึ้นพร้อมแสดงชุดข้อมูลใหม่ สถานะควรเป็นกำลังดำเนินการ
หากอัปโหลดข้อมูลสําเร็จ
- ตั้งค่าสถานะของชุดข้อมูลเป็นเสร็จสมบูรณ์
 - ชุดข้อมูลจะกลายเป็นเวอร์ชัน "ใช้งานอยู่" และเป็นเวอร์ชันที่แอปของคุณใช้
 
หากการอัปโหลดมีข้อผิดพลาด ให้ทำดังนี้
- สถานะของชุดข้อมูลเวอร์ชันใหม่เป็นสถานะอื่นที่ไม่ใช่เสร็จสมบูรณ์
 
ดูหรือแก้ไขชุดข้อมูล
หลังจากสร้างชุดข้อมูลแล้ว คุณจะดูหรือแก้ไขชุดข้อมูลได้ดังนี้
- ในคอนโซล Google Cloud ให้ไปที่หน้าชุดข้อมูล
 - คลิกชื่อชุดข้อมูล หน้ารายละเอียดชุดข้อมูลจะปรากฏขึ้น
    
- คลิกแท็บรายละเอียดเพื่อดูข้อมูลเกี่ยวกับชุดข้อมูล ในแท็บนี้ คุณยังแก้ไขชื่อและคำอธิบายชุดข้อมูลได้ด้วย
 - คลิกแท็บแสดงตัวอย่างเพื่อดูชุดข้อมูลในแผนที่ (ชุดข้อมูลที่มีสถานะเสร็จสมบูรณ์หรือเปลี่ยนกลับเท่านั้น)
 - คลิกแท็บข้อมูลตารางเพื่อดูแอตทริบิวต์ทั้งหมดของชุดข้อมูล (ชุดข้อมูลที่มีสถานะเสร็จสมบูรณ์หรือเปลี่ยนกลับเท่านั้น) ต่อไปนี้คือแอตทริบิวต์ที่คุณสามารถใช้เพื่อจัดรูปแบบชุดข้อมูลบนแผนที่
 - คลิกปุ่มดาวน์โหลดเพื่อดาวน์โหลดข้อมูลไปยังไฟล์ในเครื่อง
 - คลิกปุ่มลบเพื่อลบชุดข้อมูล
 คลิกปุ่มนําเข้าไฟล์ข้อมูลเพื่ออัปโหลดข้อมูลใหม่ไปยังชุดข้อมูล
การอัปโหลดข้อมูลใหม่ไปยังชุดข้อมูลจะสร้างชุดข้อมูลเวอร์ชันใหม่ หากอัปโหลดข้อมูลใหม่สําเร็จ ให้ทำดังนี้
- สถานะของชุดข้อมูลเวอร์ชันใหม่จะตั้งค่าเป็นเสร็จสมบูรณ์
 - เวอร์ชันใหม่จะกลายเป็นเวอร์ชัน "ใช้งานอยู่" และเป็นเวอร์ชันที่แอปของคุณใช้
 
หากการอัปโหลดมีข้อผิดพลาด ให้ทำดังนี้
- สถานะของชุดข้อมูลเวอร์ชันใหม่เป็นสถานะอื่นที่ไม่ใช่เสร็จสมบูรณ์ เช่น หากมีเวอร์ชัน "ใช้งานอยู่" เวอร์ชันก่อนหน้า ระบบจะตั้งค่าสถานะชุดข้อมูลเป็นเปลี่ยนกลับ
 - เวอร์ชันชุดข้อมูล "ที่ใช้งานอยู่" ก่อนหน้านี้จะยังคงเป็นเวอร์ชัน "ที่ใช้งานอยู่" และเป็นเวอร์ชันที่แอปของคุณใช้