به طور پیشفرض، نقاط مورد علاقه (POI) به همراه آیکونهای مربوطهشان روی نقشه پایه ظاهر میشوند. POIها شامل پارکها، مدارس، ساختمانهای دولتی و موارد دیگر میشوند.
علاوه بر این، نقاط مورد علاقه تجاری به طور پیشفرض روی نقشه ظاهر میشوند، زمانی که نوع نقشه normal باشد. نقاط مورد علاقه تجاری نشاندهنده مشاغلی مانند مغازهها، رستورانها، هتلها و موارد دیگر هستند. نقاط مورد علاقه تجاری در نقشههای داخلی (نقشههای طبقات) فقط در نقشه حالت سبک ظاهر میشوند.
یک POI مطابق با تعریف Places SDK برای اندروید، معادل یک Place ID است. برای مثال، پارکهای تفریحی POI هستند، اما چیزهایی مانند فوارههای آب معمولاً POI نیستند (مگر اینکه از اهمیت ملی یا تاریخی برخوردار باشند).
به رویدادهای کلیک در POIها گوش دهید
اگر میخواهید به کاربری که روی یک POI ضربه میزند پاسخ دهید، میتوانید از OnPoiClickListener همانطور که در نمونه کد زیر نشان داده شده است، استفاده کنید:
کاتلین
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() } }
جاوا
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(); } }
نقاط مورد علاقه (POI) به طور پیشفرض روی نقشه ظاهر میشوند، اما هیچ رابط کاربری پیشفرضی برای کلیک روی آنها وجود ندارد. یعنی، API به طور خودکار پنجره اطلاعات یا هیچ رابط کاربری دیگری را هنگام ضربه زدن کاربر روی یک POI نمایش نمیدهد.
همانطور که در مثال بالا نشان داده شده است، شما با فراخوانی GoogleMap.setOnPoiClickListener(OnPoiClickListener) OnPoiClickListener روی نقشه تنظیم میکنید. هنگامی که کاربر روی یک POI کلیک میکند (ضربه میزند)، برنامه شما یک رویداد OnPoiClick(PointOfInterest) دریافت میکند که نشان دهنده نقطه مورد نظر (POI) است که کاربر روی آن کلیک کرده است. PointOfInterest شامل مختصات عرض/طول جغرافیایی، شناسه مکان و نام نقطه مورد نظر است.
نمایش نقاط مورد علاقه (POI) را روی نقشه متوقف کنید
شما میتوانید با اعمال سبکهای سفارشی به همه POIها یا به دستههای خاصی از POIها، نقاط مورد علاقه (POIها) را پنهان کنید.
اعلان سبک JSON زیر تمام POI های تجاری را روی نقشه پنهان میکند:
[
{
"featureType": "poi.business",
"stylers": [
{ "visibility": "off" }
]
}
]
به عنوان مثالی دیگر، JSON زیر نمایش همه دستههای POIها را ساده میکند:
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "simplified" }
]
}
]
برای کد جاوا و سایر جزئیات، به راهنمای پنهان کردن عوارض نقشه با استفاده از استایلبندی مراجعه کنید.