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

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

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

کاتلین

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 برای موارد زیر استفاده کنید:

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

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

کاتلین

// 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() برای تغییر رنگ پس زمینه یک نشانگر استفاده کنید:

کاتلین

// 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() استفاده کنید:

کاتلین

// 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 استفاده کنید. از علامت برای تنظیم متن و رنگ متن، رنگ علامت یا برای تعیین یک تصویر سفارشی برای استفاده به عنوان علامت استفاده کنید.

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

کاتلین

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

جاوا

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

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

کاتلین

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

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

کاتلین

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

گلیف را مخفی کنید

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

کاتلین

// 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() به شما امکان می دهد از هر View Android به عنوان نشانگر استفاده کنید. با استفاده از نما به عنوان نشانگر، کنترل کاملی بر نشانگر دارید.

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

کاتلین

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

مراحل بعدی: