Gelişmiş işaretçi oluşturma

Platform seçin: Android iOS JavaScript

Bir haritaya gelişmiş işaretçiler eklemek için yeni bir AdvancedMarkerOptions ve ardından GoogleMap.addMarker() eklemek için:

Kotlin

private val SYDNEY = LatLng(-33.87365, 151.20689)
val marker: Marker? = map.addMarker( AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) .zIndex(zIndex) )

Java

private final LatLng SYDNEY = new LatLng(-33.87365, 151.20689);
Marker marker = map.addMarker( new AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) .zIndex(zIndex));

GoogleMap.addMarker(), Marker örneği döndürür. Gerekirse döndürülen değeri AdvancedMarker.

Gelişmiş işaretçileri yapılandırmak için AdvancedMarkerOptions öğesini kullanın. AdvancedMarkerOptions, şunun bir alt sınıfıdır: MarkerOptions bu nedenle MarkerOptions ile aynı ayarların tümünü destekler.

AdvancedMarkerOptions ile şunları da yapabilirsiniz:

  • PinConfig sınıfının bir örneğini oluşturun ve ardından AdvancedMarkerOptions örneğini yapılandırmak için PinConfig örneğini kullanın.

    ÖrneğinPinConfig arka plan rengi, kenarlık rengi ve glif.

  • Android View sınıfının bir örneğini oluşturun ve AdvancedMarkerOptions örneğini yapılandırmak için bu örneği kullanın.

    Görüntüle örneği, işaretçiyi tamamen özelleştirmenizi sağlar.

PinConfig kullanma

PinConfig sınıfı, gelişmiş işaretçileri özelleştirme seçeneklerini içerir. PinConfig'ü kullanarak:

  • Arka plan rengini değiştirme
  • Kenarlık rengini değiştirme
  • Glif rengini değiştirin veya metin ekleyin
  • Simgeyi gizleme
Gelişmiş işaretçinin bölümlerini gösteren bir diyagram.
Şekil 1: Gelişmiş İşaretçi'nin bölümleri.

PinConfig.Builder kullanın kullanarak PinConfig örneği oluşturun:

Kotlin

// Use PinConfig.Builder to create an instance of PinConfig.
val pinConfigBuilder: PinConfig.Builder = PinConfig.builder()
pinConfigBuilder.setBackgroundColor(Color.MAGENTA)
val pinConfig: PinConfig = pinConfigBuilder.build()

// Use the PinConfig instance to set the icon for AdvancedMarkerOptions. val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .icon(BitmapDescriptorFactory.fromPinConfig(pinConfig)) .position(MARKER_POSITION)

// Pass the AdvancedMarkerOptions instance to addMarker(). val marker: Marker? = map.addMarker(advancedMarkerOptions)

Java

// Use PinConfig.Builder to create an instance of PinConfig.
PinConfig.Builder pinConfigBuilder = PinConfig.builder();
pinConfigBuilder.setBackgroundColor(Color.MAGENTA);
PinConfig pinConfig = pinConfigBuilder.build();
// Use the PinConfig instance to set the icon for AdvancedMarkerOptions. AdvancedMarkerOptions advancedMarkerOptions = new AdvancedMarkerOptions() .icon(BitmapDescriptorFactory.fromPinConfig(pinConfig)) .position(MARKER_POSITION);
// Pass the AdvancedMarkerOptions instance to addMarker(). Marker marker = map.addMarker(advancedMarkerOptions);

Arka plan rengini değiştirme

Bir arka plan rengini değiştirmek için PinConfig.background() yöntemini kullanın işaretçi:

Kotlin

// Use PinConfig.Builder to create an instance of PinConfig.
val pinConfigBuilder: PinConfig.Builder = PinConfig.builder()
pinConfigBuilder.setBackgroundColor(Color.MAGENTA)
val pinConfig: PinConfig = pinConfigBuilder.build()

Java

// Use PinConfig.Builder to create an instance of PinConfig.
PinConfig.Builder pinConfigBuilder = PinConfig.builder();
pinConfigBuilder.setBackgroundColor(Color.MAGENTA);
PinConfig pinConfig = pinConfigBuilder.build();

Kenarlık rengini değiştirme

Bir hücrenin kenarlık rengini değiştirmek için PinConfig.borderColor() yöntemini kullanın işaretçi:

Kotlin

// Set the border color.
val pinConfigBuilder: PinConfig.Builder = PinConfig.builder()
pinConfigBuilder.setBorderColor(Color.BLUE)
val pinConfig: PinConfig = pinConfigBuilder.build()

