כברירת מחדל, נקודות עניין (POI) מופיעות במפה הבסיסית עם הסמלים המתאימים שלהן. נקודות העניין כוללות פארקים, בתי ספר, בנייני ממשלה ועוד.
בנוסף, נקודות עניין עסקיות מופיעות במפה כברירת מחדל כשסוג המפה הוא normal
. נקודות עניין של עסקים מייצגות עסקים כמו חנויות, מסעדות, מלונות ועוד. נקודות עניין של עסקים במפות פנים (תוכניות קומה) מופיעות רק במפה במצב Lite.
נקודת העניין תואמת למזהה המקום, כפי שמוגדר ב-Places 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(); } }
נקודות עניין מופיעות במפה כברירת מחדל, אבל אין ממשק משתמש בעקבות לחיצה שמוגדר כברירת מחדל. כלומר, ה-API לא מציג באופן אוטומטי חלון מידע או ממשק משתמש אחר כשהמשתמש מקיש על נקודת עניין.
כמו בדוגמה שלמעלה, כדי להגדיר את הסמל OnPoiClickListener
במפה קוראים לפונקציה GoogleMap.setOnPoiClickListener(OnPoiClickListener)
.
כשמשתמש לוחץ (מקישים) על נקודת עניין, האפליקציה מקבלת אירוע OnPoiClick(PointOfInterest)
שמציין את נקודת העניין (POI) שהמשתמש לחץ עליה. השדה PointOfInterest
מכיל את הקואורדינטות של קו האורך וקו הרוחב, מזהה המקום והשם של נקודת העניין.
הפסקת ההצגה של נקודות עניין במפה
אפשר להסתיר נקודות עניין (POI) על ידי החלת סגנונות מותאמים אישית על כל נקודות העניין או על קטגוריות ספציפיות של נקודות עניין.
הצהרת הסגנון הבאה של JSON מסתירה את כל נקודות העניין של העסק במפה:
[
{
"featureType": "poi.business",
"stylers": [
{ "visibility": "off" }
]
}
]
דוגמה נוספת, ה-JSON הבא מפשט את התצוגה של כל הקטגוריות של נקודות עניין:
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "simplified" }
]
}
]
לקוד Java ולפרטים נוספים, אפשר לעיין במדריך להסתרת תכונות המפה באמצעות עיצוב.