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

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

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

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

การรอกิจกรรมการคลิกบนจุดที่น่าสนใจ

หากต้องการตอบกลับผู้ใช้ที่แตะจุดที่น่าสนใจ ให้ใช้ 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
      

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

จุดที่น่าสนใจจะปรากฏในแผนที่โดยค่าเริ่มต้น แต่ไม่มี UI เมื่อคลิกที่เป็นค่าเริ่มต้น (API จะไม่แสดงหน้าต่างข้อมูลหรืออินเทอร์เฟซผู้ใช้อื่นๆ โดยอัตโนมัติเมื่อผู้ใช้แตะจุดที่น่าสนใจ) ตัวอย่างต่อไปนี้จะแสดงวิธีใช้เครื่องหมายเพื่อแสดงหน้าต่างข้อมูลสำหรับจุดที่น่าสนใจ

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;
}
      

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

คุณสามารถซ่อนจุดที่น่าสนใจด้วยการใช้รูปแบบที่กำหนดเองกับจุดที่น่าสนใจทั้งหมด หรือกับหมวดหมู่เฉพาะของจุดที่น่าสนใจ

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

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

อีกตัวอย่างหนึ่งคือ JSON ต่อไปนี้ช่วยลดความซับซ้อนในการแสดงจุดที่น่าสนใจในทุกหมวดหมู่

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

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