← Bloga 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.

Google Maps Platform, görünümü ve etkileşimi tam özelleştirmek için sağlam API’ler sunar. Harita stili, modern Advanced Markers API ve kritik performans optimizasyonu, jenerik bir haritayı yüksek uçlu bir tasarım öğesine çıkarır. Bu rehber, production’a hazır özelleştirilmiş Google Maps için teknik ve mimariyi gezer.

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ıllarca varsayılan kırmızı pin veya statik PNG marker mecburdu. Eski `google.maps.Marker` çok kısıtlıydı: CSS animasyonu, dinamik vektör, erişilebilir HTML yok. 2024’te Google bunu `AdvancedMarkerElement` lehine deprecated etti. Sıçrama: harita viewport’una keyfi HTML, React bileşeni veya ham SVG.

`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’te bir DOM öğesi: düz bir div (`const pin = document.createElement('div')`) ve gradyan, kenar, animasyon için Tailwind stilleri.
  • 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.
  • Maps SDK’nın dinamik import’u: React/Next.js’te harita konteynerini `next/dynamic` ve `ssr: false` ile yükleyin; bundle’ı bölün, harita kodunu ana sayfa paketlerine sokmayın.

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.

Google Places Autocomplete’i haritaya bağlamak akışı güçlendirir. Adres aranınca input metni doğrular, akıllı tahmin ve kesin koordinat verir. Harita seçilen alana merkezlenir, zoom yapar, yakındaki marker’ları süzgeçler - premium harita platformlarına denk sezgisel arama.

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.

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.