עסקים ונקודות עניין אחרות

בחירת פלטפורמה: Android iOS JavaScript

כברירת מחדל, נקודות עניין מופיעות במפת הבסיס עם הסמלים המתאימים שלהן. נקודות העניין כוללות פארקים, בתי ספר, בנייני ממשלה ועוד.

בנוסף, נקודות עניין של עסקים מופיעות במפה כברירת מחדל כשסוג המפה הוא normal. נקודות עניין עסקיות מייצגות עסקים כמו חנויות, מסעדות, מלונות ועוד. נקודות עניין של עסקים במפות פנים (תוכניות קומה) מופיעות רק במפה במצב לייט.

נקודת עניין (POI) תואמת למזהה מקום, כפי שמוגדר ב-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) שמציין את נקודת העניין שהמשתמש לחץ עליה. התג PointOfInterest מכיל את קואורדינטות קו הרוחב וקו האורך, את מזהה המקום ואת שם נקודת העניין.

הפסקת הצגת נקודות עניין במפה

אפשר להסתיר נקודות עניין (POI) על ידי החלת סגנונות מותאמים אישית על כל נקודות העניין או על קטגוריות ספציפיות של נקודות עניין.

ההצהרה הבאה בסגנון JSON מסתירה את כל נקודות העניין של עסקים במפה:

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

דוגמה נוספת: קובץ ה-JSON הבא מפשט את התצוגה של כל קטגוריות הנקודות:

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

לדוגמאות של קוד Java ולפרטים נוספים, אפשר לעיין במדריך בנושא הסתרת תכונות של מפה באמצעות סגנון.