Bu kılavuzda, Google Haritalar API'lerinizin kullanımını güvenlik, performans ve tüketim açısından optimize etmek için çeşitli stratejiler açıklanmaktadır.
Güvenlik
Güvenlikle ilgili en iyi uygulamaları inceleme
API anahtarları, kullanıcı kimlikleri ve şifreler ile aynı önlemleri gerektiren proje odaklı kimlik bilgileridir. Anahtarlarınızı, istenmeyen kullanıma karşı korumak için API Güvenliği En İyi Uygulamaları'nı inceleyin. İstenmeyen kullanım, aşırı kota kullanımına ve hesabınızdan beklenmedik ödemelere neden olabilir.
Haritalar API'lerine erişmek için API anahtarlarını kullanma
API anahtarları, Google Haritalar API'lerine erişmek için tercih edilen kimlik doğrulama yöntemidir. İstemci kimlikleri şu anda hâlâ destekleniyor olsa da API anahtarları daha ayrıntılı güvenlik denetimlerini destekler ve belirli web adresleri, IP adresleri ve mobil SDK'larla (Android ve iOS) çalışacak şekilde ayarlanabilir. API anahtarı oluşturma ve güvenliğini sağlama hakkında bilgi edinmek için her API veya SDK'nın "API Anahtarı Kullanımı" sayfasına gidin. (Örneğin, Maps JavaScript API için API Anahtarı Kullanma başlıklı sayfasını ziyaret edin.)
Performans
Hataları işlemek için eksponansiyel geri yükleme kullanma
Uygulamalarınız kısa süre içinde bir API'yi çağırma girişimlerinin fazla olmasından kaynaklanan hatalarla (ör. kota hataları) karşılaşıyorsa isteklerin işlenebilmesi için eksponansiyel geri yükleme özelliğini kullanabilirsiniz.
Eksponansiyel geri yükleme, en çok 500 hataları için yararlıdır. Daha fazla bilgi için HTTP dönüş durum kodlarını işleme başlıklı makaleyi inceleyin.
Özellikle sorgularınızın hızını ayarlayın. Sorgular arasında S
saniyelik bir bekleme süresi ekleyin. Sorgu yine kota hatasıyla sonuçlanırsa bekleme süresini ikiye katlayın ve ardından başka bir sorgu gönderin. Sorgu hatasız bir şekilde döndürülene kadar bekleme süresini ayarlamaya devam edin.
Kullanıcı etkileşimi isteklerini isteğe bağlı olarak gönderme
Kullanıcı etkileşimi içeren API isteklerinin yalnızca talep üzerine gönderilmesi gerekir.
Bu, API isteğini başlatmak için son kullanıcının bir işlem (on-click
gibi) gerçekleştirmesini beklemek, ardından harita yüklemek, hedef belirlemek veya uygun bilgileri görüntülemek için sonuçları kullanmak anlamına gelir. İsteğe bağlı bir yaklaşım kullanmak, API'lere gereksiz istek göndermeyi önleyerek API tüketimini azaltır.
Harita hareket ederken yer paylaşımı içeriğinin gösterilmesini engelleme
Kullanıcı haritayı hareket ettirirken aynı anda harita üzerinde özel yer paylaşımı içeriği görüntülemek için Draw()
kullanmamaya çalışın. Kullanıcı haritayı her hareket ettirdiğinde harita yeniden çizildiğinden, haritaya aynı anda yer paylaşımı içeriği yerleştirmek gecikmeye veya görsel takılmalara neden olabilir. Haritaya yalnızca kullanıcı kaydırma veya yakınlaştırmayı durdurduktan sonra yer paylaşımı içeriği ekleyin veya haritadan yer paylaşımı içeriği kaldırın.
Draw
yöntemlerinde yoğun işlemlerden kaçınma
Genel bir kural olarak, Draw()
yönteminde performans açısından yoğun olan ve çizim dışı işlemlerden kaçınmak iyi bir uygulamadır. Örneğin, Draw()
yöntem kodunuzda aşağıdakilerden kaçının:
- Çok fazla içerik döndüren sorgular.
- Gösterilen verilerde çok fazla değişiklik.
- Birçok Belge Nesne Modeli (DOM) öğesini değiştirme
Bu işlemler performansı yavaşlatabilir ve harita oluşturulurken gecikmeye veya görsel takılmalara neden olabilir.
İşaretler için raster resimler kullanma
Harita üzerinde bir konumu tanımlamak için işaretçi eklerken .PNG veya .JPG biçimindeki resimler gibi raster resimler kullanın. SVG resimleri oluşturmak, harita yeniden çizilirken gecikmeye neden olabileceğinden Ölçeklenebilir Vektör Grafiği (SVG) resimlerini kullanmaktan kaçının.
İşaretçileri optimize etme
Optimizasyon, birçok işaretçiyi tek bir statik öğe olarak oluşturarak performansı artırır. Bu özellik, çok sayıda işaretçi gerektiğinde kullanışlıdır. Bir işaretçinin optimize edilip edilmeyeceğine varsayılan olarak Maps JavaScript API karar verir. Çok sayıda işaretçi olduğunda Haritalar JavaScript API'si, işaretçileri optimizasyonla oluşturmaya çalışır. Tüm işaretçiler optimize edilemez. Bazı durumlarda, Maps JavaScript API'nin işaretçileri optimizasyon olmadan oluşturması gerekebilir. Animasyonlu GIF'ler veya PNG'ler için optimize oluşturmayı devre dışı bırakın ya da her işaretçi ayrı bir DOM öğesi olarak oluşturulmalıdır.
İşaretçi görüntülemeyi yönetmek için kümeler oluşturma
Haritada konumları tanımlamak için işaretçilerin görüntülenmesini yönetmeye yardımcı olmak üzere Marker Clusterer kitaplığını kullanarak bir işaretçi kümesi oluşturun. İşaretçi grupları kitaplığı aşağıdaki seçenekleri içerir:
- Bir kümede birlikte gruplandırılacak işaretçi sayısını belirtmek için ızgara boyutu.
- Kümenin gösterileceği maksimum yakınlaştırma düzeyini belirtmek için maksimum yakınlaştırma.
- İşaretçi simgesi olarak kullanılacak grafik resimler için resim yolları.
İzleme
Bütçenizi planlamak ve maliyetlerinizi kontrol etmek için aşağıdakileri yapın:
- Maliyetlerinizin belirli bir tutara doğru nasıl arttığını izlemek için bütçe uyarısı ayarlayın. Bütçe ayarlamak API kullanımına sınır getirmez. Yalnızca maliyetleriniz belirttiğiniz tutara yaklaştığında sizi uyarır.
Faturalandırılabilir API'lerle ilgili maliyetlerinizi yönetmek için günlük API kullanımınızı sınırlayın. Günlük istek sayısı için sınırlar belirleyerek maliyetlerinizi sınırlandırabilirsiniz. Ne kadar harcama yapmak istediğinize bağlı olarak günlük sınırınızı belirlemek için basit bir denklem kullanın: (aylık maliyet/her biri için fiyat)/30 = günlük istek sınırı (bir API için). Uygulamanızda birden fazla faturalandırılabilir API kullanılıyor olabilir. Bu nedenle, denklemi gerektiği gibi ayarlayın. Her ay 200 ABD doları değerinde Google Haritalar API'si kredisi kullanabilirsiniz. Bu nedenle, hesaplamalarınızı yaparken bu krediyi göz önünde bulundurun.
Kullanımınızı ayırmak, önceliklendirmek ve izlemek için birden fazla proje kullanın. Örneğin, testlerinizde düzenli olarak Google Haritalar Platformu API'lerini kullandığınızı varsayalım. Testleriniz için kendi kotaları ve API anahtarları olan ayrı bir proje oluşturarak beklenmedik aşırı harcamalardan kaçınırken kapsamlı bir test yapabilirsiniz.
Haritalar'da tüketimi yönetme
Kullanıcılar genellikle aynı anda yalnızca bir harita ile etkileşim kurduğundan, harita görüntülemeyi optimize etmenin iyi bir yolu sayfa başına tek bir harita kullanmaktır. Uygulamanız, müşteri etkileşimine ve ihtiyaçlarına bağlı olarak farklı veri kümelerini görüntülemek için haritayı değiştirebilir.
Statik resimler kullanma
Dinamik görüntü kullanan istekler (Dinamik Haritalar ve Dinamik Street View), Statik Haritalar ve Statik Street View'dan daha pahalıdır. Kullanıcıların Haritalar veya Street View ile etkileşimde bulunacağını (yakınlaştırma veya kaydırma) düşünmüyorsanız bu API'lerin statik sürümlerini kullanın.
Statik Haritalar ve Statik Street View'un bir diğer kullanım alanı da küçük haritalar ve fotoğraflar olan küçük resimlerdir. Bu öğeler daha düşük bir ücretle ve kullanıcı etkileşimi (tıklama) sonrasında faturalandırılır ve kullanıcıları tam bir Google Haritalar deneyimi için dinamik bir sürüme yönlendirebilir.
Maps Embed API'yi kullanma
Tek işaretçi içeren bir harita veya dinamik harita eklemek için Maps Embed API'yi ücretsiz olarak kullanabilirsiniz. Tek bir işaretçi ve harita özelleştirmesi gerektirmeyen uygulamalar için Maps Embed API'yi kullanın. Yol Tarifi, Görünüm veya Arama modunu kullanan Maps Embed API istekleri faturalandırılır (ayrıntılar için fiyatlandırma tablosuna bakın).
Mobil uygulamalar için mobil haritalar SDK'larını kullanma
Mobil uygulamalarda harita görüntülerken Android için Haritalar SDK'sını veya iOS için Haritalar SDK'sını kullanın. Şartlar mobil SDK'ların kullanılmasını engellediğinde Maps Static API'yi veya Maps JavaScript API'yi kullanın.
Rotalarda tüketimi yönetme
Directions API yol işaretlerini sınırlama
Mümkünse bir sorgudaki kullanıcı girişlerini en fazla 10 yol noktasıyla sınırlayın. 10'dan fazla ara nokta içeren istekler daha yüksek ücretle faturalandırılır.
En uygun rota için Directions API optimizasyonunu kullanma
Ara nokta optimizasyonu bağımsız değişkenini kullanan istekler daha yüksek ücretle faturalandırılır. Daha fazla bilgi için Rota noktalarını optimize etme başlıklı makaleyi inceleyin.
Optimizasyon bağımsız değişkeni, en iyi rota oluşturmak için yol noktalarını sıralar. Yani A'dan E'ye seyahat, optimize edilmiş (A-B-C-D-E) bir rotaya kıyasla optimize edilmemiş bir rotanın rastgele sırasına (ör. A-D-B-C-E) kıyasla daha iyi bir deneyimdir.
Directions API ve Distance Matrix API'de gerçek zamanlı trafik modellerini kullanma
Gerçek zamanlı trafik modelleri içeren Directions API ve Distance Matrix API istekleri daha yüksek ücretle faturalandırılır.
Gerçek zamanlı trafik modelleri, kalkış saati now
olarak ayarlanarak etkinleştirilir.
Trafik modelleri bir istekten çıkarılırsa sonuçlar yalnızca fiziksel faktörlere (yollar, mesafe ve hız sınırları) dayanır.
GPS verileri doğru olmadığında takip edilen rota ve en yakın yol özelliğini kullanma
Haritalar Roads API'deki Seyahat Edilen Rota ve En Yakın Yol özellikleri gelişmiş katmana dahildir ve daha yüksek ücretle faturalandırılır. GPS verilerinin doğru olmadığı ve Roads API'nin doğru yolu belirlemeye yardımcı olabileceği durumlarda bu özellikleri kullanın. Roads API'nin bir diğer özelliği olan Hız Sınırları, yalnızca Asset Tracking müşterileri tarafından kullanılabilir.
Hız sınırı konumlarını 5 ila 15 dakikalık aralıklarla örnekleme
Maps Roads API Hız Sınırı hizmetine yapılan çağrıların hacmini en aza indirmek için öğelerinizin konumlarını 5 ila 15 dakikalık aralıklarla örnekleyin. Tam değer, bir öğenin hareket hızına bağlıdır. Bir öğe sabitse tek bir konum örneği yeterlidir. Birden fazla arama yapmanız gerekmez.
Genel gecikmeyi en aza indirmek için bir mobil öğenin konumu her alındığında API'yi çağırmaktansa, bazı verileri topladıktan sonra Hız Sınırı hizmetini çağırın.
Yerler'de tüketimi yönetme
Yer Adı Otomatik Tamamlama uygulamalarını optimize etme
Yer Otomatik Tamamlama özelliğinin maliyetini optimize etmek için:
Yalnızca ihtiyacınız olan Yer Veri Alanlarını döndürmek için JavaScript, Android ve iOS Otomatik Tamamlama widget'larında alan maskeleri kullanın.
Faturalandırma seçeneklerini belirlemek kullanım alanınıza bağlıdır. Uygulamanızda otomatik tamamlama oturumları kullanılıp kullanılmadığına bağlı olarak Otomatik Tamamlama - İstek Başına veya Otomatik Tamamlama - Oturum Başına SKU'larından ücretlendirilirsiniz.
Kullanım alanınıza uygun doğru seçeneği belirleme hakkında daha fazla bilgi ve rehberlik için Yer otomatik tamamlama maliyet optimizasyonuyla ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.
Yer Ayrıntıları ve Yer Arama isteklerinde belirli alanlara ait verileri döndürme
Yer Ayrıntıları ve Yer Arama isteklerini, uygulamanızda kullanılan belirli alanlara ait verileri döndürecek şekilde özelleştirebilirsiniz. Bu alanlar Temel, Kişi ve Atmosfer kategorilerine ayrılmıştır. Herhangi bir alan belirtilmeyen isteklerde tüm alanlara ait veriler alınır.
Yer Ayrıntıları isteklerinin faturalandırması, istenen veri türlerine ve miktarlarına göre yapılır. Hiçbir alan belirtilmeyen istekler tam ücret üzerinden faturalandırılır. Daha fazla bilgi için Yer Ayrıntıları ve Yer Arama başlıklı makaleleri inceleyin.
Geocoding API'yi kullanarak maliyetleri azaltma
Uygulamanız kullanıcı tarafından yazılan adresleri kullanıyorsa adresler bazen belirsiz olabilir (eksik, yanlış yazılmış veya kötü biçimlendirilmiş). Otomatik tamamlamayı kullanarak adreslerin anlamını netleştirin, ardından yer kimliklerini kullanarak yer konumlarını alın.
Ancak tam bir adresiniz (veya buna yakın bir adresiniz) varsa Otomatik Tamamlama yerine Coğrafi Kodlama'yı kullanarak maliyetleri düşürebilirsiniz. Daha fazla bilgi için Adresleri Coğrafi Kodlamayla İlgili En İyi Uygulamalar başlıklı makaleyi inceleyin.
Google Haritalar Platformu kotalarının işleyiş şekli
Tüm API'lerimizde, her müşterinin yapabileceği çağrı sayısıyla ilgili sınırlamalar vardır. Bu kotalar, dakika başına olacak şekilde yapılandırılır. Belirli bir API'de bir dakika içinde arama kotasına ulaştığınızda sonraki dakikaya kadar yapılan aramalar kabul edilmez.
Yalnızca başarılı istekler ve sunucu hatalarına neden olan istekler kotaya dahil edilir. Kimlik doğrulama işlemi başarısız olan istekler kotaya dahil edilmez.
Toplam istek hacminize göre herhangi bir GMP API ürünü için maliyetlerinizi tahmin edin.