ایجاد نشانگر پیشرفته

پلاتفرم را انتخاب کنید: Android iOS JavaScript

برای افزودن نشانگرهای پیشرفته به نقشه، نمونه جدیدی از AdvancedMarkerOptions ایجاد کنید و سپس از GoogleMap.addMarker() برای افزودن نشانگر استفاده کنید:

Kotlin

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

جاوا

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 را برمی‌گرداند. درصورت لزوم، می‌توانید مقدار برگردانده‌شده را به AdvancedMarker تبدیل کنید.

از AdvancedMarkerOptions برای پیکربندی نشانگرهای پیشرفته استفاده کنید. AdvancedMarkerOptions زیرکلاسی از MarkerOptions است بنابراین از همه تنظیمات مشابه MarkerOptions پشتیبانی می‌کند.

AdvancedMarkerOptions همچنین به شما امکان می‌دهد:

  • نمونه‌ای از کلاس PinConfig ایجاد کنید، سپس از نمونه PinConfig برای پیکربندی نمونه AdvancedMarkerOptions استفاده کنید.

    از PinConfig برای سفارشی‌سازی ویژگی‌های پیشرفته نشانگر، مانند رنگ پس‌زمینه، رنگ حاشیه، و نویسه استفاده کنید.

  • نمونه‌ای از کلاس Android View ایجاد کنید و از آن نمونه برای پیکربندی نمونه AdvancedMarkerOptions استفاده کنید.

    نمونه View به شما امکان می‌دهد نشانگر را کاملاً سفارشی‌سازی کنید.

استفاده از PinConfig

کلاس PinConfig حاوی گزینه‌هایی برای سفارشی‌سازی نشانگرهای پیشرفته است. از PinConfig برای این کارها استفاده کنید:

  • تغییر رنگ پس‌زمینه
  • تغییر رنگ حاشیه
  • تغییر دادن رنگ گلیف یا افزودن نوشتار
  • پنهان کردن گلیف
نموداری که بخش‌های «نشانگر پیشرفته» را نشان می‌دهد.
شکل ۱: بخش‌های «نشانگر پیشرفته».

از PinConfig.Builder برای ایجاد نمونه‌ای از PinConfig استفاده کنید:

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)

جاوا

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

تغییر رنگ پس‌زمینه

از روش PinConfig.background() برای تغییر رنگ پس‌زمینه نشانگر استفاده کنید:

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 PinConfig.Builder to create an instance of PinConfig.
PinConfig.Builder pinConfigBuilder = PinConfig.builder();
pinConfigBuilder.setBackgroundColor(Color.MAGENTA);
PinConfig pinConfig = pinConfigBuilder.build();

تغییر رنگ حاشیه

از روش PinConfig.borderColor() برای تغییر رنگ حاشیه نشانگر استفاده کنید:

Kotlin

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

جاوا

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

تغییر دادن طلسم

نمونه Glyph ایجاد کنید و سپس از آن نمونه برای پیکربندی PinConfig استفاده کنید. از گلیف برای تنظیم نوشتار گلیف و رنگ نوشتار، رنگ گلیف، یا برای مشخص کردن تصویر سفارشی برای استفاده به‌عنوان گلیف استفاده کنید.

مثال زیر نوشتار نویسه را تنظیم می‌کند:

Kotlin

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

جاوا

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

رنگ گلیف را تنظیم کنید:

Kotlin

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

جاوا

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

تصویر سفارشی برای گلیف تنظیم کنید. این تکنیک زمانی مفید است که بخواهید از یک نشان‌واره سفارشی یا نشانگر بصری دیگر در نشانگر استفاده کنید.

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

جاوا

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

پنهان کردن گلیف

می‌توانید گلیف را پنهان کنید تا رنگ پس‌زمینه کل نشانگر را پر کند:

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

جاوا

// 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

روش AdvancedMarkerOptions.iconView() به شما امکان می‌دهد از هر Android View به‌عنوان نشانگر استفاده کنید. بااستفاده از نما به‌عنوان نشانگر، کنترل کامل بر نشانگر دارید.

در برنامه‌تان، ابتدا نما را ایجاد می‌کنید، سپس از روش AdvancedMarkerOptions.iconView() برای افزودن نما به نشانگرهای پیشرفته استفاده می‌کنید.

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

جاوا

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

مراحل بعدی: