/// import { Coord, CoordPath, Path, WrappedNativeFunctions } from '@bespunky/angular-google-maps/core'; import { IGoogleMapsDrawableOverlay } from '../../abstraction/base/i-google-maps-drawable-overlay'; import { IGoogleMapsFeature } from './feature/i-google-maps-feature'; /** A type for the native functions of a data layer which should be wrapped. Used along with the extension interface for the wrapper. */ export declare type WrappedDataFunctions = WrappedNativeFunctions; /** * Represents the functionality that a data layer wrapper should provide. * * @export * @interface IGoogleMapsData * @extends {IGoogleMapsDrawableOverlay} * @extends {WrappedDataFunctions} */ export interface IGoogleMapsData extends IGoogleMapsDrawableOverlay, WrappedDataFunctions { /** * Creates a marker geometry feature with the specified properties and adds it to the map. * * @param {Coord} position The position at which the marker should be added. * @param {google.maps.Data.FeatureOptions} [options] (Optional) Any native options to assign to the marker. * @returns {IGoogleMapsFeature} The wrapper object for the new feature. */ createMarker(position: Coord, options?: google.maps.Data.FeatureOptions): IGoogleMapsFeature; /** * Creates a polygon geometry feature with the specified properties and adds it to the map. * * @param {CoordPath} path The path describing the polygon coordinates. * @param {google.maps.Data.FeatureOptions} [options] (Optional) Any native options to assign to the polygon. * @returns {IGoogleMapsFeature} The wrapper object for the new feature. */ createPolygon(path: CoordPath, options?: google.maps.Data.FeatureOptions): IGoogleMapsFeature; /** * Creates a polyline geometry feature with the specified properties and adds it to the map. * * @param {Path} path The path describing the polyline coordinates. * @param {google.maps.Data.FeatureOptions} [options] (Optional) Any native options to assign to the polyline. * @returns {IGoogleMapsFeature} The wrapper object for the new feature. */ createPolyline(path: Path, options?: google.maps.Data.FeatureOptions): IGoogleMapsFeature; /** * Adds a feature to the data layer. If a native feature is specified, a wrapper will be created for it. * * @param {(google.maps.Data.FeatureOptions | IGoogleMapsFeature)} feature The native feature or feature wrapper to add. * @returns {IGoogleMapsFeature} The wrapper object for the new feature. */ addFeature(feature: google.maps.Data.FeatureOptions | IGoogleMapsFeature): IGoogleMapsFeature; /** * Looks for a feature in the data layer. * * @param {(string | number)} id The id of the feature to look for. * @returns {google.maps.Data.Feature} The feature associated with the specified id or `null` when not found. */ findFeature(id: string | number): google.maps.Data.Feature; /** * Removes a feature from the data layer. * * @param {(google.maps.Data.Feature | IGoogleMapsFeature | number | string)} featureOrId The feature or feature id to remove. * @returns {IGoogleMapsFeature} The removed feature wrapper. */ removeFeature(featureOrId: google.maps.Data.Feature | IGoogleMapsFeature | number | string): IGoogleMapsFeature; /** * Downloads GeoJson data from the specified url, interprets it and creates map features for it. * Will automatically take care of the callback required by Google Maps Api internally. * @param {string} url The url to the GeoJson data to download. * @param {google.maps.Data.GeoJsonOptions} [options] (Optional) Configures the process of reading the GeoJson. * @returns {google.maps.Data.Feature[]} A promise for the features representing the geometries added from the GeoJson. */ loadGeoJson(url: string, options?: google.maps.Data.GeoJsonOptions): Promise; /** * Creates the GeoJson representation of the data and provides it as an object when the promise resolves. * Will automatically take care of the callback required by Google Maps Api internally. * * @returns {Promise} A promise for the GeoJson object. */ toGeoJson(): Promise; }