Bisnis dan lokasi menarik lainnya

Pilih platform: Android iOS JavaScript

Secara default, lokasi menarik (POI) muncul pada peta dasar bersama ikonnya. POI mencakup taman, sekolah, gedung pemerintahan, dan lainnya. Selain itu, POI bisnis muncul secara default pada peta jika jenis peta adalah kGMSTypeNormal. POI bisnis mewakili bisnis seperti toko, restoran, hotel, dan lainnya.

POI mengacu pada ID Tempat, seperti yang didefinisikan di Places SDK for iOS. Misalnya, taman rekreasi adalah POI, tetapi fitur-fitur seperti air mancur umumnya bukan POI (kecuali jika memiliki nilai sejarah atau nasional).

Memproses peristiwa klik pada POI

Jika Anda ingin merespons ketukan pengguna pada suatu POI, terapkan GMSMapViewDelegate, lalu terapkan metode mapView(_:didTapPOIWithPlaceID:name:location:), seperti yang ditunjukkan dalam contoh berikut:

Swift

import GoogleMaps

class POI: UIViewController, GMSMapViewDelegate {

  override func loadView() {
    let camera = GMSCameraPosition.camera(
      withLatitude: 47.603,
      longitude:-122.331,
      zoom:14
    )
    let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
    mapView.delegate = self
    self.view = mapView
  }

  func mapView(
    _ mapView: GMSMapView,
    didTapPOIWithPlaceID placeID: String,
    name: String,
    location: CLLocationCoordinate2D
  ) {
    print("You tapped \(name): \(placeID), \(location.latitude)/\(location.longitude)")
  }
}
      

Objective-C

#import "POI.h"
@import GoogleMaps;

@interface POI () <GMSMapViewDelegate>

@end

@implementation POI

- (void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.603
                                                            longitude:-122.331
                                                                 zoom:14];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.delegate = self;
  self.view = mapView;
}

#pragma mark - GMSMapViewDelegate

- (void)mapView:(GMSMapView *)mapView
    didTapPOIWithPlaceID:(NSString *)placeID
                    name:(NSString *)name
                location:(CLLocationCoordinate2D)location {
  NSLog(@"You tapped %@: %@, %f/%f", name, placeID, location.latitude, location.longitude);
}

@end
      

Menampilkan detail di jendela info

POI muncul pada peta secara default, tetapi tidak ada UI on-click default (API tidak otomatis menampilkan jendela info atau antarmuka pengguna lainnya saat pengguna mengetuk POI). Contoh berikut menunjukkan cara menggunakan penanda untuk menampilkan jendela info untuk POI:

Swift

// Declare GMSMarker instance at the class level.
let infoMarker = GMSMarker()

// Attach an info window to the POI using the GMSMarker.
func mapView(
  _ mapView: GMSMapView,
  didTapPOIWithPlaceID placeID: String,
  name: String,
  location: CLLocationCoordinate2D
) {
  infoMarker.snippet = placeID
  infoMarker.position = location
  infoMarker.title = name
  infoMarker.opacity = 0;
  infoMarker.infoWindowAnchor.y = 1
  infoMarker.map = mapView
  mapView.selectedMarker = infoMarker
}
      

Objective-C

// Declare a GMSMarker instance at the class level.
GMSMarker *infoMarker;

// Attach an info window to the POI using the GMSMarker.
- (void)mapView:(GMSMapView *)mapView
    didTapPOIWithPlaceID:(NSString *)placeID
                    name:(NSString *)name
                location:(CLLocationCoordinate2D)location {
  infoMarker = [GMSMarker markerWithPosition:location];
  infoMarker.snippet = placeID;
  infoMarker.title = name;
  infoMarker.opacity = 0;
  CGPoint pos = infoMarker.infoWindowAnchor;
  pos.y = 1;
  infoMarker.infoWindowAnchor = pos;
  infoMarker.map = mapView;
  mapView.selectedMarker = infoMarker;
}
      

Menghentikan POI agar tidak muncul di peta

Anda dapat menyembunyikan POI dengan menerapkan gaya kustom ke semua POI atau ke kategori POI tertentu.

Deklarasi gaya JSON berikut menyembunyikan semua POI bisnis pada peta:

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

Sebagai contoh lain, JSON berikut menyederhanakan tampilan semua kategori POI:

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

Untuk mengetahui detail selengkapnya, lihat panduan untuk menyembunyikan fitur peta dengan gaya visual.