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

Platform seçin: Android iOS JavaScript

Bir haritaya gelişmiş işaretçiler eklemek için AdvancedMarkerOptions sınıfının yeni bir örneğini oluşturun ve ardından işaretçiyi eklemek için GoogleMap.addMarker() sınıfını kullanın:

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 olarak yayınlayabilirsiniz.

Gelişmiş işaretçileri yapılandırmak için AdvancedMarkerOptions simgesini kullanın. AdvancedMarkerOptions, MarkerOptions sınıfının alt sınıfıdır. Bu nedenle, MarkerOptions ile aynı ayarları destekler.

AdvancedMarkerOptions ayrıca şunları yapmanıza olanak tanır:

  • 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.

    Arka plan rengi, çerçeve rengi ve simge gibi gelişmiş işaretçi özelliklerini özelleştirmek için PinConfig simgesini kullanın.

  • 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ünüm örneği, işaretçiyi tamamen özelleştirmenize olanak tanır.

PinConfig'i 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ştirme veya metin ekleme
  • Simgeyi gizleme
Gelişmiş İşaretçi'nin bölümlerini gösteren bir diyagram.
Şekil 1: Gelişmiş İşaretçi'nin bölümleri.

PinConfig örneği oluşturmak için PinConfig.Builder öğesini kullanın:

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

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

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

İşaretçinin kenarlık rengini değiştirmek için PinConfig.borderColor() yöntemini kullanın:

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. Simge metnini ve metin rengini, simge rengini ayarlamak veya simge olarak kullanılacak özel bir resim belirtmek için simgeyi kullanın.

Aşağıdaki örnekte glif metni ayarlanmıştı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 ayarlayın:

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. Bu teknik, işaretçide özel bir logo veya başka bir görsel gösterge kullanmak istiyorsanız kullanışlıdır.

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();

Simgeyi gizleme

Arka plan renginin işaretleyicinin tamamını doldurması için simgeyi 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, işaretçi olarak herhangi bir Android View kullanmanıza olanak tanır. İşaretçi olarak bir görünüm kullandığınızda işaretçi üzerinde tam kontrol sahibi olursunuz.

Uygulamanızda önce görünümü oluşturun, ardından görünümü gelişmiş işaretçilere eklemek için AdvancedMarkerOptions.iconView() yöntemini kullanın.

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: