ชุดข้อมูลช่วยให้คุณอัปโหลดข้อมูลเชิงพื้นที่จากไฟล์ในเครื่องหรือจาก 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
- เวอร์ชันชุดข้อมูลที่ "ใช้งานอยู่" ก่อนหน้านี้จะยังคงเป็นเวอร์ชันที่ "ใช้งานอยู่" และเป็นเวอร์ชันที่แอปของคุณใช้