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

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

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

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

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