Bilgi Pencereleri

Platform seçin: Android iOS JavaScript

Bilgi penceresinde, haritanın üzerindeki pop-up pencerede metin veya resimler görüntülenir. Bilgi pencereler her zaman bir işaretçiye sabitlenir. Varsayılan davranışı: ekrana dokunulduğunda gösterilecek.

Kod örnekleri

GitHub'daki ApiDemos deposu, tüm bilgi penceresi özelliklerini gösteren örnek:

Giriş

Bilgi penceresi, dokunduğunda kullanıcıya bilgileri görüntülemenizi sağlar kullanabilirsiniz. Aynı anda yalnızca bir bilgi penceresi görüntülenir. Kullanıcı mevcut bilgi penceresi kapatılır ve yeni bilgi penceresi, bir metin görüntülenir. Kullanıcı, işaretleyiciyi tıklarsa şu anda bir bilgi penceresi gösteriliyorsa, bu bilgi penceresi kapanıp yeniden açılır.

Cihaz ekranına dayalı olarak ortalanmış bir bilgi penceresi çizilir üzerine gelin. Varsayılan bilgi penceresi, başlığı içerir kalın harflerle gösterilir ve (isteğe bağlı) snippet metni başlığın altında bulunur.

Bilgi penceresi ekleyin

Bilgi penceresi eklemenin en basit yolu, title() ve snippet() ayarlarını yapmaktır. yeni bir yöntemin kullanılması olduğunu unutmayın. Bu özelliklerin ayarlanması, bilgi penceresi görünecektir.

Kotlin



val melbourneLatLng = LatLng(-37.81319, 144.96298)
val melbourne = map.addMarker(
    MarkerOptions()
        .position(melbourneLatLng)
        .title("Melbourne")
        .snippet("Population: 4,137,400")
)

      

Java


final LatLng melbourneLatLng = new LatLng(-37.81319, 144.96298);
Marker melbourne = map.addMarker(
    new MarkerOptions()
        .position(melbourneLatLng)
        .title("Melbourne")
        .snippet("Population: 4,137,400"));

      

Bilgi penceresini göster/gizle

Bilgi pencereleri, kullanıcı dokunma etkinliklerine yanıt vermek üzere tasarlanmıştır. Dilerseniz şunu arayarak bir bilgi penceresini programlı bir şekilde gösterebilir: showInfoWindow() görebilirsiniz. Bilgi penceresi sesli arama yoluyla gizlenebilir hideInfoWindow().

Kotlin



val melbourneLatLng = LatLng(-37.81319, 144.96298)
val melbourne = map.addMarker(
    MarkerOptions()
        .position(melbourneLatLng)
        .title("Melbourne")
)
melbourne?.showInfoWindow()

      

Java


final LatLng melbourneLatLng = new LatLng(-37.81319, 144.96298);
Marker melbourne = map.addMarker(
    new MarkerOptions()
        .position(melbourneLatLng)
        .title("Melbourne"));
melbourne.showInfoWindow();

      

Tek tek kümelenmiş işaretçiler için de bilgi pencereleri oluşturabilirsiniz. Tek tek kümelenmiş işaretçiler için bilgi penceresi ekleme ile ilgili kılavuzu okuyun.

Özel bilgi pencereleri

Ayrıca, bilgi pencerelerinin içeriğini ve tasarımını da özelleştirebilirsiniz. Yapılacaklar Bu durumda, kalite standartlarının InfoWindowAdapter arayüzünü ve ardından çağrı GoogleMap.setInfoWindowAdapter() bazı ipuçları vereceğim. Arayüzde, uygulayabileceğiniz iki yöntem bulunur: getInfoWindow(Marker) ve getInfoContents(Marker). İlgili içeriği oluşturmak için kullanılan API önce getInfoWindow(Marker) yöntemini çağırır. null bu çağrılıyorsa: çağrılırsa getInfoContents(Marker) çağırır. Bu işlem şu sonucu da döndürürse: null, varsayılan bilgi penceresi kullanılır.