Java

// Set the border color.
PinConfig.Builder pinConfigBuilder = PinConfig.builder();
pinConfigBuilder.setBorderColor(Color.BLUE);
PinConfig pinConfig = pinConfigBuilder.build();

Simgeyi değiştirme

Bir Glyph örneği oluşturun ve ardından PinConfig'ı yapılandırmak için bu örneği kullanın. Glif metni ve metin rengini, glif rengini veya glif olarak kullanılacak özel bir resim belirtin.

Aşağıdaki örnekte glif metni ayarlanmaktadır:

Kotlin

// Set the glyph text.
val pinConfigBuilder: PinConfig.Builder = PinConfig.builder()
val glyphText = Glyph("A")
// Alteratively, you can set the text color: // Glyph glyphText = new Glyph("A", Color.GREEN);
pinConfigBuilder.setGlyph(glyphText) val pinConfig: PinConfig = pinConfigBuilder.build()

Java

// Set the glyph text.
PinConfig.Builder pinConfigBuilder = PinConfig.builder();
PinConfig.Glyph glyphText = new PinConfig.Glyph("A");
// Alternatively, you can set the text color: // PinConfig.Glyph glyphText = new PinConfig.Glyph("A", Color.GREEN);
pinConfigBuilder.setGlyph(glyphText); PinConfig pinConfig = pinConfigBuilder.build();

Glif rengini belirleyin:

Kotlin

val glyphColor = PinConfig.Glyph(Color.BLUE)
pinConfigBuilder.setGlyph(glyphColor)
val pinConfig: PinConfig = pinConfigBuilder.build()

Java

PinConfig.Glyph glyphColor = new PinConfig.Glyph(Color.BLUE);
pinConfigBuilder.setGlyph(glyphColor);
PinConfig pinConfig = pinConfigBuilder.build();

Simge için özel bir resim ayarlayın. Bir anahtar kelime listesi özel logo veya başka bir görsel göstergeye yer vermelisiniz.

Kotlin

// Set the glyph image.
val glyphImage: Int = R.drawable.example_image
val descriptor = PinConfig.BitmapDescriptorFactory.fromResource(glyphImage)
pinConfigBuilder.setGlyph(Glyph(descriptor))
val pinConfig: PinConfig = pinConfigBuilder.build()

Java

// Set the glyph image.
int glyphImage = R.drawable.example_image;
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(glyphImage);
pinConfigBuilder.setGlyph(new PinConfig.Glyph(descriptor));
PinConfig pinConfig = pinConfigBuilder.build();

Karakteri gizle

Arka plan renginin işaretçinin tamamını doldurması için glifi gizleyebilirsiniz:

Kotlin

// Create a transparent glyph.
val pinConfigBuilder: PinConfig.Builder = PinConfig.builder()
pinConfigBuilder.setBackgroundColor(Color.MAGENTA)
pinConfigBuilder.setGlyph(PinConfig.Glyph(Color.TRANSPARENT))
val pinConfig: PinConfig = pinConfigBuilder.build()

Java

// Create a transparent glyph.
PinConfig.Builder pinConfigBuilder = PinConfig.builder();
pinConfigBuilder.setBackgroundColor(Color.MAGENTA);
pinConfigBuilder.setGlyph(new PinConfig.Glyph(Color.TRANSPARENT));
PinConfig pinConfig = pinConfigBuilder.build();

iconView'u kullanma

AdvancedMarkerOptions.iconView() yöntemi tüm Android cihazları kullanmanıza olanak tanır View kullanabilirsiniz. İşaretçi olarak bir görünümü kullandığınızda, görünüm üzerinde tam denetime kullanabilirsiniz.

Uygulamanızda, önce görünümü oluşturursunuz, ardından AdvancedMarkerOptions.iconView() yöntemini kullanarak görünümü kullanabilirsiniz.

Kotlin

// Create a TextView to use as the marker.
val textView = TextView(this)
textView.text = "Hello!!"
textView.setBackgroundColor(Color.BLACK)
textView.setTextColor(Color.YELLOW)
val marker: Marker? = map.addMarker( AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) )

Java

// Create a TextView to use as the marker.
TextView textView = new TextView(this);
textView.setText("Hello!!");
textView.setBackgroundColor(Color.BLACK);
textView.setTextColor(Color.YELLOW);
Marker marker = map.addMarker( new AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView));

Sonraki adımlar: