لایه اطلاعات کسب و کارها (POI) – کاتلین

مستندات جامع اندروید

نسخه 1.0.3

هدف از این بخش از پروژه بررسی نحوه فعال‌سازی و غیرفعال‌سازی لایه نقاط کسب و کارها است.

activity_poi_layer.xml:

در این صفحه، علاوه بر المان نقشه نشان، یک ToggleButton برای فعال‌ یا غیرفعال کردن لایه نقاط کسب و کارها وجود دارد. 

            <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.POILayerActivity">

    <org.neshan.mapsdk.MapView
        android:id="@+id/mapview"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:background="@drawable/toggle_button_bg"
        android:checked="true"
        android:elevation="8dp"
        android:onClick="togglePOILayer"
        android:paddingStart="8dp"
        android:paddingEnd="8dp"
        android:textColor="@color/white"
        android:textOff="لایه POI"
        android:textOn="لایه POI"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:targetApi="m" />

</androidx.constraintlayout.widget.ConstraintLayout>
        

POILayerActivity.kt:

متد initLayoutRefrences جهت مقداردهی اولیه کردن به تمامی المان‌های مربوط به رابط کاربری نوشته شده‌است. به دلیل این که لازم است تا المان اندرویدی نقشه نشان ابتدا به طور کامل ایجاد شود و سپس با آن تعامل برقرار شود (متدهای مختلف بر روی المان نقشه اجرا شود)، تمامی متدهای مربوط به رابط کاربری باید در متد onStart انجام شوند.

            override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_poi_layer)
    }

    override fun onStart() {
        super.onStart()
        // everything related to ui is initialized here
        initLayoutReferences()
    }
        
            // We use findViewByID for every element in our layout file here
    private fun initViews() {
        map = findViewById(R.id.mapview)
    }
        

در متد initMap ابتدا موقعیت و بزرگنمایی نقشه به حالت دلخواه تنظیم می شود. سپس لایه اطلاعات کسب و کار ها با استفاده از فیلد isPoiEnabled فعال می گردد.

            // Initializing map
    private void initMap(){
        // Setting map focal position to a fixed position and setting camera zoom
        map.moveCamera(new LatLng(35.767234, 51.330743),0 );
        map.setZoom(14,0);
        map.setPoiEnabled(true);
    }
        

در این متد بررسی می‌شود که اگر toggleButton موجود در رابط کاربری در حالت انتخاب شده باشد، لایه اطلاعات کسب و کارها با استفاده از فیلد isPoiEnabled شیء map فعال می شود و در غیر اینصورت این لایه غیرفعال می شود.

                fun togglePOILayer(view: View) {
        var toggleButton: ToggleButton = view as ToggleButton
        map.isPoiEnabled = toggleButton.isChecked
    }

        

فهرست مطالب این صفحه

فهرست مطالب این صفحه