สร้างและจัดการชุดข้อมูล

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

แนวทางปฏิบัติแนะนำในการเตรียมข้อมูลมีดังนี้

  1. ลดคุณสมบัติของฟีเจอร์ เก็บเฉพาะคุณสมบัติของฟีเจอร์ที่ต้องใช้เพื่อจัดรูปแบบแผนที่ เช่น "id" และ "category" คุณเชื่อมโยงพร็อพเพอร์ตี้เพิ่มเติมกับฟีเจอร์ในแอปพลิเคชันไคลเอ็นต์ได้โดยใช้รูปแบบที่อิงตามข้อมูลในคีย์ตัวระบุที่ไม่ซ้ำกัน ตัวอย่างเช่น อ่านดูข้อมูลแบบเรียลไทม์ด้วยการจัดรูปแบบตามข้อมูล
  2. ใช้ประเภทข้อมูลอย่างง่ายสำหรับออบเจ็กต์พร็อพเพอร์ตี้หากเป็นไปได้ เช่น จำนวนเต็ม เพื่อลดขนาดไทล์และปรับปรุงประสิทธิภาพของแผนที่
  3. ลดความซับซ้อนของเรขาคณิตที่ซับซ้อนก่อนที่จะอัปโหลดไฟล์ โดยใช้เครื่องมือภูมิสารสนเทศที่คุณเลือก เช่น ยูทิลิตี Mapshaper.org แบบโอเพนซอร์ส หรือใน BigQuery ที่ใช้ ST_Simplify กับเรขาคณิตหลายรูปที่ซับซ้อน
  4. คลัสเตอร์จุดที่หนาแน่นมากก่อนอัปโหลดไฟล์ ซึ่งทำได้ในเครื่องมือภูมิสารสนเทศที่ต้องการ เช่น ฟังก์ชันคลัสเตอร์ 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 ทั้งหมดต้องอยู่ในเครื่อง (หรือต้องสัมพัทธ์) กับไฟล์
  • สนับสนุนเรขาคณิตของจุด เส้น และรูปหลายเหลี่ยม
  • แอตทริบิวต์ข้อมูลทั้งหมดจะถือเป็นสตริง
ระบบไม่รองรับฟีเจอร์ KML ต่อไปนี้
  • ไอคอนหรือ <styleUrl> ที่กำหนดไว้นอกไฟล์
  • ลิงก์เครือข่าย เช่น <NetworkLink>
  • การวางซ้อนภาคพื้นดิน เช่น <GroundOverlay>
  • เรขาคณิต 3 มิติหรือแท็กที่เกี่ยวข้องกับระดับความสูง เช่น <altitudeMode>
  • ข้อมูลจำเพาะของกล้อง เช่น <LookAt>
  • รูปแบบที่กำหนดในไฟล์ KML

ข้อกำหนด CSV

สำหรับไฟล์ CSV ชื่อคอลัมน์ที่รองรับจะแสดงอยู่ด้านล่างตามลำดับความสำคัญ

เช่น ไฟล์มีคอลัมน์ที่ชื่อ 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 หากใช้หน่วยที่ไม่ถูกต้อง ชุดข้อมูลอาจนำเข้าสำเร็จ แต่ข้อมูลที่แสดงผลอาจแสดงจุดชุดข้อมูลในตำแหน่งที่ไม่คาดคิด

สร้างชุดข้อมูล

วิธีสร้างชุดข้อมูลมีดังนี้

  1. ใน Google Cloud Console ให้ไปที่หน้าชุดข้อมูล
  2. คลิกสร้างชุดข้อมูล
  3. ป้อนชื่อชุดข้อมูล ชื่อชุดข้อมูลทั้งหมดต้องไม่ซ้ำกัน
  4. (ไม่บังคับ) ป้อนคำอธิบายชุดข้อมูล
  5. คลิกดำเนินการต่อ หน้านำเข้าข้อมูลจะปรากฏขึ้น
  6. เลือกแหล่งที่มาของการอัปโหลดของข้อมูลที่ใช้ป้อนข้อมูลให้ชุดข้อมูลเป็นเดสก์ท็อป ซึ่งหมายความว่าไฟล์ในเครื่องในระบบหรือที่เก็บข้อมูล Google Cloud Storage
    • สำหรับเดสก์ท็อป ให้คลิกเรียกดู แล้วเลือกไฟล์จากตัวเลือกไฟล์
    • สำหรับที่เก็บข้อมูล Google Cloud Storage ให้คลิกเรียกดู แล้วเลือกที่เก็บข้อมูลและไฟล์ที่มีข้อมูล
  7. เลือกรูปแบบไฟล์
  8. คลิกต่อไปเพื่อตรวจสอบการตั้งค่า
  9. คลิกสร้าง หน้าชุดข้อมูลจะปรากฏขึ้นเพื่อแสดงชุดข้อมูลใหม่ สถานะควรเป็นกำลังประมวลผล
  10. รอจนกว่าชุดข้อมูลจะมีสถานะเป็น เสร็จสมบูรณ์

ดูหรือแก้ไขชุดข้อมูล

หลังจากที่สร้างชุดข้อมูลสำเร็จแล้ว สถานะของชุดข้อมูลจะปรากฏเป็นเสร็จสมบูรณ์ จากนั้นคุณจะตรวจสอบรายละเอียดของชุดข้อมูลได้

วิธีดูหรือแก้ไขชุดข้อมูล

  1. ใน Google Cloud Console ให้ไปที่หน้าชุดข้อมูล
  2. คลิกชื่อชุดข้อมูล หน้ารายละเอียดชุดข้อมูลจะปรากฏขึ้น
    1. คลิกแท็บรายละเอียดเพื่อดูข้อมูลเกี่ยวกับชุดข้อมูล ในแท็บนี้ คุณยังแก้ไขชื่อและคำอธิบายชุดข้อมูลได้ด้วย
    2. คลิกแท็บแสดงตัวอย่างเพื่อดูชุดข้อมูลบนแผนที่
    3. คลิกแท็บข้อมูลตารางเพื่อดูแอตทริบิวต์ทั้งหมดของชุดข้อมูล แอตทริบิวต์เหล่านี้คือแอตทริบิวต์ที่คุณใช้จัดรูปแบบชุดข้อมูลบนแผนที่ได้
    4. คลิกปุ่มดาวน์โหลดเพื่อดาวน์โหลดข้อมูลไปยังไฟล์ในเครื่อง
    5. คลิกปุ่มลบเพื่อลบชุดข้อมูล
    6. คลิกปุ่มนำเข้าไฟล์ข้อมูลเพื่ออัปโหลดข้อมูลใหม่ลงในชุดข้อมูล

      การอัปโหลดข้อมูลใหม่ไปยังชุดข้อมูลจะสร้างชุดข้อมูลเวอร์ชันใหม่ หากข้อมูลใหม่อัปโหลดสำเร็จ ให้ทำดังนี้

      • สถานะของชุดข้อมูลเวอร์ชันใหม่มีการตั้งค่าเป็น COMPLETED
      • เวอร์ชันใหม่จะกลายเป็นเวอร์ชัน "ใช้งาน" และเป็นเวอร์ชันที่แอปของคุณใช้

      หากมีข้อผิดพลาดในการอัปโหลด ให้ทำดังนี้

      • สถานะของชุดข้อมูลเวอร์ชันใหม่กำหนดเป็นสถานะที่ไม่ใช่ COMPLETED เช่น หากมีเวอร์ชันก่อนหน้า "ใช้งานอยู่" สถานะของชุดข้อมูลจะตั้งค่าเป็นย้อนกลับ
      • ชุดข้อมูลเวอร์ชัน "ใช้งานอยู่" ก่อนหน้านี้จะยังคงเป็นเวอร์ชัน "ใช้งาน" และเป็นเวอร์ชันที่แอปใช้