คู่มือการเพิ่มประสิทธิภาพ

คู่มือนี้อธิบายกลยุทธ์หลายอย่างในการเพิ่มประสิทธิภาพการใช้งาน Google Maps API ในด้านความปลอดภัย ประสิทธิภาพ และการใช้งาน

ความปลอดภัย

การตรวจสอบแนวทางปฏิบัติแนะนำด้านความปลอดภัย

คีย์ API เป็นข้อมูลเข้าสู่ระบบที่เน้นโปรเจ็กต์ซึ่งควรได้รับการป้องกันเช่นเดียวกับรหัสผู้ใช้และรหัสผ่าน โปรดอ่านแนวทางปฏิบัติแนะนำด้านความปลอดภัยของ API เพื่อรักษาความปลอดภัยของคีย์จากการใช้งานโดยไม่ตั้งใจ ซึ่งอาจทำให้มีการใช้โควต้าเกินควรและการเรียกเก็บเงินที่ไม่คาดคิดในบัญชีของคุณ

การใช้คีย์ API เพื่อเข้าถึง Maps API

คีย์ API เป็นวิธีการตรวจสอบสิทธิ์ที่แนะนำสำหรับการเข้าถึง Google Maps API แม้ว่าระบบจะยังคงรองรับการใช้รหัสไคลเอ็นต์ แต่คีย์ API จะรองรับการควบคุมความปลอดภัยที่ละเอียดยิ่งขึ้น และสามารถปรับแต่งให้ทำงานกับที่อยู่เว็บ, ที่อยู่ IP และ SDK บนอุปกรณ์เคลื่อนที่ (Android และ iOS) ที่เฉพาะเจาะจงได้ ดูข้อมูลเกี่ยวกับการสร้างและรักษาความปลอดภัยของคีย์ API ได้ที่หน้า "การใช้คีย์ API" สำหรับ API หรือ SDK แต่ละรายการ (เช่น สำหรับ Maps JavaScript API ให้ไปที่หน้าการใช้คีย์ API)

ประสิทธิภาพ

การใช้ Exponential Backoff เพื่อจัดการข้อผิดพลาด

หากแอปพบข้อผิดพลาดจากการพยายามเรียกใช้ API มากเกินไปภายในระยะเวลาสั้นๆ เช่น ข้อผิดพลาดเกี่ยวกับโควต้า ให้พิจารณาใช้ Exponential Backoff เพื่อให้ระบบประมวลผลคำขอ Exponential Backoff มีประโยชน์มากที่สุดสำหรับข้อผิดพลาดในกลุ่ม 500

โดยเฉพาะอย่างยิ่ง ให้ปรับจังหวะการค้นหา ในโค้ด ให้เพิ่มระยะเวลารอ S วินาทีระหว่างการค้นหาแต่ละครั้ง หากการค้นหายังคงส่งผลให้เกิดข้อผิดพลาดเกี่ยวกับโควต้า ให้เพิ่มระยะเวลารอเป็น 2 เท่า แล้วส่งการค้นหาอีกครั้ง ปรับระยะเวลารอต่อไปจนกว่าการค้นหาจะแสดงผลโดยไม่มีข้อผิดพลาด

การส่งคำขอการโต้ตอบของผู้ใช้ตามต้องการ

ควรส่งคำขอไปยัง API ที่มีการโต้ตอบของผู้ใช้ตามคำขอเท่านั้น ซึ่งหมายถึงการรอให้ผู้ใช้ปลายทางดำเนินการ (เช่น on-click) เพื่อเริ่มต้นคำขอ API จากนั้นใช้ผลลัพธ์เพื่อโหลดแผนที่ ตั้งค่าจุดหมาย หรือแสดงข้อมูลที่เหมาะสม การใช้แนวทางแบบออนดีมานด์จะช่วยหลีกเลี่ยงคำขอที่ไม่จำเป็นไปยัง API ซึ่งจะช่วยลดการใช้ API

หลีกเลี่ยงการแสดงเนื้อหาซ้อนทับเมื่อแผนที่กำลังเคลื่อนไหว

