تظهر تلقائيًا نقاط الاهتمام على الخريطة الأساسية مع الرموز المقابلة لها. تشمل نقاط الاهتمام المتنزهات والمدارس والمباني الحكومية وغيرها.
بالإضافة إلى ذلك، تظهر نقاط الاهتمام الخاصة بالأنشطة التجارية تلقائيًا على الخريطة عندما يكون نوع الخريطة 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 وتفاصيل أخرى، راجِع دليل إخفاء عناصر الخريطة باستخدام التنسيق.