إنشاء علامة متقدمة

اختَر النظام الأساسي: 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) )

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. ويمكنك تحويل القيمة المعروضة إلى AdvancedMarker إذا لزم الأمر.

استخدام AdvancedMarkerOptions لضبط العلامات المتقدمة. AdvancedMarkerOptions هي فئة فرعية من MarkerOptions، لذا، فهي تتوافق مع جميع الإعدادات نفسها مثل MarkerOptions.

تتيح لك ميزة "AdvancedMarkerOptions" أيضًا ما يلي:

  • أنشئ مثيلاً للفئة PinConfig، ثم استخدِم المثيل PinConfig لضبط المثيل AdvancedMarkerOptions.

    يمكنك استخدام PinConfig لتخصيص خصائص العلامة المتقدمة، مثل لون الخلفية ولون الحد والحرف الرسومي.

  • يمكنك إنشاء مثيل لفئة View من Android واستخدام هذا المثيل لإعداد مثيل AdvancedMarkerOptions.

    يتيح لك مثيل العرض تخصيص العلامة بالكامل.

استخدام PinConfig

تحتوي الفئة PinConfig على خيارات لتخصيص العلامات المتقدمة. يمكنك استخدام "PinConfig" لتنفيذ ما يلي:

  • تغيير لون الخلفية
  • تغيير لون الحدود
  • تغيير لون الحرف الرسومي أو إضافة نص
  • إخفاء الحرف الرسومي
رسم تخطيطي يعرض أجزاء "العلامة المتقدمة".
الشكل 1: أجزاء العلامة المتقدّمة.

استخدِم 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)

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

تغيير لون الخلفية

استخدِم الطريقة 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()

Java

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

Java

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

ضبط لون الحرف الرسومي:

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

يمكنك ضبط صورة مخصّصة للحرف الرسومي. هذه التقنية مفيدة إذا كنت تريد استخدام شعار مخصص أو مؤشر مرئي آخر في العلامة.

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

إخفاء الحرف الرسومي

يمكنك إخفاء الحرف الرسومي حتى يملأ لون الخلفية العلامة بالكامل:

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

تتيح لك طريقة 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) )

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

الخطوات اللاحقة: