این صفحه به شما نشان میدهد که چگونه تداخل بین نشانگرهایی که به نقشه خود اضافه میکنید و برچسبهای پیشفرض، مانند نقاط مورد علاقه (POI) یا نام خیابانها را مدیریت کنید.
قبل از اینکه شروع کنی
برای مدیریت تداخل نشانگرها و برچسبها، باید از شناسه نقشه (map id) استفاده کنید.
اگر از یک تصویر بیتمپ از یک نقشه در حالت ساده استفاده میکنید، نمیتوانید تداخل نشانگرها و برچسبها را مدیریت کنید.تعیین اولویتهای نشانگر
CollisionBehavior ویژگی Marker برای تعیین اولویت روی یک نشانگر استفاده کنید.
از یکی از مقادیر زیر استفاده کنید:
-
REQUIRED- پیشفرض. نمایش نشانگری را الزامی میکند که با سایر نشانگرها، برچسبها و نقاط مورد علاقه همپوشانی داشته باشد. -
OPTIONAL_AND_HIDES_LOWER_PRIORITY- نشان میدهد که نشانگر میتواند با یک نشانگر الزامی جایگزین یا همپوشانی شود، یا با یک نشانگرOPTIONAL_AND_HIDES_LOWER_PRIORITYبا اولویت بالاتر جایگزین شود.zIndexبرای تعیین اولویت نسبی بین نشانگرهایOPTIONAL_AND_HIDES_LOWER_PRIORITYاستفاده کنید. مقدارzIndexبالاتر نشاندهنده اولویت بالاتر است. -
REQUIRED_AND_HIDES_OPTIONAL- در حالی که نشانگرها، برچسبها یا POIهایOPTIONAL_AND_HIDES_LOWER_PRIORITYکه با نشانگر همپوشانی دارند را پنهان میکند، نمایش یک نشانگر الزامی است. این نشانگر ممکن است با سایر نشانگرهای مورد نیاز همپوشانی داشته باشد.
مثال کد زیر تنظیم CollisionBehavior را برای یک نشانگر جدید نشان میدهد:
کاتلین
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible val collisionBehavior: Int = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .position(LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior) val marker: Marker = map.addMarker(advancedMarkerOptions) ?: error("Failed to add marker")
جاوا
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible int collisionBehavior = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL; AdvancedMarkerOptions options = new AdvancedMarkerOptions() .position(new LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior); Marker marker = map.addMarker(options);