หลีกเลี่ยงการใช้ Draw() เพื่อแสดงเนื้อหาการวางซ้อนที่กำหนดเองบนแผนที่ในเวลาเดียวกันกับที่ผู้ใช้อาจกำลังเลื่อนแผนที่ เนื่องจากระบบจะวาดแผนที่ใหม่ทุกครั้งที่ผู้ใช้เลื่อนแผนที่ การวางเนื้อหาซ้อนทับบนแผนที่พร้อมกันอาจทำให้เกิดความล่าช้าหรือภาพกระตุก เพิ่มหรือนำเนื้อหาที่วางซ้อนออกจากแผนที่เมื่อผู้ใช้หยุดเลื่อนหรือซูมเท่านั้น

หลีกเลี่ยงการดำเนินการที่ใช้ทรัพยากรมากในเมธอด Draw

โดยทั่วไปแล้ว แนวทางปฏิบัติแนะนำคือการหลีกเลี่ยงการดำเนินการที่ไม่ใช่การวาดซึ่งใช้ประสิทธิภาพสูงในเมธอด Draw() ตัวอย่างเช่น หลีกเลี่ยงการใช้โค้ดต่อไปนี้ในเมธอด Draw()

  • คำค้นหาที่แสดงเนื้อหาจำนวนมาก
  • การเปลี่ยนแปลงหลายอย่างในข้อมูลที่แสดง
  • การจัดการองค์ประกอบแบบจำลองออบเจ็กต์เอกสาร (DOM) หลายรายการ

การดำเนินการเหล่านี้อาจทำให้ประสิทธิภาพลดลงและทำให้เกิดความล่าช้าหรือภาพกระตุกเมื่อแสดงผลแผนที่

การใช้ภาพแรสเตอร์สำหรับเครื่องหมาย

ใช้ภาพแรสเตอร์ เช่น รูปภาพในรูปแบบ .PNG หรือ .JPG เมื่อเพิ่มเครื่องหมายเพื่อระบุตำแหน่งบนแผนที่ หลีกเลี่ยงการใช้รูปภาพกราฟิกเวกเตอร์ที่ปรับขนาดได้ (SVG) เนื่องจากรูปภาพ SVG อาจทำให้เกิดความล่าช้าเมื่อมีการวาดแผนที่ใหม่

กำลังเพิ่มประสิทธิภาพเครื่องหมาย

การเพิ่มประสิทธิภาพจะช่วยปรับปรุงประสิทธิภาพด้วยการแสดงผลเครื่องหมายหลายรายการเป็นองค์ประกอบแบบคงที่รายการเดียว ซึ่งจะเป็นประโยชน์ในกรณีที่ต้องใช้เครื่องหมายจำนวนมาก โดยค่าเริ่มต้น Maps JavaScript API จะตัดสินใจว่าจะเพิ่มประสิทธิภาพเครื่องหมายหรือไม่ เมื่อมีเครื่องหมายจำนวนมาก Maps JavaScript API จะพยายามแสดงผลเครื่องหมายด้วยการเพิ่มประสิทธิภาพ เครื่องหมายบางรายการอาจเพิ่มประสิทธิภาพไม่ได้ ในบางสถานการณ์ Maps JavaScript API อาจต้องแสดงผลเครื่องหมายโดยไม่มีการเพิ่มประสิทธิภาพ ปิดใช้การแสดงผลที่เพิ่มประสิทธิภาพสำหรับ GIF ภาพเคลื่อนไหว หรือ PNG หรือเมื่อต้องแสดงผลตัวทำเครื่องหมายแต่ละรายการเป็นองค์ประกอบ DOM แยกต่างหาก

การสร้างคลัสเตอร์เพื่อจัดการการแสดงเครื่องหมาย

หากต้องการช่วยจัดการการแสดงเครื่องหมายเพื่อระบุตำแหน่งบนแผนที่ ให้สร้างคลัสเตอร์เครื่องหมายโดยใช้ไลบรารี Marker Clusterer ไลบรารีการคลัสเตอร์เครื่องหมายมีตัวเลือกต่อไปนี้

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

การรับชม

ดูข้อมูลเกี่ยวกับการจัดการค่าใช้จ่าย Google Maps Platform ซึ่งรวมถึงการสร้างงบประมาณ การแก้ไขโควต้า และการตั้งค่าการแจ้งเตือนได้ที่หัวข้อจัดการค่าใช้จ่าย