Bu sayfada, vektör haritalar ve WebGL özellikleriyle ilgili bilinen sorunlar ve geçici çözümler listelenmiştir.
Tarayıcı/cihaz desteği
WebGL özellik önizlemesi, Maps JavaScript API ile aynı tarayıcıları ve cihazları destekler. Belirli bir cihazdaki tarayıcının WebGL'yi destekleyip desteklemediğini kontrol etmek için get.webgl.org veya caniuse.com adresini ziyaret edin. Ayrıca, tarayıcı ayarlarında donanım hızlandırmanın etkinleştirildiğinden emin olun. Aksi takdirde vektör haritalar raster olarak geri döner.
Rastar mı vektör mü?
Bazen bir vektör harita rastere geri dönebilir. Bu durumda, vektör haritaya bağlı özellikler kullanılamaz. Raster haritaya geçiş çeşitli nedenlerle gerçekleşebilir. Bu bölümde, web tarayıcınızı nasıl doğru şekilde yapılandıracağınız ve vektör harita özelliğinin olup olmadığını programlı olarak nasıl kontrol edeceğiniz gösterilmektedir.
Chrome'da tarayıcı özelliklerini kontrol etme
Belirli bir Chrome yüklemesinde hangi donanım hızlandırma özelliklerinin etkinleştirildiğini belirlemek için chrome://gpu/ adresine gidin ve aşağıdaki öğelerin etkinleştirildiğinden (yeşil renkte) emin olun:
- "OpenGL: Etkin"
- "WebGL: Donanım hızlandırmalı"
- "WebGL2: Donanım hızlandırmalı"
(Bunlar yalnızca temel koşullardır. Desteği etkileyen başka faktörler de olabilir. Aşağıdaki "Bilinen hatalar" bölümüne bakın.)
Donanım hızlandırmayı etkinleştirme
Vektör haritalarının desteklenmesi için çoğu tarayıcıda donanım hızlandırma etkin olmalıdır. Chrome ve Microsoft Edge'de donanım hızlandırmayı etkinleştirmek için Ayarlar'ı açın, Sistem'i seçin ve Kullanılabilir olduğunda donanım hızlandırmayı kullan seçeneğinin etkinleştirildiğinden emin olun.
- Safari'de web sitesi tercihlerini nasıl değiştireceğinizi öğrenin.
- Firefox'un performans ayarları hakkında bilgi edinin.
Rastgele veya vektör olup olmadığını programlı olarak kontrol etme
map.getRenderingType()
işlevini çağırarak bir haritanın raster mi yoksa vektör mü olduğunu programlı olarak kontrol edebilirsiniz. Aşağıdaki örnekte, renderingtype_changed
etkinliğini izleyen ve raster veya vektör haritanın kullanılıp kullanılmadığını gösteren bir bilgi penceresi gösteren kod gösterilmektedir.
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 2 desteğini kontrol etmek için WebGL oluşturma bağlamını da kullanabilirsiniz:
const canvas = document.createElement("canvas");
canvas.getContext("webgl2") ? console.log("WebGL 2 is supported") : console.log("WebGL 2 is NOT supported");
WebGL oluşturma bağlamını programatik olarak algılamanın diğer yollarını öğrenin.
Mobil web desteği
Vektör haritalar için mobil web desteği hâlâ deneyseldir. Geliştiriciler, mobil web tarayıcıları algılamak ve vektör haritası yerine bir raster haritayla ilişkili bir harita kimliği kullanmak için istemci API'lerini kullanabilir. Bazı mobil cihazlarda oluşturma performansının daha yavaş olacağını tahmin ediyoruz. Mobil web'de vektör haritalar kullanmayı seçerseniz performans istatistikleri ve geri bildirimlerinizi bizimle paylaşırsanız çok memnun oluruz. Yukarıda da belirtildiği gibi, vektör harita desteği kullanılamıyorsa vektör harita kimliği otomatik olarak raster harita kullanmaya geçer.
Hatalar
Bilinen hatalar
- AMD GPU'lara sahip bazı macOS cihazlarda Chrome ile ilgili bilinen bir sorun vardır. Bu durum, macOS birden fazla GPU'ya sahip cihazlarda GPU'lar arasında dinamik olarak geçiş yaptığında özellikle kafa karıştırıcı olabilir. Bu nedenle, diğer uygulamaların çalışmasına veya harici bir monitörün bağlı olup olmadığına bağlı olarak vektör haritalar kullanılamayabilir. Chrome'un yakında kullanıma sunulacak ANGLE Metal arka ucunu etkinleştirmek, bazı durumlarda bu sorunu düzeltiyor. Bu özellik için genel kullanıma sunma planlarını https://bugs.chromium.org/p/chromium/issues/detail?id=1322521 adresinden takip edebilirsiniz.
Hata bildirme
- Hatayı bildirmeden önce lütfen tarayıcıyı ve GPU sürücüsünü en son sürüme güncelleyin.
chrome://settings/system
(Chrome),about:preferences#general
(Firefox),edge://settings/system
(Microsoft Edge)'deki donanım hızlandırma ayarının etkinleştirildiğinden emin olun. Safari'de bu ayar, macOS 10.15 veya sonraki sürümlerde otomatik olarak etkinleştirilir. Eski MacOS sürümlerinde lütfen Safari gelişmiş ayarlarına gidin ve "Donanım hızlandırmayı kullan" seçeneğinin etkinleştirildiğinden emin olun.- Hata raporuna jsfiddle örnek kod bağlantısını ekleyin.
- Ayrıca, lütfen
chrome://gpu
(Chrome),about:support
(Firefox) veyaedge://gpu
(Microsoft Edge) tarayıcılarının ekran görüntüsünü alın. Oluşabilecek oluşturma sorunlarında GPU ile ilgili bilgileri hata raporuna ekleyin.
Düşüncelerinizi bizimle paylaşın
Sizin ve son kullanıcılarınızın en iyi vektör harita deneyimini yaşamasını sağlamak için geri bildirimlerinizi dikkate alıyoruz. Aşağıdaki durumlarda lütfen bize bildirin:
- Web uygulamalarınızda yeni JavaScript hataları veya hatalar/kilitlenmeler tespit ederseniz
- Vektör haritalarının başlatma gecikmesi, raster haritalara kıyasla önemli ölçüde daha kötüdür. Bu durumda, başlatma gecikmesi regresyon metrikleri çok faydalıdır. Genel olarak, başlangıç gecikmesinin kabul edilebilir eşiklerin ötesine geçip geçmediğini öğrenmek isteriz.
- Vektör harita deneyimi olabildiğince sorunsuz değil. FPS veya takılma metriklerini kaydederseniz bu metrikler vektör ve raster haritalar arasında nasıl karşılaştırılır?
- Performans, tarayıcıya göre büyük ölçüde farklılık gösterir.
Vektör haritalarla raster haritaların karşılaştırması için A/B testi oluşturduysanız özelliği hassaslaştırmamıza yardımcı olacağı için lütfen edindiğiniz performans geri bildirimlerini paylaşın.