<!--
{
  "availability" : [
    "MapKit JS: 5.45.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MapKitJS",
  "identifier" : "/documentation/MapKitJS/PointsOfInterestSearch",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "MapKit JS"
    ],
    "preciseIdentifier" : "cl/mapkit.PointsOfInterestSearch"
  },
  "title" : "PointsOfInterestSearch"
}
-->

# PointsOfInterestSearch

An object that fetches points of interest within a specified region.

```
class PointsOfInterestSearch extends Service
```

## Overview

Use [`PointsOfInterestSearch`](/documentation/MapKitJS/PointsOfInterestSearch) to fetch points of interest. Mapkit JS exposes this functionality through a search object that makes network requests to the search service. To use search, create an instance of a [`PointsOfInterestSearch`](/documentation/MapKitJS/PointsOfInterestSearch) object with the desired options and use the instance to make search requests. You may optionally specify a [`PointOfInterestFilter`](/documentation/MapKitJS/PointOfInterestFilter) that lists categories to include or exclude. The default behavior of the fetch returns all points of interest.

To leverage the map’s current region to request points of interest, create a request with a rectangular bounding box using a [`CoordinateRegion`](/documentation/MapKitJS/CoordinateRegion). The request fetches points of interest within the rectangular region.

To retrieve points of interest nearby or “around the user,” create a request with a circular area defined by a center point of [`Coordinate`](/documentation/MapKitJS/Coordinate) and a [`radius`](/documentation/MapKitJS/PointsOfInterestSearchOptions/radius) in meters.

If you set a language ID, the fetch returns addresses in the selected language, if available; for instance, `fr-CA` or `fr-FR`. If you don’t provide a language ID, the fetch request uses the language ID initialized with the map.

## Topics

### Creating a Points of Interest Search

[`constructor(options?: PointsOfInterestSearchConstructorOptions);`](/documentation/MapKitJS/PointsOfInterestSearch/PointsOfInterestSearchConstructor)

Creates a search object for fetching points of interest.

[`interface PointsOfInterestSearchConstructorOptions
    extends ServiceConstructorOptions`](/documentation/MapKitJS/PointsOfInterestSearchConstructorOptions)

Options that you provide when creating a points-of-interest search.

[`interface PointsOfInterestSearchOptions`](/documentation/MapKitJS/PointsOfInterestSearchOptions)

Options that you may provide when you create a points of interest search.

[`get region(): CoordinateRegion | null;
set region(value: CoordinateRegionData | null);`](/documentation/MapKitJS/PointsOfInterestSearch/region)

The region that bounds the area in which to fetch points of interest.

[`get center(): Coordinate | null;
set center(value: CoordinateData | null);`](/documentation/MapKitJS/PointsOfInterestSearch/center)

The center point of the request represented as latitude and longitude.

[`get radius(): number | null;
set radius(value: number | null);`](/documentation/MapKitJS/PointsOfInterestSearch/radius)

The distance provided in meters, or the longest distance derived from the center point to the region’s bounding box.

[`get pointOfInterestFilter(): PointOfInterestFilter | null;
set pointOfInterestFilter(value: PointOfInterestFilter | null);`](/documentation/MapKitJS/PointsOfInterestSearch/pointOfInterestFilter)

A filter that lists points of interest categories to include or exclude.

[`language?: string;`](/documentation/MapKitJS/ServiceConstructorOptions/language)

A language identifier that determines the language for the service results text.

[`static readonly MaxRadius: number;`](/documentation/MapKitJS/PointsOfInterestSearch/MaxRadius)

The maximum distance to use from the center of the region for fetching points of interest.

### Fetching points of interest

[`search(
    options?: PointsOfInterestSearchOptions,
): Promise<PointsOfInterestSearchResponse>;`](/documentation/MapKitJS/PointsOfInterestSearch/search)

Fetches points of interest.

[`type PointsOfInterestSearchDelegate =
    | {
          searchDidError: (error: Error) => void;
          searchDidComplete: (result: PointsOfInterestSearchResponse) => void;
      }
    | ((
          error: Error | null,
          result: PointsOfInterestSearchResponse | null,
      ) => void);`](/documentation/MapKitJS/PointsOfInterestSearchDelegate)

An object or callback function that MapKit JS calls when fetching points of interest.

[`interface PointsOfInterestSearchResponse`](/documentation/MapKitJS/PointsOfInterestSearchResponse)

The result of a request used to fetch points of interest.

### Canceling a points of interest search

[`cancel(promise: Promise<unknown>): boolean;`](/documentation/MapKitJS/Service/cancel)

Cancels a request using the provided request promise.

### Deprecated

[`search(
    callback: PointsOfInterestSearchDelegate,
    options?: PointsOfInterestSearchOptions,
): Promise<PointsOfInterestSearchResponse>;`](/documentation/MapKitJS/PointsOfInterestSearch/search1)

Fetches points of interest.

## Relationships

### Inherits From

[`Service`](/documentation/MapKitJS/Service)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)