به طور پیش فرض، نقاط مورد علاقه (POI) به همراه نمادهای مربوطه روی نقشه پایه ظاهر می شوند. POI شامل پارک ها، مدارس، ساختمان های دولتی و موارد دیگر می شود.
علاوه بر این، زمانی که نوع نقشه normal
باشد، POIهای تجاری به طور پیشفرض روی نقشه ظاهر میشوند. کسب و کار POI نشان دهنده مشاغلی مانند مغازه ها، رستوران ها، هتل ها و غیره است. POI های کسب و کار در نقشه های داخلی (طرح طبقه) فقط در یک نقشه حالت ساده ظاهر می شوند.
یک POI مطابق با شناسه مکان است، همانطور که در Places SDK برای Android تعریف شده است. برای مثال، پارکهای تفریحی 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 ضربه میزند، نمایش نمیدهد.
همانطور که نمونه بالا نشان می دهد، شما OnPoiClickListener
را با فراخوانی GoogleMap.setOnPoiClickListener(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" }
]
}
]
برای کد جاوا و سایر جزئیات، راهنمای پنهان کردن ویژگیهای نقشه با استایل را ببینید.