UNPKG

@ionic-native/google-maps

Version:

Ionic Native - Native plugins for ionic apps

1,791 lines 68.1 kB
import { IonicNativePlugin } from '@ionic-native/core'; import { Observable } from 'rxjs'; export declare type MapType = 'MAP_TYPE_NORMAL' | 'MAP_TYPE_ROADMAP' | 'MAP_TYPE_SATELLITE' | 'MAP_TYPE_HYBRID' | 'MAP_TYPE_TERRAIN' | 'MAP_TYPE_NONE'; export interface ILatLng { lat: number; lng: number; } /** * @hidden */ export declare class LatLng implements ILatLng { lat: number; lng: number; constructor(lat: number, lng: number); equals(other: ILatLng): boolean; toString(): string; toUrlValue(precision?: number): string; } export interface ILatLngBounds { northeast: ILatLng; southwest: ILatLng; } /** * @hidden */ export declare class LatLngBounds implements ILatLngBounds { northeast: ILatLng; southwest: ILatLng; type: string; private _objectInstance; constructor(points?: ILatLng[]); /** * Converts to string * @return {string} */ toString(): string; /** * Returns a string of the form "lat_sw,lng_sw,lat_ne,lng_ne" for this bounds, where "sw" corresponds to the southwest corner of the bounding box, while "ne" corresponds to the northeast corner of that box. * @param precision {number} * @return {string} */ toUrlValue(precision?: number): string; /** * Extends this bounds to contain the given point. * @param LatLng {ILatLng} */ extend(LatLng: ILatLng): void; /** * Returns true if the given lat/lng is in this bounds. * @param LatLng {ILatLng} */ contains(LatLng: ILatLng): boolean; /** * Computes the center of this LatLngBounds * @return {LatLng} */ getCenter(): LatLng; } export interface GoogleMapControlOptions { /** * Turns the compass on or off. */ compass?: boolean; /** * Turns the myLocation button on or off. If turns on this button, the application displays a permission dialog to obtain the geolocation data. */ myLocationButton?: boolean; /** * Turns the myLocation control(blue dot) on or off. If turns on this control, the application displays a permission dialog to obtain the geolocation data. */ myLocation?: boolean; /** * Turns the indoor picker on or off. */ indoorPicker?: boolean; /** * **Android** * Turns the map toolbar on or off. */ mapToolbar?: boolean; /** * **Android** * Turns the zoom controller on or off. */ zoom?: boolean; /** * Accept extra properties for future updates */ [key: string]: any; } export interface GoogleMapGestureOptions { /** * Set false to disable the scroll gesture (default: true) */ scroll?: boolean; /** * Set false to disable the tilt gesture (default: true) */ tilt?: boolean; /** * Set false to disable the zoom gesture (default: true) */ zoom?: boolean; /** * Set false to disable the rotate gesture (default: true) */ rotate?: boolean; /** * Accept extra properties for future updates */ [key: string]: any; } export interface GoogleMapZoomOptions { minZoom?: number; maxZoom?: number; } export interface GoogleMapPaddingOptions { left?: number; top?: number; bottom?: number; right?: number; } export interface GoogleMapPreferenceOptions { /** * Minimum and maximum zoom levels for zooming gestures. */ zoom?: GoogleMapZoomOptions; /** * Paddings of controls. */ padding?: GoogleMapPaddingOptions; /** * Turns the 3D buildings layer on or off. */ building?: boolean; /** * Sets the bounds limit for user panning gesture. */ gestureBounds?: ILatLng[]; /** * Accept extra properties for future updates */ [key: string]: any; } export interface GoogleMapOptions { /** * mapType [options] */ mapType?: MapType | string; /** * controls [options] */ controls?: GoogleMapControlOptions; /** * gestures [options] */ gestures?: GoogleMapGestureOptions; /** * Map styles [options] * @ref https://developers.google.com/maps/documentation/javascript/style-reference */ styles?: any[]; /** * Initial camera position [options] */ camera?: CameraPosition<any>; /** * preferences [options] */ preferences?: GoogleMapPreferenceOptions; /** * Accept extra properties for future updates */ [key: string]: any; } export interface CameraPosition<T> { /** * The center location of the camera view. * * [usage 1] * * let cameraPos: CameraPosition<ILatLng> = { * target: {lat: ..., lng: ...}, * zoom: 10 * } * * [usage 2] The zoom property is ignored when you specify multiple position * * let cameraPos: CameraPosition<ILatLng[]> = { * target: [ * {lat: ..., lng: ...}, * {lat: ..., lng: ...}, * {lat: ..., lng: ...} * ] * } */ target?: T; /** * View angle */ tilt?: number; /** * Zoom level */ zoom?: number; /** * Map orientation */ bearing?: number; /** * The duration of animation in milliseconds */ duration?: number; /** * Camera padding in pixel */ padding?: number; } export interface CircleOptions { /** * Center position of circle */ center: ILatLng; /** * Radius of circle in meter */ radius: number; /** * Set the stroke color * (rgb, rgba, #RRGGBB, "colorname", ...etc) */ strokeColor?: string; /** * Set the stroke width in pixel */ strokeWidth?: number; /** * Set the inside color of circle * (rgb, rgba, #RRGGBB, "colorname", ...etc) */ fillColor?: string; /** * Set to true to receive the CIRCLE_CLICK event * (default: false) */ clickable?: boolean; /** * Set to false to hide */ visible?: boolean; /** * Z-index */ zIndex?: number; /** * Accept own properties * You can get the property later using `get()` method. */ [key: string]: any; } export interface GeocoderRequest { /** * The address property or position property is required. * You can not specify both property at the same time. * * [geocoding usage1] * let request: GeocoderRequest = { * address: "Los Angeles, California, USA" * } * * [geocoding usage2] * let request: GeocoderRequest = { * address: [ * "Los Angeles, California, USA", * "San Francisco, California, USA", * ] * } */ address?: string | string[]; /** * * [reverse-geocoding usage1] * let request: GeocoderRequest = { * position: {"lat": 37.421655, "lng": -122.085637} * } * * [reverse-geocoding usage2] * let request: GeocoderRequest = { * position: [ * {"lat": 37.421655, "lng": -122.085637}, * {"lat": 37.332, "lng": -122.030781} * ] * } */ position?: ILatLng | ILatLng[]; } export interface GeocoderResult { adminArea?: string; country?: string; countryCode?: string; extra?: { featureName?: string; lines?: string[]; permises?: string; phone?: string; url?: string; }; locale?: string; locality?: string; position?: ILatLng; postalCode?: string; subAdminArea?: string; subLocality?: string; subThoroughfare?: string; thoroughfare?: string; } export interface GroundOverlayOptions { /** * URL of overlay */ url: string; /** * Bounds, array of ILatLng */ bounds: ILatLng[]; /** * Set to true to receive the GROUND_OVERLAY_CLICK event * (default: false) */ clickable?: boolean; /** * Set to false to hide */ visible?: boolean; /** * Opacity. From 0.0 to 1.0 . */ opacity?: number; /** * Bearing */ bearing?: number; /** * Z-index */ zIndex?: number; /** * Accept own properties * You can get the property later using `get()` method. */ [key: string]: any; } export interface MarkerIcon { url?: string; size?: { width?: number; height?: number; }; } export interface MarkerOptions { /** * The icon image url or properties. Also you can specify HTML Color values. Alternatively you can specify the image as Base64 */ icon?: any; /** * The content of the infoWindow. */ title?: string; /** * The snippet of the infoWindow. */ snippet?: string; /** * The position of the marker. */ position: ILatLng; /** * Specify the anchor of the InfoWindow */ infoWindowAnchor?: number[]; /** * Specify the anchor of icon image */ anchor?: number[]; /** * Set true if you want to enable to drag the marker. (Default: false) Important! Drag starts after long pressed on the marker. */ draggable?: boolean; /** * Set true if you want to use a flat marker. (Default: false) */ flat?: boolean; /** * Set rotation angle. (Default: 0) */ rotation?: number; /** * Set false if you want to hide. (Default: true) */ visible?: boolean; /** * Specify the options for title. This property work for normal InfoWindow. */ styles?: any; /** * Which animation to play when marker is added to a map. */ animation?: string; /** * Higher zIndex value overlays will be drawn on top of lower zIndex value tile layers and overlays. */ zIndex?: number; /** * Set to true to disable auto panning when the marker is clicked. */ disableAutoPan?: boolean; /** * Accept own properties * You can get the property later using `get()` method. */ [key: string]: any; } export interface MarkerLabel { /** * Set true if use bold font */ bold?: boolean; /** * Set font size in pixel */ fontSize?: number; /** * color strings */ color?: string; /** * Set true if use italic font */ italic?: boolean; } export interface MarkerClusterIcon { /** * Minimum number of clustering */ min?: number; /** * Maximum number of clustering */ max?: number; /** * anchor position of the marker */ anchor?: any; /** * label option for clustered marker */ label?: MarkerLabel; /** * icon url */ url: string; /** * icon size */ size?: { width?: number; height?: number; }; } export interface MarkerClusterOptions { /** * Maximum zoom level of clustering * (default: 15, max: 18) */ maxZoomLevel?: number; /** * Draw a rectangle that contains all locations of clustered when you tap on a cluster marker. * (default: true) */ boundsDraw?: boolean; /** * Position list * [ * {title: "store A", position: {lat: ..., lng: ...}}, * {title: "store B", position: {lat: ..., lng: ...}}, * {title: "store C", position: {lat: ..., lng: ...}} * ] */ markers: MarkerOptions[]; /** * Conditions of clustering * [ * {icon: "assets/small.png", min: 2, max: 10}, * {icon: "assets/middle.png", min: 11, max: 30}, * {icon: "assets/large.png", min: 31} * ] */ icons: MarkerClusterIcon[]; /** * Accept own properties * You can get the property later using `get()` method. */ [key: string]: any; } export interface MyLocation { latLng?: LatLng; elapsedRealtimeNanos?: any; time?: string; accuracy?: any; bearing?: number; altitude?: any; speed?: number; provider?: any; hashCode?: any; } export interface MyLocationOptions { /** * Set true if you want to try to use GPS mandatory. * In false, the plugin try to use GPS and network. * (default: false) */ enableHighAccuracy?: boolean; } export interface PolygonOptions { /** * Pass ILatLng[] to specify the vertixes. * You need to contain two points at least. */ points: ILatLng[]; /** * Set true if you want to draw the curve polygon based on the earth * (default: false) */ geodesic?: boolean; /** * Set the stroke color * (rgb, rgba, #RRGGBB, "colorname", ...etc) */ strokeColor?: string; /** * Set the stroke width in pixel */ strokeWidth?: number; /** * Set the inside color of polygon * (rgb, rgba, #RRGGBB, "colorname", ...etc) */ fillColor?: string; /** * Set false if you want to create invisible polygon * (Invisible polygon is not clickable, default true) */ visible?: boolean; /** * Hierarchy z-index */ zIndex?: number; /** * Pass ILatLng[][] to create holes in polygon */ holes?: ILatLng[][]; /** * Set true if you want to receive the POLYGON_CLICK event * (default: false) */ clickable?: boolean; /** * Accept own properties * You can get the property later using `get()` method. */ [key: string]: any; } export interface PolylineOptions { /** * Pass ILatLng[] to specify the vertixes. * You need to contain two points at least. */ points: ILatLng[]; /** * Set false if you want to create invisible polyline * (Invisible polyline is not clickable, default true) */ visible?: boolean; /** * Set true if you want to draw the curve polyline based on the earth * (default: false) */ geodesic?: boolean; /** * Set the stroke color * (rgb, rgba, #RRGGBB, "colorname", ...etc) */ color?: string; /** * Set the stroke width in pixel */ width?: number; /** * Hierarchy z-index */ zIndex?: number; /** * Set true if you want to receive the POLYLINE_CLICK event * (default: false) */ clickable?: boolean; /** * Accept own properties * You can get the property later using `get()` method. */ [key: string]: any; } export interface TileOverlayOptions { /** * This callback must Returns string of image URL, or Promise. * If no tile, you need to Returns null. */ getTile: (x: number, y: number, zoom: number) => string; /** * Set false if you want to create invisible tilelayer * (default true) */ visible?: boolean; /** * Hierarchy z-index of tilelayer */ zIndex?: number; /** * Default: 512px */ tileSize?: number; /** * Default: 1.0 */ opacity?: number; /** * Set true if you want to display the tile information over the tile images. */ debug?: boolean; /** * Accept own properties * You can get the property later using `get()` method. */ [key: string]: any; } export interface ToDataUrlOptions { /** * True if you want get high quality map snapshot */ uncompress?: boolean; } /** * Options for map.addKmlOverlay() method */ export interface KmlOverlayOptions { url: string; clickable?: boolean; suppressInfoWindows?: boolean; icon?: string | MarkerIcon; /** * Accept own properties for future update */ [key: string]: any; } /** * Options for Environment.setEnv() */ export interface EnvOptions { API_KEY_FOR_BROWSER_RELEASE?: string; API_KEY_FOR_BROWSER_DEBUG?: string; /** * Accept own properties for future update */ [key: string]: any; } /** * @hidden */ export declare class VisibleRegion implements ILatLngBounds { private _objectInstance; /** * The northeast of the bounds that contains the farLeft, farRight, nearLeft and nearRight. * Since the map view is able to rotate, the farRight is not the same as the northeast. */ northeast: ILatLng; /** * The southwest of the bounds that contains the farLeft, farRight, nearLeft and nearRight. * Since the map view is able to rotate, the nearLeft is not the same as the southwest. */ southwest: ILatLng; /** * The farLeft indicates the lat/lng of the top-left of the map view. */ farLeft: ILatLng; /** * The farRight indicates the lat/lng of the top-right of the map view. */ farRight: ILatLng; /** * The nearLeft indicates the lat/lng of the bottom-left of the map view. */ nearLeft: ILatLng; /** * The nearRight indicates the lat/lng of the bottom-right of the map view. */ nearRight: ILatLng; /** * constant value : `VisibleRegion` */ type: string; constructor(southwest: LatLngBounds, northeast: LatLngBounds, farLeft: ILatLng, farRight: ILatLng, nearLeft: ILatLng, nearRight: ILatLng); /** * Converts to string * @return {string} */ toString(): string; /** * Returns a string of the form "lat_sw,lng_sw,lat_ne,lng_ne" for this bounds, where "sw" corresponds to the southwest corner of the bounding box, while "ne" corresponds to the northeast corner of that box. * @param precision {number} * @return {string} */ toUrlValue(precision?: number): string; /** * Returns true if the given lat/lng is in this bounds. * @param LatLng {ILatLng} */ contains(LatLng: ILatLng): boolean; } /** * @hidden */ export declare const StreetViewSource: { DEFAULT: string; OUTDOOR: string; }; export interface SetPovOption { bearing: number; radius?: number; zoom?: number; duration: number; } export interface StreetViewSetPositionOption { target: ILatLng; source?: string; radius?: number; } export interface StreetViewCameraPano { target: string; bearing?: number; tilt?: number; zoom?: number; } export interface StreetViewCameraPosition { target: ILatLng; source?: string; radius?: number; bearing?: number; tilt?: number; zoom?: number; } export interface StreetViewControlOptions { streetNames?: boolean; navigation?: boolean; } export interface StreetViewGestureOptions { panning?: boolean; zooming?: boolean; } export interface StreetViewOptions { camera?: StreetViewCameraPano | StreetViewCameraPosition; /** * controls [options] */ controls?: StreetViewControlOptions; /** * gestures [options] */ gestures?: StreetViewGestureOptions; /** * Accept extra properties for future updates */ [key: string]: any; } export interface StreetViewNavigationLink { /** * panorama Id */ panoId: string; /** * bearing (heading) */ bearing: number; } export interface StreetViewLocation { latLng: ILatLng; links: StreetViewNavigationLink[]; } /** * @hidden * You can listen to these events where appropriate */ export declare const GoogleMapsEvent: { MAP_READY: string; MAP_CLICK: string; MAP_LONG_CLICK: string; POI_CLICK: string; MY_LOCATION_CLICK: string; MY_LOCATION_BUTTON_CLICK: string; INDOOR_BUILDING_FOCUSED: string; INDOOR_LEVEL_ACTIVATED: string; CAMERA_MOVE_START: string; CAMERA_MOVE: string; CAMERA_MOVE_END: string; OVERLAY_CLICK: string; POLYGON_CLICK: string; POLYLINE_CLICK: string; CIRCLE_CLICK: string; GROUND_OVERLAY_CLICK: string; INFO_CLICK: string; INFO_LONG_CLICK: string; INFO_CLOSE: string; INFO_OPEN: string; MARKER_CLICK: string; MARKER_DRAG: string; MARKER_DRAG_START: string; MARKER_DRAG_END: string; MAP_DRAG: string; MAP_DRAG_START: string; MAP_DRAG_END: string; KML_CLICK: string; PANORAMA_READY: string; PANORAMA_CAMERA_CHANGE: string; PANORAMA_LOCATION_CHANGE: string; PANORAMA_CLICK: string; }; /** * @hidden */ export declare const GoogleMapsAnimation: { BOUNCE: string; DROP: string; }; /** * @hidden */ export declare const GoogleMapsMapTypeId: { NORMAL: string; ROADMAP: string; SATELLITE: string; HYBRID: string; TERRAIN: string; NONE: string; }; /** * @name Google Maps * @description * This plugin uses the native Google Maps SDK * Note: As of Ionic native 4.0, this using the 2.0 version of the google maps plugin. Please make sure your plugin is updated * @usage * ```typescript * import { * GoogleMaps, * GoogleMap, * GoogleMapsEvent, * GoogleMapOptions, * CameraPosition, * MarkerOptions, * Marker * } from '@ionic-native/google-maps'; * import { Component } from "@angular/core/"; * * @Component({ * selector: 'page-home', * templateUrl: 'home.html' * }) * export class HomePage { * map: GoogleMap; * constructor() { } * * ionViewDidLoad() { * this.loadMap(); * } * * loadMap() { * * let mapOptions: GoogleMapOptions = { * camera: { * target: { * lat: 43.0741904, * lng: -89.3809802 * }, * zoom: 18, * tilt: 30 * } * } * * this.map = GoogleMaps.create('map_canvas', mapOptions); * * let marker: Marker = this.map.addMarkerSync({ * title: 'Ionic', * icon: 'blue', * animation: 'DROP', * position: { * lat: 43.0741904, * lng: -89.3809802 * } * }); * * marker.on(GoogleMapsEvent.MARKER_CLICK) * .subscribe(() => { * alert('clicked'); * }); * }); * } * } * * ``` * @classes * GoogleMaps * GoogleMap * StreetView * Circle * Encoding * Environment * Geocoder * GroundOverlay * HtmlInfoWindow * Geocoder * LatLng * LatLngBounds * Marker * MarkerCluster * Polygon * Polyline * Spherical * KmlOverlay * Poly * TileOverlay * BaseClass * BaseArrayClass * @interfaces * GoogleMapOptions * CameraPosition * CircleOptions * GeocoderRequest * GeocoderResult * GroundOverlayOptions * ILatLng * MarkerIcon * MarkerOptions * MarkerClusterIcon * MarkerClusterOptions * MyLocation * MyLocationOptions * PolygonOptions * PolylineOptions * TileOverlayOptions * KmlOverlayOptions * VisibleRegion */ export declare class GoogleMaps extends IonicNativePlugin { /** * Creates a new GoogleMap instance * @param element {string | HTMLElement} Element ID or reference to attach the map to * @param options {GoogleMapOptions} [options] Options * @return {GoogleMap} */ static create(element: string | HTMLElement | GoogleMapOptions, options?: GoogleMapOptions): GoogleMap; /** * @deprecation keep this for backward compatibility. * @hidden */ create(element: string | HTMLElement | GoogleMapOptions, options?: GoogleMapOptions): GoogleMap; /** * Creates a new StreetView instance * @param element {string | HTMLElement} Element ID or reference to attach the map to * @param options {StreetViewOptions} [options] Options * @return {StreetViewPanorama} */ static createPanorama(element: string | HTMLElement, options?: StreetViewOptions): StreetViewPanorama; } /** * @hidden * https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.0.0/class/BaseClass/README.md */ export declare class BaseClass { protected _objectInstance: any; constructor(objInstance?: any); /** * Adds an event listener. * @param eventName {string} event name you want to observe. * @return {Observable<any>} */ addEventListener(eventName: string): Observable<any>; /** * Attaches the handler for the event that is thrown by the target, where the minimum interval between events (in milliseconds) is specified as a parameter. * @param eventName {string} event name you want to observe. * @param throttleInterval {number} throttle interval in milliseconds * @return {Observable<any>} */ /** * Adds an event listener that works once. * @param eventName {string} event name you want to observe. * @return {Promise<any>} */ addEventListenerOnce(eventName: string): Promise<any>; /** * @deprecated * Adds an event listener that works once. * @param eventName {string} event name you want to observe. * @return {Promise<any>} */ addListenerOnce(eventName: string): Promise<any>; /** * Gets a value * @param key {any} */ get(key: string): any; /** * Sets a value * @param key {string} The key name for the value. `(key)_changed` will be fired when you set value through this method. * @param value {any} * @param noNotify {boolean} [options] True if you want to prevent firing the `(key)_changed` event. */ set(key: string, value: any, noNotify?: boolean): void; /** * Bind a key to another object * @param key {string} The property name you want to observe. * @param target {any} The target object you want to observe. * @param targetKey? {string} [options] The property name you want to observe. If you omit this, the `key` argument is used. * @param noNotify? {boolean} [options] True if you want to prevent `(key)_changed` event when you bind first time, because the internal status is changed from `undefined` to something. */ bindTo(key: string, target: any, targetKey?: string, noNotify?: boolean): void; /** * Alias of `addEventListener` * @param key {string} The property name you want to observe. * @return {Observable<any>} */ on(eventName: string): Observable<any>; /** * Alias of `addThrottledEventListener` * @param key {string} The property name you want to observe. * @return {Observable<any>} */ /** * Alias of `addEventListenerOnce` * @param key {string} The property name you want to observe. * @return {Promise<any>} */ one(eventName: string): Promise<any>; /** * Return true if this object has event listener for event name * @param eventName {string} Event name * @return {boolean} */ hasEventListener(): boolean; /** * Clears all stored values */ empty(): void; /** * Dispatch event. * @param eventName {string} Event name * @param parameters {any} [options] The data you want to pass to event listerners. */ trigger(eventName: string, ...parameters: any[]): void; /** * Executes off() and empty() */ destroy(): void; /** * Remove event listener(s) * The `removeEventListener()` has three usages: * - removeEventListener("eventName", listenerFunction); * This removes one particular event listener * - removeEventListener("eventName"); * This removes the event listeners that added for the event name. * - removeEventListener(); * This removes all listeners. * * @param eventName {string} [options] Event name * @param listener {Function} [options] Event listener */ removeEventListener(eventName?: string, listener?: (...parameters: any[]) => void): void; /** * Alias of `removeEventListener` * * @param eventName {string} [options] Event name * @param listener {Function} [options] Event listener */ off(eventName?: string, listener?: (...parameters: any[]) => void): void; } /** * @hidden * https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.0.0/class/BaseArrayClass/README.md */ export declare class BaseArrayClass<T> extends BaseClass { constructor(initialData?: T[] | any); /** * Removes all elements from the array. * @param noNotify? {boolean} [options] Set true to prevent remove_at events. */ empty(noNotify?: boolean): void; /** * Iterate over each element, calling the provided callback. * @param fn {Function} */ forEach(fn: (element: T, index?: number) => void): void; /** * Iterate over each element, calling the provided callback. * @param fn {Function} * @return {Promise<void>} */ forEachAsync(fn: ((element: T, callback: () => void) => void)): Promise<void>; /** * Iterate over each element, then Returns a new value. * Then you can get the results of each callback. * @param fn {Function} * @return {Object[]} returns a new array with the results */ map(fn: (element: T, index: number) => any): any[]; /** * Iterate over each element, calling the provided callback. * Then you can get the results of each callback. * @param fn {Function} * @param callback {Function} * @return {Promise<any>} returns a new array with the results */ mapAsync(fn: ((element: T, callback: (newElement: any) => void) => void)): Promise<any[]>; /** * Same as `mapAsync`, but keep the execution order * @param fn {Function} * @param callback {Function} * @return {Promise<any>} returns a new array with the results */ mapSeries(fn: ((element: T, callback: (newElement: any) => void) => void)): Promise<any[]>; /** * The filter() method creates a new array with all elements that pass the test implemented by the provided function. * @param fn {Function} * @return {T[]} returns a new filtered array */ filter(fn: (element: T, index: number) => boolean): T[]; /** * The filterAsync() method creates a new array with all elements that pass the test implemented by the provided function. * @param fn {Function} * @param callback {Function} * @return {Promise<T[]>} returns a new filtered array */ filterAsync(fn: (element: T, callback: (result: boolean) => void) => void): Promise<T[]>; /** * Returns a reference to the underlying Array. * @return {Object[]} */ getArray(): T[]; /** * Returns the element at the specified index. * @param index {number} * @return {Object} */ getAt(index: number): any; /** * Returns the number of the elements. * @return {number} */ getLength(): number; /** * The indexOf() method returns the first index at which a given element can be found in the array, or -1 if it is not present. * @param element {Object} * @return {number} */ indexOf(element: T): number; /** * The reverse() method reverses an array in place. */ reverse(): void; /** * The sort() method sorts the elements of an array in place and returns the array. */ sort(): void; /** * Inserts an element at the specified index. * @param index {number} * @param element {Object} * @param noNotify? {boolean} [options] Set true to prevent insert_at event. * @return {Object} */ insertAt(index: number, element: T, noNotify?: boolean): void; /** * Removes the last element of the array and returns that element. * @param noNotify? {boolean} [options] Set true to prevent remove_at event. * @return {Object} */ pop(noNotify?: boolean): T; /** * Adds one element to the end of the array and returns the new length of the array. * @param element {object} * @param noNotify? {boolean} Set true to prevent insert_at events. */ push(element: T, noNotify?: boolean): void; /** * Removes an element from the specified index. * @param index {number} * @param noNotify? {boolean} [options] Set true to prevent remove_at event. */ removeAt(index: number, noNotify?: boolean): T; /** * Sets an element at the specified index. * @param index {number} * @param element {object} * @param noNotify? {boolean} [options] Set true to prevent set_at event. */ setAt(index: number, element: T, noNotify?: boolean): void; } /** * @hidden * https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.0.0/class/Circle/README.md */ export declare class Circle extends BaseClass { private _map; constructor(_map: GoogleMap, _objectInstance: any); /** * Returns the ID of instance. * @return {string} */ getId(): string; /** * Returns the map instance. * @return {GoogleMap} */ getMap(): any; /** * Changes the center position. * @param latLng {ILatLng} */ setCenter(latLng: ILatLng): void; /** * Returns the current center position * @return {ILatLng} */ getCenter(): ILatLng; /** * Returns the current circle radius. * @return {number} */ getRadius(): number; /** * Changes the circle radius. * @param radius {number} */ setRadius(radius: number): void; /** * Changes the filling color (inner color). * @param color {string} */ setFillColor(color: string): void; /** * Returns the current circle filling color (inner color). * @return {string} */ getFillColor(): string; /** * Changes the stroke width. * @param strokeWidth {number} */ setStrokeWidth(strokeWidth: number): void; /** * Returns the current circle stroke width (unit: pixel). * @return {number} */ getStrokeWidth(): number; /** * Changes the stroke color (outter color). * @param strokeColor {string} */ setStrokeColor(strokeColor: string): void; /** * Returns the current circle stroke color (outer color). * @return {string} */ getStrokeColor(): string; /** * Changes click-ability of the circle. * @param clickable {boolean} */ setClickable(clickable: boolean): void; /** * Returns true if the circle is clickable. * @return {boolean} */ getClickable(): boolean; /** * Changes the circle zIndex order. * @param zIndex {number} */ setZIndex(zIndex: number): void; /** * Returns the current circle zIndex. * @return {number} */ getZIndex(): number; /** * Remove the circle. */ remove(): void; /** * Returns the latLngBounds (rectangle) that contains the circle. * @return {LatLngBounds} */ getBounds(): LatLngBounds; /** * Set circle visibility * @param visible {boolean} */ setVisible(visible: boolean): void; /** * Returns true if the circle is visible. * @return {boolean} */ getVisible(): boolean; } /** * @hidden */ export declare class Environment { /** * Set environment variables. */ static setEnv(envOptions: EnvOptions): void; /** * Get the open source software license information for Google Maps SDK for iOS. * @return {Promise<any>} */ static getLicenseInfo(): Promise<any>; /** * Specifies the background color of the app. * @param color */ static setBackgroundColor(color: string): void; /** * @deprecation This method is static. Please use Environment.getLicenseInfo() * @hidden */ getLicenseInfo(): Promise<any>; /** * @deprecation This method is static. Please use Environment.setBackgroundColor() * @hidden */ setBackgroundColor(color: string): void; } /** * @hidden */ export declare class Geocoder { /** * @deprecation This method is static. Please use Geocoder.geocode() * @hidden */ geocode(request: GeocoderRequest): Promise<GeocoderResult[] | BaseArrayClass<GeocoderResult[]>>; /** * Converts position to address and vice versa * @param {GeocoderRequest} request Request object with either an address or a position * @return {Promise<GeocoderResult[] | BaseArrayClass<GeocoderResult>>} */ static geocode(request: GeocoderRequest): Promise<GeocoderResult[] | BaseArrayClass<GeocoderResult[]>>; } /** * @hidden */ export declare class LocationService { /** * Get the current device location without map * @return {Promise<MyLocation>} */ static getMyLocation(options?: MyLocationOptions): Promise<MyLocation>; /** * Return true if the application has geolocation permission * @return {Promise<boolean>} */ static hasPermission(): Promise<boolean>; } /** * @hidden */ export declare class Encoding { /** * Decodes an encoded path string into a sequence of LatLngs. * @param encoded {string} an encoded path string * @param precision? {number} default: 5 * @return {LatLng} */ static decodePath(encoded: string, precision?: number): ILatLng[]; /** * Encodes a sequence of LatLngs into an encoded path string. * @param path {ILatLng[] | BaseArrayClass<ILatLng>} a sequence of LatLngs * @return {string} */ static encodePath(path: ILatLng[] | BaseArrayClass<ILatLng>): string; /** * @deprecation This method is static. Please use Encoding.decodePath() * @hidden */ decodePath(encoded: string, precision?: number): ILatLng[]; /** * @deprecation This method is static. Please use Encoding.encodePath() * @hidden */ encodePath(path: ILatLng[] | BaseArrayClass<ILatLng>): string; } /** * @hidden */ export declare class Poly { /** * Returns true if the specified location is in the polygon path * @param location {ILatLng} * @param path {ILatLng[]} * @return {boolean} */ static containsLocation(location: ILatLng, path: ILatLng[]): boolean; /** * Returns true if the specified location is on the polyline path * @param location {ILatLng} * @param path {ILatLng[]} * @return {boolean} */ static isLocationOnEdge(location: ILatLng, path: ILatLng[]): boolean; } /** * @hidden */ export declare class Spherical { /** * Returns the distance, in meters, between two LatLngs. * @param locationA {ILatLng} * @param locationB {ILatLng} * @return {number} */ static computeDistanceBetween(from: ILatLng, to: ILatLng): number; /** * Returns the LatLng resulting from moving a distance from an origin in the specified heading (expressed in degrees clockwise from north) * @param from {ILatLng} * @param distance {number} * @param heading {number} * @return {LatLng} */ static computeOffset(from: ILatLng, distance: number, heading: number): LatLng; /** * Returns the location of origin when provided with a LatLng destination, meters travelled and original heading. Headings are expressed in degrees clockwise from North. This function returns null when no solution is available. * @param to {ILatLng} The destination LatLng. * @param distance {number} The distance travelled, in meters. * @param heading {number} The heading in degrees clockwise from north. * @return {LatLng} */ static computeOffsetOrigin(to: ILatLng, distance: number, heading: number): LatLng; /** * Returns the length of the given path. * @param path {ILatLng[] | BaseArrayClass<ILatLng>} * @return {number} */ static computeLength(path: ILatLng[] | BaseArrayClass<ILatLng>): number; /** * Returns the area of a closed path. The computed area uses the same units as the radius. * @param path {ILatLng[] | BaseArrayClass<ILatLng>}. * @return {number} */ static computeArea(path: ILatLng[] | BaseArrayClass<ILatLng>): number; /** * Returns the signed area of a closed path. The signed area may be used to determine the orientation of the path. * @param path {ILatLng[] | BaseArrayClass<ILatLng>}. * @return {number} */ static computeSignedArea(path: ILatLng[] | BaseArrayClass<ILatLng>): number; /** * Returns the heading from one LatLng to another LatLng. Headings are expressed in degrees clockwise from North within the range (-180,180). * @param from {ILatLng} * @param to {ILatLng} * @return {number} */ static computeHeading(from: ILatLng, to: ILatLng): number; /** * Returns the LatLng which lies the given fraction of the way between the origin LatLng and the destination LatLng. * @param from {ILatLng} The LatLng from which to start. * @param to {ILatLng} The LatLng toward which to travel. * @param fraction {number} A fraction of the distance to travel from 0.0 to 1.0 . * @return {LatLng} */ static interpolate(from: ILatLng, to: ILatLng, fraction: number): LatLng; /** * @deprecation This method is static. Please use Spherical.computeDistanceBetween() * @hidden */ computeDistanceBetween(from: ILatLng, to: ILatLng): number; /** * @deprecation This method is static. Please use Spherical.computeOffset() * @hidden */ computeOffset(from: ILatLng, distance: number, heading: number): LatLng; /** * @deprecation This method is static. Please use Spherical.computeOffsetOrigin() * @hidden */ computeOffsetOrigin(to: ILatLng, distance: number, heading: number): LatLng; /** * @deprecation This method is static. Please use Spherical.computeLength() * @hidden */ computeLength(path: ILatLng[] | BaseArrayClass<ILatLng>): number; /** * @deprecation This method is static. Please use Spherical.computeArea() * @hidden */ computeArea(path: ILatLng[] | BaseArrayClass<ILatLng>): number; /** * @deprecation This method is static. Please use Spherical.computeSignedArea() * @hidden */ computeSignedArea(path: ILatLng[] | BaseArrayClass<ILatLng>): number; /** * @deprecation This method is static. Please use Spherical.computeHeading() * @hidden */ computeHeading(from: ILatLng, to: ILatLng): number; /** * @deprecation This method is static. Please use Spherical.interpolate() * @hidden */ interpolate(from: ILatLng, to: ILatLng, fraction: number): LatLng; } /** * @hidden */ export declare class StreetViewPanorama extends BaseClass { constructor(element: string | HTMLElement, options?: StreetViewOptions); /** * Sets the point of view for the Street View panorama. */ setPov(pov: StreetViewCameraPano): void; /** * Sets the StreetViewPanorama to a given location. */ setPosition(cameraPosition: String | StreetViewSetPositionOption): void; /** * Toggles the ability for users to use pan around on the panorama using gestures. * @param gestureEnable {boolean} */ setPanningGesturesEnabled(gestureEnable: boolean): void; /** * Return true if the panning gesture is enabled. * @return {boolean} */ getPanningGesturesEnabled(): boolean; /** * Toggles the ability for users to zoom on the panorama using gestures. * @param gestureEnable {boolean} */ setZoomGesturesEnabled(gestureEnable: boolean): void; /** * Return true if the zooming gesture is enabled. * @return {boolean} */ getZoomGesturesEnabled(): boolean; /** * Toggles the ability for users to see street names on the panorama. * @param gestureEnable {boolean} */ setStreetNamesEnabled(gestureEnable: boolean): void; /** * Return true if the street names control is enabled. * @return {boolean} */ getStreetNamesEnabled(): boolean; /** * Toggles the ability for users to move between panoramas. * @param gestureEnable {boolean} */ setNavigationEnabled(gestureEnable: boolean): void; /** * Return true if the navigation control is enabled. * @return {boolean} */ getNavigationEnabled(): boolean; /** * Return the navigation links (StreetViewLocation.links) * @return {StreetViewNavigationLink[]} */ getLinks(): StreetViewNavigationLink[]; /** * Return the current location * @return {StreetViewLocation} */ getLocation(): StreetViewLocation; /** * Return the current panorama id * @return {string} */ getPanoId(): string; /** * Return the current position (StreetViewLocation.latLng) * @return {string} */ getPosition(): ILatLng; /** * Destroy a panorama completely * @return {Promise<any>} */ remove(): Promise<any>; } /** * @hidden */ export declare class GoogleMap extends BaseClass { constructor(element: HTMLElement | string, options?: GoogleMapOptions, __timeout?: number); /** * Changes the map div * @param domNode {HTMLElement | string} [options] If you want to display the map in an html element, you need to specify an element or id. If omit this argument, the map is detached from webview. */ setDiv(domNode?: HTMLElement | string): void; /** * Returns the map HTML element * @return {HTMLElement} */ getDiv(): HTMLElement; /** * Changes the map type id * @param mapTypeId {string} */ setMapTypeId(mapTypeId: MapType | string): void; /** * Moves the camera with animation * @return {Promise<any>} */ animateCamera(cameraPosition: CameraPosition<any>): Promise<any>; /** * Zooming in the camera with animation * @return {Promise<any>} */ animateCameraZoomIn(): Promise<any>; /** * Zooming out the camera with animation * @return {Promise<any>} */ animateCameraZoomOut(): Promise<any>; /** * Moves the camera without animation * @return {Promise<any>} */ moveCamera(cameraPosition: CameraPosition<any>): Promise<any>; /** * Zooming in the camera without animation * @return {Promise<any>} */ moveCameraZoomIn(): Promise<any>; /** * Zooming out the camera without animation * @return {Promise<any>} */ moveCameraZoomOut(): Promise<any>; /** * Get the position of the camera. * @return {CameraPosition} */ getCameraPosition(): CameraPosition<ILatLng>; /** * Get the current camera target position * @return {ILatLng} */ getCameraTarget(): ILatLng; /** * Get the current camera zoom level * @return {number} */ getCameraZoom(): number; /** * Get the current camera bearing * @return {number} */ getCameraBearing(): number; /** * Get the current camera tilt (view angle) * @return {number} */ getCameraTilt(): number; /** * Set the center position of the camera view * @param latLng {ILatLng | ILatLng[]} */ setCameraTarget(latLng: ILatLng | ILatLng[]): void; /** * Set zoom level of the camera * @param zoomLevel {number} Zoom level */ setCameraZoom(zoomLevel: number): void; /** * Set the camera view angle * @param tiltAngle {number} Tilt angle */ setCameraTilt(tiltAngle: number): void; /** * Set camera bearing * @param bearing {any} */ setCameraBearing(bearing: any): void; /** * Changes the center of the map by the given distance in pixels * @param x {number} * @param y {number} */ panBy(x: number, y: number): void; /** * Get the current visible region (southWest and northEast) * @return {VisibleRegion} */ getVisibleRegion(): VisibleRegion; /** * Get the current device location * @return {Promise<MyLocation>} */ getMyLocation(options?: MyLocationOptions): Promise<MyLocation>; /** * Set false to ignore all clicks on the map * @param isClickable {boolean} */ setClickable(isClickable: boolean): void; /** * Destroy a map completely * @return {Promise<any>} */ remove(): Promise<any>; /** * Remove all overlays, such as marker * @return {Promise<any>} */ clear(): Promise<any>; /** * Convert the unit from LatLng to the pixels from the left/top of the map div * @return {Promise<any>} */ fromLatLngToPoint(latLng: ILatLng): Promise<any[]>; /** * Convert the unit from the pixels from the left/top to the LatLng * @return {Promise<LatLng>} */ fromPointToLatLng(point: number[]): Promise<LatLng>; /** * Set true if you want to show the MyLocation control (blue dot) * @param enabled {boolean} */ setMyLocationEnabled(enabled: boolean): void; /** * Set true if you want to show the MyLocation button * @param enabled {boolean} */ setMyLocationButtonEnabled(enabled: boolean): void; /** * Get the currently focused building * @return {Promise<any>} */ getFocusedBuilding(): Promise<any>; /** * Set true if you want to show the indoor map * @param enabled {boolean} */ setIndoorEnabled(enabled: boolean): void; /** * Set true if you want to show the traffic layer * @param enabled {boolean} */ setTrafficEnabled(enabled: boolean): void; /** * Set true if you want to show the compass button * @param enabled {boolean} */ setCompassEnabled(enabled: boolean): void; /** * Sets the preference for whether all gestures should be enabled or disabled * @param enabled {boolean} */ setAllGesturesEnabled(enabled: boolean): void; /** * Set visibility of the map * @param visible {boolean} */ setVisible(visible: boolean): void; /** * Adjust the map padding (same as CSS padding rule) * @param top {number} * @param right {number} * @param left {number} * @param bottom {number} */ setPadding(top: number, right?: number, bottom?: num