@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
253 lines (251 loc) • 11 kB
TypeScript
import type Extent from "../../geometry/Extent.js";
import type Point from "../../geometry/Point.js";
import type PlacesParameters from "./PlacesParameters.js";
import type { PlacesParametersProperties } from "./PlacesParameters.js";
import type { ExtentProperties } from "../../geometry/Extent.js";
import type { PointProperties } from "../../geometry/Point.js";
export interface PlacesQueryParametersProperties extends PlacesParametersProperties, Partial<Pick<PlacesQueryParameters, "categoryIds" | "offset" | "pageSize" | "radius" | "searchText">> {
/**
* The extent of the bounding box to be searched inside.
* This is **required** for the
* [queryPlacesWithinExtent()](https://developers.arcgis.com/javascript/latest/references/core/rest/places/#queryPlacesWithinExtent) method.
*
* The total width of the extent must be less than 20,000 meters, and
* the total height of the extent must be less than 20,000 meters.
*
* @see [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/)
* @example
* const [places, PlacesQueryParameters, Extent] = await $arcgis.import([
* "@arcgis/core/rest/places.js",
* "@arcgis/core/rest/support/PlacesQueryParameters.js",
* "@arcgis/core/geometry/Extent.js"
* );
* const extent = new Extent({
* xmin: 17.75,
* ymin: 59.55,
* xmax: 18,
* ymax: 59.7,
* spatialReference: SpatialReference.WGS84
* });
*
* const swedishPlacesQueryParameters = new PlacesQueryParameters({
* apiKey: "YOUR_API_KEY",
* categoryIds: ["4d4b7105d754a06377d81259"], // Landmarks and Outdoors
* extent,
* offset: 2,
* searchText: "Värma"
* });
*
* function findPlaces() {
* places.queryPlacesWithinExtent(swedishPlacesQueryParameters).then(showPlaces);
* }
*
* function showPlaces(placesSolveResult) {
* // results from the queryPlacesWithinExtent() method
* console.log("PlacesQueryResult: ", placesSolveResult);
* // first PlaceResult object from PlacesQueryResult.results
* console.log("PlaceResult: ", placesSolveResult.results[0]);
* }
*
* findPlaces();
*/
extent?: ExtentProperties | null;
/**
* A location defined by X and Y coordinates.
* This is **required** for the
* [queryPlacesNearPoint()](https://developers.arcgis.com/javascript/latest/references/core/rest/places/#queryPlacesNearPoint) method.
*
* @see [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/)
* @example
* const [places, PlacesQueryParameters] = await $arcgis.import([
* "@arcgis/core/rest/places.js",
* "@arcgis/core/rest/support/PlacesQueryParameters.js"
* ]);
* const point = {
* type: "point", // autocasts as new Point()
* longitude: 17.81840,
* latitude: 59.42145
* };
*
* const swedishPlacesQueryParameters = new PlacesQueryParameters({
* apiKey: "YOUR_API_KEY",
* categoryIds: ["63be6904847c3692a84b9b4c"], // Bathroom Contractor
* radius: 10000, // set radius to 10,000 meters
* point,
* searchText: "Bygg",
* pageSize: 11
* });
*
* function findPlaces() {
* places.queryPlacesNearPoint(swedishPlacesQueryParameters).then(showPlaces);
* }
*
* function showPlaces(placesSolveResult) {
* // results from the queryPlacesNearPoint() method
* console.log("PlacesQueryResult: ", placesSolveResult);
* // first PlaceResult object from PlacesQueryResult.results
* console.log("PlaceResult: ", placesSolveResult.results[0]);
* }
*
* findPlaces();
*/
point?: PointProperties | null;
}
/**
* The following properties define the parameters for the
* [queryPlacesNearPoint()](https://developers.arcgis.com/javascript/latest/references/core/rest/places/#queryPlacesNearPoint) and
* [queryPlacesWithinExtent()](https://developers.arcgis.com/javascript/latest/references/core/rest/places/#queryPlacesWithinExtent) methods pointing to a
* [url](https://developers.arcgis.com/javascript/latest/references/core/rest/support/PlacesQueryParameters/#url) that represents a places service.
* The places service is a ready-to-use service that can search for businesses and geographic locations around the world.
* It allows you to discover, locate, and return detailed information about a place.
*
* @since 4.27
* @see [Sample - Find nearby places and details](https://developers.arcgis.com/javascript/latest/sample-code/places/)
* @see [Introduction to places](https://developers.arcgis.com/documentation/mapping-apis-and-services/places/)
* @see [Places category finder](https://developers.arcgis.com/documentation/mapping-apis-and-services/places/places-category-finder/)
* @see [Places service](https://developers.arcgis.com/rest/places/)
* @see [places](https://developers.arcgis.com/javascript/latest/references/core/rest/places/)
* @see [PlacesParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/PlacesParameters/)
* @see [FetchPlaceParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FetchPlaceParameters/)
*/
export default class PlacesQueryParameters extends PlacesParameters {
constructor(properties?: PlacesQueryParametersProperties);
/**
* Filters places to those that match the category Ids.
* Places will be returned if they match any of the category Ids.
* If this property is not set, places will be returned regardless of their category.
*
* You can search up to a maximum of **10** category Ids.
*
* @see [Places category finder](https://developers.arcgis.com/documentation/mapping-apis-and-services/places/places-category-finder/)
*/
accessor categoryIds: string[] | null | undefined;
/**
* The extent of the bounding box to be searched inside.
* This is **required** for the
* [queryPlacesWithinExtent()](https://developers.arcgis.com/javascript/latest/references/core/rest/places/#queryPlacesWithinExtent) method.
*
* The total width of the extent must be less than 20,000 meters, and
* the total height of the extent must be less than 20,000 meters.
*
* @see [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/)
* @example
* const [places, PlacesQueryParameters, Extent] = await $arcgis.import([
* "@arcgis/core/rest/places.js",
* "@arcgis/core/rest/support/PlacesQueryParameters.js",
* "@arcgis/core/geometry/Extent.js"
* );
* const extent = new Extent({
* xmin: 17.75,
* ymin: 59.55,
* xmax: 18,
* ymax: 59.7,
* spatialReference: SpatialReference.WGS84
* });
*
* const swedishPlacesQueryParameters = new PlacesQueryParameters({
* apiKey: "YOUR_API_KEY",
* categoryIds: ["4d4b7105d754a06377d81259"], // Landmarks and Outdoors
* extent,
* offset: 2,
* searchText: "Värma"
* });
*
* function findPlaces() {
* places.queryPlacesWithinExtent(swedishPlacesQueryParameters).then(showPlaces);
* }
*
* function showPlaces(placesSolveResult) {
* // results from the queryPlacesWithinExtent() method
* console.log("PlacesQueryResult: ", placesSolveResult);
* // first PlaceResult object from PlacesQueryResult.results
* console.log("PlaceResult: ", placesSolveResult.results[0]);
* }
*
* findPlaces();
*/
get extent(): Extent | null | undefined;
set extent(value: ExtentProperties | null | undefined);
/**
* Request results starting from the given offset.
*
* This parameter works with the [pageSize](https://developers.arcgis.com/javascript/latest/references/core/rest/support/PlacesQueryParameters/#pageSize) property to get results from subsequent pages.
* For example, with `pageSize = 2`, setting the offset to 2 would return the 3rd and 4th results.
* Regardless of paging, the maximum number of places that can be returned by a single query is **200**.
*
* @default 0
*/
accessor offset: number;
/**
* The number of places that should be sent in the response for a single request.
*
* You can set this to any value up to **20** when you need to control the size of responses that the app downloads.
* If the query results in more than this page size, then the response object will contain a `next` url fragment.
* This fragment can be used to form a request url to fetch the next page of results.
* The maximum number of places that can be returned in total is **200**.
*
* @default 10
*/
accessor pageSize: number;
/**
* A location defined by X and Y coordinates.
* This is **required** for the
* [queryPlacesNearPoint()](https://developers.arcgis.com/javascript/latest/references/core/rest/places/#queryPlacesNearPoint) method.
*
* @see [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/)
* @example
* const [places, PlacesQueryParameters] = await $arcgis.import([
* "@arcgis/core/rest/places.js",
* "@arcgis/core/rest/support/PlacesQueryParameters.js"
* ]);
* const point = {
* type: "point", // autocasts as new Point()
* longitude: 17.81840,
* latitude: 59.42145
* };
*
* const swedishPlacesQueryParameters = new PlacesQueryParameters({
* apiKey: "YOUR_API_KEY",
* categoryIds: ["63be6904847c3692a84b9b4c"], // Bathroom Contractor
* radius: 10000, // set radius to 10,000 meters
* point,
* searchText: "Bygg",
* pageSize: 11
* });
*
* function findPlaces() {
* places.queryPlacesNearPoint(swedishPlacesQueryParameters).then(showPlaces);
* }
*
* function showPlaces(placesSolveResult) {
* // results from the queryPlacesNearPoint() method
* console.log("PlacesQueryResult: ", placesSolveResult);
* // first PlaceResult object from PlacesQueryResult.results
* console.log("PlaceResult: ", placesSolveResult.results[0]);
* }
*
* findPlaces();
*/
get point(): Point | null | undefined;
set point(value: PointProperties | null | undefined);
/**
* The radius in meters to search for places, measured from the supplied [point](https://developers.arcgis.com/javascript/latest/references/core/rest/support/PlacesQueryParameters/#point).
* This property is only used by the
* [queryPlacesNearPoint()](https://developers.arcgis.com/javascript/latest/references/core/rest/places/#queryPlacesNearPoint) method.
* The maximum value is **10,000**.
*
* @default 1000
*/
accessor radius: number;
/**
* Free search text for places against names, categories, etc.
* The value must be a string between 3 and 255 characters long.
*/
accessor searchText: string | null | undefined;
/**
* Creates a deep clone of the instance of PlacesQueryParameters that this method is called on.
*
* @returns A clone of the instance that this method is called on.
*/
clone(): PlacesQueryParameters;
}