Isochrones API'si için en iyi uygulamalar

Düzeltme ve aslına uygunluk

polygon_fidelity ve enable_smoothing parametrelerini kullanarak çıkış poligonlarının görünümünü ve hassasiyetini özelleştirebilirsiniz. Bu seçenekler birbirinden bağımsız olsa da nihai şekli belirlemek için birlikte çalışır.

  • polygonFidelity (polygon_fidelity): Çözüm. Ulaşılabilir alanı hesaplamak için kullanılan temel uzamsal ızgara hücrelerinin boyutunu kontrol eder.

    • LOW: En büyük ızgara hücrelerini (birkaç yüz metre genişliğinde) kullanır. Geniş alanları boşluksuz kapsamak ve köşe sayısını en aza indirmek için en iyi seçenektir. Dar yol koridorları boyunca erişilebilir alanı fazla tahmin edebilen genelleştirilmiş bir şekil oluşturur.
    • MEDIUM: Dengeli hassasiyet ve yük boyutu.
    • HIGH: En küçük ızgara hücrelerini (yaklaşık 100-150 metre genişliğinde) kullanır. Daha fazla köşe ile yol ağına daha sıkı bir uyum sağlar ancak yol ağının seyrek olduğu yerlerde iç boşluklar oluşturabilir.
    • Varsayılan (POLYGON_FIDELITY_UNSPECIFIED): Belirtilmezse hizmet, seyahat moduna ve süreye göre çözünürlüğü otomatik olarak seçer. Kısa süreler ve WALK için daha küçük hücreler, uzun süreler için ise daha büyük hücreler kullanılır. Farklı süreler veya seyahat modları arasında eş zamanlıları karşılaştırmak için polygonFidelity değerini açıkça ayarlayarak aynı çözünürlüğü kullanmalarını sağlayın.

    Hücre boyutları yaklaşık değerlerdir. Çok büyük eş zamanlılar, yanıt boyutunu yönetilebilir tutmak için daha fazla genelleştirilebilir.

  • enableSmoothing (enable_smoothing): Estetik. Doğruluk tarafından tanımlanan ızgara hücrelerinin basamaklı kenarlarının yuvarlatılıp yuvarlatılmayacağını kontrol eder.
    • false (Ham): Izgaraya hizalanmış sınırı döndürür. Kenarlar, ızgara hücrelerini yansıtacak şekilde pürüzlü veya basamaklı görünür. Katı çokgen içinde nokta testleri gibi analitik doğruluk için en iyisidir.
    • true (Düzleştirilmiş): Her halkanın alanını yaklaşık olarak korurken köşeleri yuvarlar. Haritalarda görsel olarak gösterim için en uygun seçenektir. Sınır artık ızgara hücrelerini takip etmediğinden, katı çokgen içinde nokta testleri için kullanmayın.

Etkileşim şekli: Doğruluk, düzeltme algoritmasının üzerinde işlem yaptığı temel ayrıntıyı belirler.

  • Yüksek Doğruluk + Düzeltme: Yol sonlarını yakından takip eden, ayrıntılı ve organik görünümlü bir şekil oluşturur.
  • Düşük Doğruluk + Düzeltme: Geniş, genelleştirilmiş bir "damla" şekli oluşturur.

Yük boyutu ve oluşturma

Büyük eş zamanlılar (özellikle HIGH doğruluğuna sahip uzun süreli istekler) on binlerce koordinat içerebilir ve sıkıştırılmamış JSON yanıtı birkaç yüz kilobayt veya daha fazla olabilir.

  • Bant genişliği: JSON yanıt boyutunun, yüksek doğruluk oranına sahip maksimum süre istekleri için önemli olduğunu unutmayın.
  • Oluşturma: Çok ayrıntılı poligonlar oluşturmak istemci performansını etkiler. Tepe noktası sayısını ve yük boyutunu azaltmak için polygonFidelity: MEDIUM veya LOW seçeneğini belirleyin ya da oluşturma işleminden önce Douglas-Peucker gibi bir çizgi basitleştirme algoritması kullanarak istemcideki geometriyi basitleştirin.

Gecikme ve istemci zaman aşımları

Yanıt gecikmesi, geçilen yol ağının boyutuyla birlikte artar: Kısa süreler ile WALK ve BICYCLE modları en hızlıyken uzun DRIVE ve TWO_WHEELER istekleri (özellikle TRAFFIC_AWARE ile) en uzun süreyi alır.

  • Önerilen istemci zaman aşımı: HTTP veya gRPC istemci son tarihlerini en az 30 saniye olarak yapılandırın. Böylece uzun istekler, kısa bir istemci zaman aşımı nedeniyle erken iptal edilmez.

Hata işleme

429 RESOURCE_EXHAUSTED sıklık sınırlaması yanıtları ve 5xx sunucu hataları için eksponansiyel geri yükleme ve gecikme varyasyonu ile yeniden deneme mantığını uygulayın. İsteğinizi değiştirmeden 400, 403 veya 404 istemci hatalarını yeniden denemeyin:

  • INVALID_ARGUMENT (400): travelDuration değerinin 1s ile 3600s (DRIVE/TWO_WHEELER) veya 7200s (WALK/BICYCLE) arasında olduğunu, location değerinin atlanmadığını ve (0, 0) olmadığını (veya place değerinin geçerli bir yer kimliği olduğunu) ve TRAFFIC_AWARE değerinin yalnızca DRIVE veya TWO_WHEELER ile kullanıldığını kontrol edin. Atlanan latitude veya longitude, 0.0 olarak değerlendirilir. Bu nedenle, bunlardan yalnızca birinin atlanması genellikle 400 hatasına neden olmaz (diğer değer de 0.0 olmadığı sürece). Eş zamanlılık yanlış yerde görünüyorsa her iki değeri de tekrar kontrol edin.
  • PERMISSION_DENIED (403): API anahtarınızın veya OAuth jetonunuzun dahil edildiğini ve Google Cloud projenizde Isochrones API ile faturalandırmanın etkinleştirildiğini doğrulayın.
  • NOT_FOUND (404): place bir konuma çözümlenemedi veya başlangıç noktası, seyahat modu tarafından kullanılabilen yakındaki bir yola (yaklaşık 200 metre içinde veya WALK ve BICYCLE için daha az) tutturulamadı.
  • RESOURCE_EXHAUSTED (429): Projeniz, dakika başına istek kotasını (varsayılan olarak 300 QPM) aştı. Eksponansiyel geri yüklemeyle yeniden deneme yapılıyor.