@independo/leaflet-independo-maps
Version:
Leaflet plugin for displaying points of interest as pictograms.
26 lines (25 loc) • 1.33 kB
TypeScript
import { LatLngBounds } from "leaflet";
import { PointOfInterest } from "../models/point-of-interest";
import { PointOfInterestQueryOptions } from "../models/point-of-interest-query-options";
/**
* Abstract interface for a service that fetches points of interest (POIs)
* within a specified geographic area.
*
* Implementations of this interface should:
* - Query a data source (e.g., Google Places API, Overpass API, or Apple Maps Server API).
* - Adhere to the filtering and behavior rules defined in `PointOfInterestQueryOptions`.
* - Return a list of POIs with standardized fields as defined in `PointOfInterest`.
*/
export interface PointOfInterestService {
/**
* Fetches a list of points of interest within the given bounds.
*
* @param bounds - The geographic bounds for the query. Specifies the area to search for POIs.
* @param options - Optional filters and query settings.
* - If `types` is omitted, all available POI types should be included in the query.
* - If `types` is an empty array, no POIs should be returned.
* - If `limit` is specified, the implementation should respect this value.
* @returns A promise resolving to an array of POIs.
*/
getPointsOfInterest(bounds: LatLngBounds, options?: PointOfInterestQueryOptions): Promise<PointOfInterest[]>;
}