หน้านี้แสดงรายการปัญหาที่ทราบและวิธีแก้ปัญหาสำหรับแผนที่เวกเตอร์และฟีเจอร์ WebGL
การรองรับเบราว์เซอร์/อุปกรณ์
การแสดงตัวอย่างฟีเจอร์ WebGL รองรับเบราว์เซอร์และอุปกรณ์เดียวกับ Maps JavaScript API หากต้องการตรวจสอบว่าเบราว์เซอร์ในอุปกรณ์หนึ่งๆ จะรองรับ WebGL หรือไม่ ให้ไปที่ get.webgl.org หรือ caniuse.com นอกจากนี้ โปรดตรวจสอบว่าได้เปิดใช้การเร่งฮาร์ดแวร์ในการตั้งค่าเบราว์เซอร์แล้ว ไม่เช่นนั้นแผนที่เวกเตอร์ จะกลับไปเป็น แรสเตอร์
แรสเตอร์หรือเวกเตอร์
บางครั้งแผนที่เวกเตอร์อาจกลับไปเป็นแรสเตอร์ เมื่อเกิดเหตุการณ์นี้ ฟีเจอร์ที่ขึ้นอยู่กับแผนที่เวกเตอร์จะไม่พร้อมใช้งาน การกลับไปใช้แผนที่แรสเตอร์อาจเกิดขึ้นได้จากหลายสาเหตุ ส่วนนี้จะแสดงวิธีกำหนดค่าเว็บเบราว์เซอร์อย่างถูกต้อง และวิธีตรวจสอบแบบเป็นโปรแกรมว่ามีความสามารถในการแสดงแผนที่เวกเตอร์หรือไม่
ตรวจสอบความสามารถของเบราว์เซอร์ใน Chrome
หากต้องการดูว่าความสามารถในการเร่งฮาร์ดแวร์ใดบ้างที่เปิดใช้อยู่ในการติดตั้ง Chrome เฉพาะ ให้ไปที่ chrome://gpu/ และตรวจสอบ ว่าได้เปิดใช้รายการต่อไปนี้ (เป็นสีเขียว)
- "OpenGL: Enabled"
- "WebGL: Hardware accelerated"
- "WebGL2: Hardware accelerated"
(นี่เป็นเพียงข้อกำหนดพื้นฐานเท่านั้น อาจมีปัจจัยอื่นๆ ที่ส่งผลต่อการรองรับ โปรดดู "ข้อบกพร่องที่ทราบ" ด้านล่าง)
เปิดการเร่งฮาร์ดแวร์
เบราว์เซอร์ส่วนใหญ่ต้องเปิดใช้การเร่งฮาร์ดแวร์เพื่อรองรับแผนที่เวกเตอร์ หากต้องการเปิดใช้การเร่งฮาร์ดแวร์ใน Chrome และ Microsoft Edge ให้เปิด การตั้งค่า เลือกระบบ และตรวจสอบว่าได้เปิดใช้ใช้การเร่งฮาร์ดแวร์ เมื่อใช้ได้ แล้ว
- ดูวิธีเปลี่ยนค่ากำหนดของเว็บไซต์ใน Safari
- ดูข้อมูลเกี่ยวกับการตั้งค่าประสิทธิภาพของ Firefox
ตรวจสอบแรสเตอร์หรือเวกเตอร์แบบเป็นโปรแกรม
คุณสามารถตรวจสอบแบบเป็นโปรแกรมว่าแผนที่เป็นแรสเตอร์หรือเวกเตอร์ได้โดยเรียกใช้ map.getRenderingType() ตัวอย่างต่อไปนี้แสดงโค้ดเพื่อตรวจสอบเหตุการณ์ renderingtype_changed และแสดงหน้าต่างข้อมูลที่ระบุว่ามีการใช้แผนที่แรสเตอร์หรือแผนที่เวกเตอร์
TypeScript
/** * This example creates a map with an info window that shows whether * the map render type is raster or vector. */ function initMap() { const center = {lat: 0, lng: 0}; const map = new google.maps.Map(document.getElementById('map') as HTMLElement, { center, zoom: 10, heading: 0.0, tilt: 0.0, // Map ID for a vector map. mapId: '6ff586e93e18149f', }); const canvas = document.createElement("canvas"); const infoWindow = new google.maps.InfoWindow({ content: '', ariaLabel: 'Raster/Vector', position: center, }); infoWindow.open({ map, }); map.addListener('renderingtype_changed', () => { infoWindow.setContent(`${map.getRenderingType()}`); }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
/** * This example creates a map with an info window that shows whether * the map render type is raster or vector. */ function initMap() { const center = { lat: 0, lng: 0 }; const map = new google.maps.Map(document.getElementById("map"), { center, zoom: 10, heading: 0.0, tilt: 0.0, // Map ID for a vector map. mapId: "6ff586e93e18149f", }); const canvas = document.createElement("canvas"); const infoWindow = new google.maps.InfoWindow({ content: "", ariaLabel: "Raster/Vector", position: center, }); infoWindow.open({ map, }); map.addListener("renderingtype_changed", () => { infoWindow.setContent(`${map.getRenderingType()}`); }); } window.initMap = initMap;
นอกจากนี้ คุณยังใช้บริบทการแสดงภาพ WebGL เพื่อตรวจสอบการรองรับ WebGL 2 ได้ด้วย
const canvas = document.createElement("canvas");
canvas.getContext("webgl2") ? console.log("WebGL 2 is supported") : console.log("WebGL 2 is NOT supported");
ดูวิธีอื่นๆ ในการตรวจหาบริบทการแสดงภาพ WebGL แบบเป็นโปรแกรม
การรองรับเว็บบนมือถือ
การรองรับเว็บบนมือถือสำหรับแผนที่เวกเตอร์ยังอยู่ในรุ่นทดลอง นักพัฒนาแอปสามารถใช้ Client API เพื่อตรวจหาเว็บเบราว์เซอร์บนเว็บบนมือถือ และใช้รหัสแผนที่ที่เชื่อมโยงกับแผนที่แรสเตอร์แทนแผนที่เวกเตอร์ เราคาดว่าประสิทธิภาพการแสดงภาพจะช้าลงในอุปกรณ์เคลื่อนที่บางรุ่น หากคุณเลือกใช้แผนที่เวกเตอร์ในเว็บบนมือถือ เรายินดีเป็นอย่างยิ่งหากคุณจะแชร์สถิติประสิทธิภาพและแสดงความคิดเห็น เช่นเดียวกับที่กล่าวไว้ข้างต้น หากการรองรับแผนที่เวกเตอร์ไม่พร้อมใช้งาน รหัสแผนที่เวกเตอร์จะกลับไปใช้แผนที่แรสเตอร์โดยอัตโนมัติ
ข้อบกพร่อง
ข้อบกพร่องที่ทราบ
- มีปัญหาที่ทราบใน Chrome บนอุปกรณ์ macOS บางรุ่นที่มี GPU ของ AMD ปัญหานี้อาจทำให้เกิดความสับสนเป็นพิเศษเมื่อ macOS สลับระหว่าง GPU แบบไดนามิกในอุปกรณ์ที่มี GPU หลายตัว ดังนั้นแผนที่เวกเตอร์อาจไม่พร้อมใช้งาน ทั้งนี้ขึ้นอยู่กับแอปอื่นๆ ที่กำลังทำงานอยู่ หรือมีการเชื่อมต่อจอภาพภายนอกหรือไม่ การเปิดใช้แบ็กเอนด์ ANGLE Metal ที่กำลังจะเปิดตัวของ Chrome ดูเหมือนจะแก้ไขปัญหานี้ได้ในบางกรณี คุณสามารถติดตามแผนการเปิดตัวทั่วไปสำหรับฟีเจอร์นี้ได้ที่ https://bugs.chromium.org/p/chromium/issues/detail?id=1322521
การรายงานข้อบกพร่อง
- โปรดอัปเดตเบราว์เซอร์และไดรเวอร์ GPU เป็นเวอร์ชันล่าสุดก่อนรายงานข้อบกพร่อง
- ตรวจสอบว่าได้เปิดใช้การตั้งค่าการเร่งฮาร์ดแวร์ที่
chrome://settings/system(Chrome),about:preferences#general(Firefox),edge://settings/system(Microsoft Edge) แล้ว ใน Safari ระบบจะเปิดใช้การตั้งค่านี้โดยอัตโนมัติใน macOS เวอร์ชัน 10.15 ขึ้นไป สำหรับ macOS เวอร์ชันเก่า โปรดไปที่การตั้งค่าขั้นสูงของ Safari และตรวจสอบว่าได้เปิดใช้ตัวเลือก "ใช้การเร่งฮาร์ดแวร์" แล้ว - ใส่ลิงก์โค้ดตัวอย่าง jsfiddle ในรายงานข้อบกพร่อง
- โปรดแนบภาพหน้าจอของ
chrome://gpu(Chrome),about:support(Firefox) หรือedge://gpu(Microsoft Edge) แนบข้อมูลที่เกี่ยวข้องกับ GPU ในรายงานข้อบกพร่องหากพบปัญหาการแสดงภาพ
บอกให้เรารู้ว่าคุณคิดอย่างไร
เราให้ความสำคัญกับความคิดเห็นของคุณในขณะที่เราพยายามมอบประสบการณ์การใช้งานแผนที่เวกเตอร์ที่ดีที่สุดให้แก่คุณและผู้ใช้ปลายทาง โปรดแจ้งให้เราทราบหากเกิดกรณีต่อไปนี้
- มีข้อผิดพลาดหรือข้อบกพร่อง/การขัดข้องใหม่ๆ ของ JavaScript ที่คุณตรวจพบในเว็บแอป
- เวลาในการตอบสนองของสตาร์ทอัพสำหรับแผนที่เวกเตอร์แย่กว่าแผนที่แรสเตอร์อย่างเห็นได้ชัด ในกรณีนี้ เมตริกสำหรับการถดถอยของเวลาในการตอบสนองของการเริ่มต้นจะมีประโยชน์มาก โดยทั่วไป เราต้องการทราบว่าเวลาในการตอบสนองของสตาร์ทอัพถดถอยเกินเกณฑ์ที่ยอมรับได้หรือไม่
- ประสบการณ์การใช้งานแผนที่เวกเตอร์ไม่ราบรื่นเท่าที่ควร หากคุณบันทึกเมตริก FPS หรือ jank เมตริกเหล่านี้เปรียบเทียบกันอย่างไรระหว่างแผนที่เวกเตอร์กับแผนที่แรสเตอร์
- ประสิทธิภาพแตกต่างกันอย่างมากตามเบราว์เซอร์
หากคุณตั้งค่าการทดสอบ A/B เพื่อเปรียบเทียบแผนที่เวกเตอร์กับแผนที่แรสเตอร์ โปรดแชร์ความคิดเห็นเกี่ยวกับประสิทธิภาพที่คุณได้รับ เนื่องจากข้อมูลนี้จะเป็นประโยชน์อย่างมากในการช่วยเราปรับปรุงฟีเจอร์