← Blog'a geri dön
·6 dk okuma·

Google Maps’i özelleştirmek: Google Maps API ile ileri teknikler

Varsayılan Google Maps’i markaya hizalı görsel deneyime nasıl çevirirsiniz. Özel stil, HTML/SVG’li Advanced Marker, performans ve etkileşimli overlay.

Google Maps APIFrontend geliştirmeUX DesignJavaScriptWeb performansıEtkileşimli haritalar

Google Maps, konum özelliklerini web uygulamasına koymanın altın standardıdır. Emlak, teslimat takibi, mağaza bulucu: harita anında coğrafi bağlam verir. Ama varsayılan tasarım - parlak sarı yollar, doygun yeşil parklar, jenerik kırmızı pin - özenli marka kimliğiyle çatışır. Şık dark-mode veya minimal kurumsal portal, stillenmemiş bir widget ile ucuzlar.

Bunu çözmek için Google Maps Platform, haritanın görsel görünümünü ve etkileşimli davranışlarını tamamen özelleştirmek için güçlü APIs'yi sunar. Harita stilinde uzmanlaşarak, modern Gelişmiş İşaretleyiciler API'ü uygulayarak ve kritik web performansı optimizasyonlarını uygulayarak, ön uç geliştiricileri genel bir haritayı kusursuz, üst düzey bir tasarım öğesine yükseltebilir. Bu kılavuzda, tamamen özelleştirilmiş, üretime hazır Google Maps oluşturmak için gereken teknikleri ve kod mimarilerini ele alacağız.

1. Cloud tabanlı harita stili vs. kodda JSON stili

Geleneksel olarak Google Maps, `MapOptions` içindeki `styles` parametresine kocaman bir JSON kural dizisi verilerek stillenirdi. Otoyol, su, ulaşım gibi öğeler hedeflenir, dolgu, kenar ve etiket görünürlüğü değişirdi. İşe yarardı ama bir parkı açık yeşilden orman yeşiline çekmek kod, commit ve redeploy isterdi.

Bugün Google Maps Platform Cloud-Based Map Styling’i öne çıkarır. Kuralları JavaScript’e gömmek yerine Map Style’ları Google Cloud Console’da yönetirsiniz. Tasarımcılar renk, POI gizleme ve zoom’a bağlı özellikleri görsel editörde ayarlar. Koda tek bir Map ID bağlanır (`mapId: 'YOUR_MAP_ID'`). Konsolda yayınlanınca canlı site kod değişmeden güncellenir: tasarım ve geliştirme ayrılır.

2. Advanced Markers API ile pin’leri yükseltmek

Yıllar boyunca geliştiriciler varsayılan kırmızı iğneyi kullanmak veya işaretçi olarak statik PNG görüntüleri yüklemek zorunda kaldı. Eski `google.maps.Marker` son derece sınırlıydı; CSS animasyonlarını, dinamik vektör oluşturmayı veya erişilebilir HTML yapılarını desteklemiyordu. 2024 yılında Google, eski işaretleyici sınıfını resmi olarak kullanımdan kaldırıp "AdvancedMarkerElement"i tercih etti. Bu yeni API, geliştiricilerin isteğe bağlı HTML, React bileşenleri veya ham SVG öğelerini doğrudan harita görünüm portuna eklemesine olanak tanıyarak ön uç kullanıcı arayüzü geliştirmede muazzam bir değişimi temsil ediyor.

`AdvancedMarkerElement` ile marker’lar native, dinamik web bileşeni gibi hissedilir. Tıklanınca rengi değişen bir emlak fiyat rozeti veya gerçek zamanlı kargo için nabız atan nokta. HTML marker’lar şöyle uygulanır:

  • JavaScript'de bir DOM öğesi oluşturun: Düz bir div örneği oluşturma (örn. `const pin = document.createElement('div')`) ve degradeler, kenarlıklar ve animasyonlar için özel Tailwind CSS stilleri uygulama.
  • DOM öğesini marker’a vermek: öğeyi `AdvancedMarkerElement` seçeneklerindeki `content` özelliğine atamak.
  • Etkileşimli state: DOM’a standart click listener - state toggle, modal veya haritanın yanında detay.

3. Core Web Vitals’ı korumak: performans optimizasyonları

Özelleştirilmiş haritalar muhteşem durur ama performans maliyeti yüksektir. Google Maps JavaScript SDK, stil parse ve uydu görüntüsü megabaytlarca JS ve onlarca istek demektir. Sayfa yükünde eager yüklenirse harita skorları öldürür: ana thread’i bloklar (TBT) ve anlamlı içeriği geciktirir (LCP).

Bunu önlemek ve performansı tutmak için üç mühendislik stratejisi:

  • Intersection Observer ile lazy load: kullanıcı haritaya 300px kalana kadar Google Maps API script’ini yüklemeyin, konteyneri mount etmeyin. İlk yükleme hafif kalır.
  • Statik harita fallback (click-to-load): önce Google Static Maps API’den hafif bir görsel. Kullanıcı etkileşince (hover veya tık) anında tam etkileşimli dinamik haritayla değişir.
  • Haritalar SDK'sının Dinamik İçe Aktarımı: React/Next.js'de, JavaScript paketini bölmek ve harita kodunun birincil sayfa paketlerine yüklenmesini önlemek için harita kapsayıcı bileşenlerini dinamik olarak ("ssr: false" ile "sonraki/dinamik") yükleyin.

4. Marker clustering ve arama entegrasyonu

Klasik hata: bir anda fazla marker. Ülke görünümünde 500 şube: üst üste pin, yavaş render (zoom’da takılma) ve bilişsel yük. Netlik için `@googlemaps/markerclusterer`: yakındaki marker’ları sayı gösteren bir kümede toplar. Zoom’da küme tek tek marker’lara açılır.

Ayrıca, Google Rehber Otomatik Tamamlama API özelliğini haritanıza entegre etmek son derece etkili bir kullanıcı akışı oluşturur. Kullanıcılar bir adres aradığında Otomatik Tamamlama girişi metni doğrular, akıllı tahminler sunar ve kesin koordinatlar sağlar. Harita daha sonra yakınlaştırmasını seçilen alana dinamik olarak ortalayabilir ve odaklayabilir, yakındaki işaretçileri filtreleyebilir ve birinci sınıf haritalama platformlarıyla karşılaştırılabilecek sezgisel bir arama deneyimi sağlayabilir.

Harita UX’ini iş değerine çevirmek

Özelleştirilmiş harita yalnızca cilâ değildir; yolculukta kritik bir temas noktasıdır. Haritayı markaya uydurmak, eyleme götüren dinamik HTML marker’lar ve lazy load ile şimşek hızında yükleme: daha yüksek güven ve dönüşüm. Fiziksel mağaza veya emlak: akıcı harita deneyimi işinizin kalitesini yansıtır.

Özelleştirilmiş harita, gerçek zamanlı konum takibi veya sitede Google Maps performansı istiyorsanız yazın. Kullanıcılarınız için sezgisel, yüksek performanslı bir konum deneyimi tasarlayalım.

Tek tıkla işe alın

Beni tek tıkla geliştiriciniz olarak işe alın. İşletmeniz için dönüşüm odaklı web çözümleri - güvenli Upwork sözleşmesiyle.

Upwork üzerinden çalışalım

Projenizi konuşalım mı?

React ve Next.js konusunda uzman kıdemli bir web geliştiriciyim - dünya çapında freelance projelere açığım.

Google Takvim’de Görüşme Planla

Tarih ve saat seçin — Google Meet bağlantısı otomatik olarak oluşturulur.