مشاغل و سایر نقاط مورد علاقه

پلتفرم را انتخاب کنید: Android iOS JavaScript

به طور پیش فرض، نقاط مورد علاقه (POI) به همراه نمادهای مربوطه روی نقشه پایه ظاهر می شوند. POI شامل پارک ها، مدارس، ساختمان های دولتی و موارد دیگر می شود. علاوه بر این، زمانی که نوع نقشه kGMSTypeNormal باشد، POIهای تجاری به طور پیش فرض روی نقشه ظاهر می شوند. کسب و کار POI نشان دهنده مشاغلی مانند مغازه ها، رستوران ها، هتل ها و غیره است.

یک POI مطابق با شناسه مکان است که در Places SDK برای iOS تعریف شده است. برای مثال، پارک‌های تفریحی POI هستند، اما چیزهایی مانند فواره‌های آب معمولاً POI نیستند (مگر اینکه اهمیت ملی یا تاریخی داشته باشند).

گوش دادن به رویدادهای کلیک روی POI

اگر می خواهید به ضربه زدن کاربر روی یک POI پاسخ دهید، GMSMapViewDelegate را پیاده سازی کنید و روش mapView(_:didTapPOIWithPlaceID:name:location:) را اجرا کنید، همانطور که در مثال زیر نشان داده شده است:

سویفت

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)")
  }
}
      

هدف-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 ها به طور پیش فرض روی نقشه ظاهر می شوند، اما رابط کاربری پیش فرض روی کلیک وجود ندارد (API به طور خودکار پنجره اطلاعات یا هر رابط کاربری دیگری را هنگامی که کاربر روی یک POI ضربه می زند، نمایش نمی دهد). مثال زیر نحوه استفاده از نشانگر برای نمایش پنجره اطلاعات یک POI را نشان می دهد:

سویفت

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

هدف-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" }
    ]
  }
]

برای جزئیات بیشتر، راهنمای پنهان کردن ویژگی های نقشه با یک ظاهر طراحی را ببینید.

،
پلتفرم را انتخاب کنید: Android iOS JavaScript

به طور پیش فرض، نقاط مورد علاقه (POI) به همراه نمادهای مربوطه روی نقشه پایه ظاهر می شوند. POI شامل پارک ها، مدارس، ساختمان های دولتی و موارد دیگر می شود. علاوه بر این، زمانی که نوع نقشه kGMSTypeNormal باشد، POIهای تجاری به طور پیش فرض روی نقشه ظاهر می شوند. کسب و کار POI نشان دهنده مشاغلی مانند مغازه ها، رستوران ها، هتل ها و غیره است.

یک POI مطابق با شناسه مکان است که در Places SDK برای iOS تعریف شده است. برای مثال، پارک‌های تفریحی POI هستند، اما چیزهایی مانند فواره‌های آب معمولاً POI نیستند (مگر اینکه اهمیت ملی یا تاریخی داشته باشند).

گوش دادن به رویدادهای کلیک روی POI

اگر می خواهید به ضربه زدن کاربر روی یک POI پاسخ دهید، GMSMapViewDelegate را پیاده سازی کنید و روش mapView(_:didTapPOIWithPlaceID:name:location:) را اجرا کنید، همانطور که در مثال زیر نشان داده شده است:

سویفت

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)")
  }
}
      

هدف-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 ها به طور پیش فرض روی نقشه ظاهر می شوند، اما رابط کاربری پیش فرض روی کلیک وجود ندارد (API به طور خودکار پنجره اطلاعات یا هر رابط کاربری دیگری را هنگامی که کاربر روی یک POI ضربه می زند، نمایش نمی دهد). مثال زیر نحوه استفاده از نشانگر برای نمایش پنجره اطلاعات یک POI را نشان می دهد:

سویفت

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

هدف-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" }
    ]
  }
]

برای جزئیات بیشتر، راهنمای پنهان کردن ویژگی های نقشه با یک ظاهر طراحی را ببینید.