Bunlardan (getInfoWindow()) ilki, Google Haritalar'ı kullanarak tüm bilgi penceresi için kullanılacak. Bunlardan ikincisi (getInfoContents()) yalnızca pencerenin içeriğini özelleştirmenize olanak tanır Ancak yine de varsayılan bilgi penceresi çerçevesini ve arka planını koruyabilirsiniz.

Aşağıdaki resimlerde varsayılan bilgi penceresi, özelleştirilmiş bilgiler içeren bir bilgi penceresi içeriği ve özelleştirilmiş çerçeve ile arka planı olan bir bilgi penceresi

Bilgi Penceresi Karşılaştırması

Bilgi penceresi etkinlikleri

MarkerDemoActivity örneği, bilgi penceresi etkinliklerini kaydetme ve işleme.

OnInfoWindowClickListener kullanarak şunları yapabilirsiniz: bir bilgi penceresindeki tıklama etkinliklerini dinleme. Bu işleyiciyi haritaya ayarlamak için: GoogleMap.setOnInfoWindowClickListener(OnInfoWindowClickListener) numaralı telefonu arayın. Zaman Kullanıcı bir bilgi penceresini tıkladığında, onInfoWindowClick(Marker) adı bilgi penceresi varsayılan vurgu rengiyle (gri) vurgulanır.

Kotlin



internal inner class InfoWindowActivity : AppCompatActivity(),
    OnInfoWindowClickListener,
    OnMapReadyCallback {
    override fun onMapReady(googleMap: GoogleMap) {
        // Add markers to the map and do other map setup.
        // ...
        // Set a listener for info window events.
        googleMap.setOnInfoWindowClickListener(this)
    }

    override fun onInfoWindowClick(marker: Marker) {
        Toast.makeText(
            this, "Info window clicked",
            Toast.LENGTH_SHORT
        ).show()
    }
}

      

Java


class InfoWindowActivity extends AppCompatActivity implements
    GoogleMap.OnInfoWindowClickListener,
    OnMapReadyCallback {

    @Override
    public void onMapReady(GoogleMap googleMap) {
        // Add markers to the map and do other map setup.
        // ...
        // Set a listener for info window events.
        googleMap.setOnInfoWindowClickListener(this);
    }

    @Override
    public void onInfoWindowClick(Marker marker) {
        Toast.makeText(this, "Info window clicked",
            Toast.LENGTH_SHORT).show();
    }
}

      

Benzer şekilde, uzun tıklama etkinliklerini izlemek için OnInfoWindowLongClickListener: telefon ederek ayarlayabilirsiniz GoogleMap.setOnInfoWindowCloseListener(OnInfoWindowCloseListener). Bu işleyici, tıklama işleyiciye benzer şekilde davranır ve onInfoWindowClose(Marker) geri çağırmasına sahip uzun tıklama etkinlikleri.

Bilgi penceresi kapandığında bildirim almak için şunu kullanın: OnInfoWindowCloseListener arayarak ayarlandı GoogleMap.setOnInfoWindowCloseListener(OnInfoWindowCloseListener). Bu kurstan sonra onInfoWindowClose(Marker) geri aranır.

Bilgi penceresini yenileme hakkında not: onInfoWindowClose() etkinliği aşağıdaki durumlarda tetiklenir Kullanıcı, halihazırda açık olan bir işaretçiye dokunarak bilgi penceresini yeniler bilgi penceresine gidin. Ancak programatik olarak Marker.showInfoWindow() adlı kişiyi bilgi penceresini açarsanız onInfoWindowClose() etkinliği tetiklenmez. İkincisi bilgi penceresinin açık olduğunun farkında olduğunuz varsayımına dayanır. kapatıp yeniden açın.

Bilgi pencereleriyle ilgili bir önceki bölümde belirtildiği gibi, bilgi penceresi Canlı görüntüleme. Bunun yerine, görünüm haritada bir resim olarak oluşturulur. Kullanıcı görünüm için ayarladığınız dinleyiciler göz ardı edilir ve Görünümün çeşitli bölümlerindeki tıklama etkinliklerini birbirinden ayırt edebilirsiniz. Şunları yapmanız önerilir: düğmeler, onay kutuları veya metinler gibi etkileşimli bileşenleri yerleştirmeyin girişleriniz olabilir.