ธุรกิจและจุดสนใจอื่นๆ

เลือกแพลตฟอร์ม: Android iOS JavaScript

โดยค่าเริ่มต้น จุดที่น่าสนใจ (POI) จะปรากฏบนแผนที่ฐานพร้อมกับไอคอนที่เกี่ยวข้อง POI ได้แก่ สวนสาธารณะ โรงเรียน อาคารรัฐบาล และอื่นๆ นอกจากนี้ POI ธุรกิจ จะปรากฏบนแผนที่โดยค่าเริ่มต้นเมื่อประเภทแผนที่เป็น kGMSTypeNormal POI ธุรกิจแสดงถึงธุรกิจต่างๆ เช่น ร้านค้า ร้านอาหาร โรงแรม และอื่นๆ

POI จะสอดคล้องกับรหัสสถานที่ ตามที่กำหนดไว้ใน Places SDK สำหรับ iOS ตัวอย่างเช่น สวนสาธารณะเพื่อการพักผ่อนหย่อนใจเป็น POI แต่สิ่งต่างๆ เช่น น้ำพุโดยทั่วไปจะไม่ใช่ POI (เว้นแต่จะมีคุณค่าระดับชาติหรือทางประวัติศาสตร์)

การฟังเหตุการณ์การคลิกใน POI

หากต้องการตอบสนองต่อการแตะ POI ของผู้ใช้ ให้ใช้ GMSMapViewDelegate, และใช้เมธอด mapView(_:didTapPOIWithPlaceID:name:location:) ดังที่แสดงในตัวอย่างต่อไปนี้

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
      

การแสดงรายละเอียดในหน้าต่างข้อมูล

POI จะปรากฏบนแผนที่โดยค่าเริ่มต้น แต่ไม่มี UI ที่คลิกได้โดยค่าเริ่มต้น (API จะไม่แสดงหน้าต่างข้อมูลหรืออินเทอร์เฟซผู้ใช้อื่นๆ โดยอัตโนมัติเมื่อผู้ใช้แตะ 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;
}
      

การหยุดไม่ให้ POI แสดงบนแผนที่

คุณสามารถซ่อน POI ได้โดยใช้รูปแบบที่กำหนดเองกับ POI ทั้งหมดหรือ POI บางหมวดหมู่

การประกาศรูปแบบ JSON ต่อไปนี้จะซ่อน POI ธุรกิจทั้งหมดบนแผนที่

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

อีกตัวอย่างหนึ่งคือ JSON ต่อไปนี้จะทำให้การแสดง POI ทุกหมวดหมู่ง่ายขึ้น

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

ดูรายละเอียดเพิ่มเติมได้ที่คู่มือการซ่อนฟีเจอร์แผนที่ด้วยการจัดรูปแบบ