الأنشطة التجارية ونقاط الاهتمام الأخرى

اختَر النظام الأساسي: Android iOS JavaScript

بشكل افتراضي، تظهر نقاط الاهتمام على الخريطة الأساسية مع الأيقونات المقابلة لها. تشمل نقاط الاهتمام الحدائق والمدارس والمباني الحكومية والمزيد.

بالإضافة إلى ذلك، تظهر نقاط الاهتمام للأنشطة التجارية بشكل تلقائي على الخريطة عندما يكون نوع الخريطة normal. تمثّل نقاط الاهتمام للأنشطة التجارية أنشطة تجارية مثل المتاجر والمطاعم والفنادق وغيرها. لا تظهر نقاط الاهتمام للنشاط التجاري على الخرائط الداخلية (مخططات الطوابق) إلا على خريطة الوضع البسيط.

تقابل نقطة الاهتمام رقم تعريف المكان، على النحو المحدّد في حزمة تطوير البرامج (SDK) للأماكن لنظام التشغيل Android. على سبيل المثال، تعتبر الحدائق الترفيهية نقاط اهتمام، لكن أشياء مثل نافورات المياه لا تعد بشكل عام نقاط اهتمام (ما لم تكن ذات أهمية وطنية أو تاريخية).

الاستماع إلى أحداث النقر على نقاط الاهتمام

إذا كنت تريد الردّ على مستخدم ينقر على نقطة اهتمام، يمكنك استخدام OnPoiClickListener كما هو موضّح في نموذج الرمز التالي:

Kotlin



internal class OnPoiClickDemoActivity : AppCompatActivity(), OnMapReadyCallback, OnPoiClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.poi_click_demo)
        val mapFragment = supportFragmentManager.findFragmentById(R.id.map)
                as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    override fun onMapReady(map: GoogleMap) {
        map.setOnPoiClickListener(this)
    }

    override fun onPoiClick(poi: PointOfInterest) {
        Toast.makeText(this, """Clicked: ${poi.name}
            Place ID:${poi.placeId}
            Latitude:${poi.latLng.latitude} Longitude:${poi.latLng.longitude}""",
            Toast.LENGTH_SHORT
        ).show()
    }
}

      

Java


class OnPoiClickDemoActivity extends AppCompatActivity implements
    OnMapReadyCallback, GoogleMap.OnPoiClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.poi_click_demo);
        SupportMapFragment mapFragment;
        mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap map) {
        map.setOnPoiClickListener(this);
    }

    @Override
    public void onPoiClick(PointOfInterest poi) {
        Toast.makeText(this, "Clicked: " +
                poi.name + "\nPlace ID:" + poi.placeId +
                "\nLatitude:" + poi.latLng.latitude +
                " Longitude:" + poi.latLng.longitude,
            Toast.LENGTH_SHORT).show();
    }
}

      

تظهر نقاط الاهتمام على الخريطة بشكل تلقائي، ولكن لا توجد واجهة مستخدم تلقائية عند النقر. وهذا يعني أنّ واجهة برمجة التطبيقات لا تعرض تلقائيًا نافذة معلومات أو أي واجهة مستخدم أخرى عندما ينقر المستخدم على نقطة اهتمام.

كما يوضِّح المثال أعلاه، يمكنك ضبط OnPoiClickListener على الخريطة من خلال استدعاء GoogleMap.setOnPoiClickListener(OnPoiClickListener). عندما ينقر المستخدم على نقطة اهتمام، يتلقّى تطبيقك حدث OnPoiClick(PointOfInterest) يشير إلى نقطة الاهتمام التي نقر عليها المستخدم. يحتوي PointOfInterest على إحداثيات خط العرض/خط الطول ومعرّف المكان واسم نقطة الاهتمام.

إيقاف ظهور نقاط الاهتمام على الخريطة

يمكنك إخفاء نقاط الاهتمام من خلال تطبيق أنماط مخصصة على جميع نقاط الاهتمام أو على فئات محددة من نقاط الاهتمام.

يخفي إعلان نمط JSON التالي جميع نقاط الاهتمام للنشاط التجاري على الخريطة:

[
  {
    "featureType": "poi.business",
    "stylers": [
      { "visibility": "off" }
    ]
  }
]

كمثال آخر، يعمل تنسيق JSON التالي على تبسيط عرض جميع فئات نقاط الاهتمام:

[
  {
    "featureType": "poi",
    "stylers": [
      { "visibility": "simplified" }
    ]
  }
]

للحصول على رمز Java والتفاصيل الأخرى، راجِع دليل إخفاء ميزات الخريطة باستخدام التصميم.