From 6d98a2ab1d38fad35cff99573013f3fc80759a2c Mon Sep 17 00:00:00 2001
From: Dylan Llewellyn <46717769+herefishyfish@users.noreply.github.com>
Date: Tue, 5 Jul 2022 18:24:21 +0800
Subject: [PATCH 01/29] feat(google-map-utils): Init
---
README.md | 1 +
apps/demo-angular/package.json | 81 +-
apps/demo-angular/src/app-routing.module.ts | 1 +
apps/demo-angular/src/home.component.ts | 3 +
.../google-maps-utils.component.html | 8 +
.../google-maps-utils.component.ts | 19 +
.../plugin-demos/google-maps-utils.module.ts | 10 +
apps/demo/package.json | 87 +-
apps/demo/src/main-page.xml | 1 +
.../src/plugin-demos/google-maps-utils.ts | 12 +
.../src/plugin-demos/google-maps-utils.xml | 14 +
packages/google-maps-utils/.eslintrc.json | 18 +
packages/google-maps-utils/README.md | 13 +
packages/google-maps-utils/common.ts | 4 +
packages/google-maps-utils/index.android.ts | 234 +
packages/google-maps-utils/index.d.ts | 5 +
packages/google-maps-utils/index.ios.ts | 5 +
packages/google-maps-utils/package.json | 35 +
.../platforms/android/include.gradle | 3 +
packages/google-maps-utils/project.json | 72 +
packages/google-maps-utils/references.d.ts | 2 +
packages/google-maps-utils/tsconfig.json | 9 +
.../google-maps-utils/typings/android.d.ts | 8980 +++++++++++++++++
.../Android/src/main/AndroidManifest.xml | 4 +
.../demo/google-maps-utils/geojson.example.ts | 117 +
tools/demo/google-maps-utils/index.ts | 61 +
tools/demo/index.ts | 1 +
tools/workspace-scripts.js | 11 +
tsconfig.base.json | 214 +-
workspace.json | 75 +-
30 files changed, 9917 insertions(+), 183 deletions(-)
create mode 100644 apps/demo-angular/src/plugin-demos/google-maps-utils.component.html
create mode 100644 apps/demo-angular/src/plugin-demos/google-maps-utils.component.ts
create mode 100644 apps/demo-angular/src/plugin-demos/google-maps-utils.module.ts
create mode 100644 apps/demo/src/plugin-demos/google-maps-utils.ts
create mode 100644 apps/demo/src/plugin-demos/google-maps-utils.xml
create mode 100644 packages/google-maps-utils/.eslintrc.json
create mode 100644 packages/google-maps-utils/README.md
create mode 100644 packages/google-maps-utils/common.ts
create mode 100644 packages/google-maps-utils/index.android.ts
create mode 100644 packages/google-maps-utils/index.d.ts
create mode 100644 packages/google-maps-utils/index.ios.ts
create mode 100644 packages/google-maps-utils/package.json
create mode 100644 packages/google-maps-utils/platforms/android/include.gradle
create mode 100644 packages/google-maps-utils/project.json
create mode 100644 packages/google-maps-utils/references.d.ts
create mode 100644 packages/google-maps-utils/tsconfig.json
create mode 100644 packages/google-maps-utils/typings/android.d.ts
create mode 100644 tools/demo/google-maps-utils/geojson.example.ts
create mode 100644 tools/demo/google-maps-utils/index.ts
diff --git a/README.md b/README.md
index 9524b85e..b3f4472e 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,7 @@
- [@nativescript/fingerprint-auth](packages/fingerprint-auth/README.md)
- [@nativescript/geolocation](packages/geolocation/README.md)
- [@nativescript/google-maps](packages/google-maps/README.md)
+- [@nativescript/google-maps-utils](packages/google-maps-utils/README.md)
- [@nativescript/google-signin](packages/google-signin/README.md)
- [@nativescript/imagepicker](packages/imagepicker/README.md)
- [@nativescript/ionic-portals](packages/ionic-portals/README.md)
diff --git a/apps/demo-angular/package.json b/apps/demo-angular/package.json
index 0499e2fd..3067a986 100644
--- a/apps/demo-angular/package.json
+++ b/apps/demo-angular/package.json
@@ -1,42 +1,43 @@
{
- "main": "./src/main.ts",
- "dependencies": {
- "@nativescript/core": "file:../../node_modules/@nativescript/core",
- "@nativescript/ionic-portals": "file:../../dist/packages/ionic-portals",
- "@nativescript/animated-circle": "file:../../dist/packages/animated-circle",
- "@nativescript/appavailability": "file:../../dist/packages/appavailability",
- "@nativescript/apple-sign-in": "file:../../dist/packages/apple-sign-in",
- "@nativescript/auto-fit-text": "file:../../dist/packages/auto-fit-text",
- "@nativescript/background-http": "file:../../dist/packages/background-http",
- "@nativescript/biometrics": "file:../../dist/packages/biometrics",
- "@nativescript/brightness": "file:../../dist/packages/brightness",
- "@nativescript/camera": "file:../../dist/packages/camera",
- "@nativescript/contacts": "file:../../dist/packages/contacts",
- "@nativescript/datetimepicker": "file:../../dist/packages/datetimepicker",
- "@nativescript/debug-android": "file:../../dist/packages/debug-android",
- "@nativescript/debug-ios": "file:../../dist/packages/debug-ios",
- "@nativescript/detox": "file:../../dist/packages/detox",
- "@nativescript/directions": "file:../../dist/packages/directions",
- "@nativescript/email": "file:../../dist/packages/email",
- "@nativescript/facebook": "file:../../dist/packages/facebook",
- "@nativescript/fingerprint-auth": "file:../../dist/packages/fingerprint-auth",
- "@nativescript/geolocation": "file:../../dist/packages/geolocation",
- "@nativescript/google-maps": "file:../../dist/packages/google-maps",
- "@nativescript/google-signin": "file:../../dist/packages/google-signin",
- "@nativescript/imagepicker": "file:../../dist/packages/imagepicker",
- "@nativescript/ios-security": "file:../../dist/packages/ios-security",
- "@nativescript/iqkeyboardmanager": "file:../../dist/packages/iqkeyboardmanager",
- "@nativescript/local-notifications": "file:../../dist/packages/local-notifications",
- "@nativescript/localize": "file:../../dist/packages/localize",
- "@nativescript/picker": "file:../../dist/packages/picker",
- "@nativescript/shared-notification-delegate": "file:../../dist/packages/shared-notification-delegate",
- "@nativescript/social-share": "file:../../dist/packages/social-share",
- "@nativescript/theme-switcher": "file:../../dist/packages/theme-switcher",
- "@nativescript/twitter": "file:../../dist/packages/twitter",
- "@nativescript/zip": "file:../../dist/packages/zip"
- },
- "devDependencies": {
- "@nativescript/android": "~8.2.0",
- "@nativescript/ios": "~8.2.0"
- }
+ "main": "./src/main.ts",
+ "dependencies": {
+ "@nativescript/core": "file:../../node_modules/@nativescript/core",
+ "@nativescript/google-maps-utils": "file:../../dist/packages/google-maps-utils",
+ "@nativescript/google-maps": "file:../../dist/packages/google-maps",
+ "@nativescript/animated-circle": "file:../../dist/packages/animated-circle",
+ "@nativescript/appavailability": "file:../../dist/packages/appavailability",
+ "@nativescript/apple-sign-in": "file:../../dist/packages/apple-sign-in",
+ "@nativescript/auto-fit-text": "file:../../dist/packages/auto-fit-text",
+ "@nativescript/background-http": "file:../../dist/packages/background-http",
+ "@nativescript/biometrics": "file:../../dist/packages/biometrics",
+ "@nativescript/brightness": "file:../../dist/packages/brightness",
+ "@nativescript/camera": "file:../../dist/packages/camera",
+ "@nativescript/contacts": "file:../../dist/packages/contacts",
+ "@nativescript/datetimepicker": "file:../../dist/packages/datetimepicker",
+ "@nativescript/debug-android": "file:../../dist/packages/debug-android",
+ "@nativescript/debug-ios": "file:../../dist/packages/debug-ios",
+ "@nativescript/detox": "file:../../dist/packages/detox",
+ "@nativescript/directions": "file:../../dist/packages/directions",
+ "@nativescript/email": "file:../../dist/packages/email",
+ "@nativescript/facebook": "file:../../dist/packages/facebook",
+ "@nativescript/fingerprint-auth": "file:../../dist/packages/fingerprint-auth",
+ "@nativescript/geolocation": "file:../../dist/packages/geolocation",
+ "@nativescript/google-signin": "file:../../dist/packages/google-signin",
+ "@nativescript/imagepicker": "file:../../dist/packages/imagepicker",
+ "@nativescript/ionic-portals": "file:../../dist/packages/ionic-portals",
+ "@nativescript/ios-security": "file:../../dist/packages/ios-security",
+ "@nativescript/iqkeyboardmanager": "file:../../dist/packages/iqkeyboardmanager",
+ "@nativescript/local-notifications": "file:../../dist/packages/local-notifications",
+ "@nativescript/localize": "file:../../dist/packages/localize",
+ "@nativescript/picker": "file:../../dist/packages/picker",
+ "@nativescript/shared-notification-delegate": "file:../../dist/packages/shared-notification-delegate",
+ "@nativescript/social-share": "file:../../dist/packages/social-share",
+ "@nativescript/theme-switcher": "file:../../dist/packages/theme-switcher",
+ "@nativescript/twitter": "file:../../dist/packages/twitter",
+ "@nativescript/zip": "file:../../dist/packages/zip"
+ },
+ "devDependencies": {
+ "@nativescript/android": "~8.2.0",
+ "@nativescript/ios": "~8.2.0"
+ }
}
diff --git a/apps/demo-angular/src/app-routing.module.ts b/apps/demo-angular/src/app-routing.module.ts
index 4f32da22..ab404982 100644
--- a/apps/demo-angular/src/app-routing.module.ts
+++ b/apps/demo-angular/src/app-routing.module.ts
@@ -26,6 +26,7 @@ const routes: Routes = [
{ path: 'fingerprint-auth', loadChildren: () => import('./plugin-demos/fingerprint-auth.module').then(m => m.FingerprintAuthModule) },
{ path: 'geolocation', loadChildren: () => import('./plugin-demos/geolocation.module').then(m => m.GeolocationModule) },
{ path: 'google-maps', loadChildren: () => import('./plugin-demos/google-maps.module').then(m => m.GoogleMapsModule) },
+ { path: 'google-maps-utils', loadChildren: () => import('./plugin-demos/google-maps-utils.module').then(m => m.GoogleMapsUtilsModule) },
{ path: 'google-signin', loadChildren: () => import('./plugin-demos/google-signin.module').then(m => m.GoogleSigninModule) },
{ path: 'imagepicker', loadChildren: () => import('./plugin-demos/imagepicker.module').then(m => m.ImagepickerModule) },
{ path: 'ionic-portals', loadChildren: () => import('./plugin-demos/ionic-portals.module').then(m => m.IonicPortalsModule) },
diff --git a/apps/demo-angular/src/home.component.ts b/apps/demo-angular/src/home.component.ts
index f908a75f..c4bbfa1a 100644
--- a/apps/demo-angular/src/home.component.ts
+++ b/apps/demo-angular/src/home.component.ts
@@ -63,6 +63,9 @@ export class HomeComponent {
{
name: 'google-maps'
},
+ {
+ name: 'google-maps-utils'
+ },
{
name: 'google-signin'
},
diff --git a/apps/demo-angular/src/plugin-demos/google-maps-utils.component.html b/apps/demo-angular/src/plugin-demos/google-maps-utils.component.html
new file mode 100644
index 00000000..56634035
--- /dev/null
+++ b/apps/demo-angular/src/plugin-demos/google-maps-utils.component.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/apps/demo-angular/src/plugin-demos/google-maps-utils.component.ts b/apps/demo-angular/src/plugin-demos/google-maps-utils.component.ts
new file mode 100644
index 00000000..3ae88b2b
--- /dev/null
+++ b/apps/demo-angular/src/plugin-demos/google-maps-utils.component.ts
@@ -0,0 +1,19 @@
+import { Component, NgZone } from '@angular/core';
+import { DemoSharedGoogleMapsUtils } from '@demo/shared';
+import { } from '@nativescript/google-maps-utils';
+
+@Component({
+ selector: 'demo-google-maps-utils',
+ templateUrl: 'google-maps-utils.component.html',
+})
+export class GoogleMapsUtilsComponent {
+
+ demoShared: DemoSharedGoogleMapsUtils;
+
+ constructor(private _ngZone: NgZone) {}
+
+ ngOnInit() {
+ this.demoShared = new DemoSharedGoogleMapsUtils();
+ }
+
+}
\ No newline at end of file
diff --git a/apps/demo-angular/src/plugin-demos/google-maps-utils.module.ts b/apps/demo-angular/src/plugin-demos/google-maps-utils.module.ts
new file mode 100644
index 00000000..1a219672
--- /dev/null
+++ b/apps/demo-angular/src/plugin-demos/google-maps-utils.module.ts
@@ -0,0 +1,10 @@
+import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
+import { NativeScriptCommonModule, NativeScriptRouterModule } from '@nativescript/angular';
+import { GoogleMapsUtilsComponent } from './google-maps-utils.component';
+
+@NgModule({
+ imports: [NativeScriptCommonModule, NativeScriptRouterModule.forChild([{ path: '', component: GoogleMapsUtilsComponent }])],
+ declarations: [GoogleMapsUtilsComponent],
+ schemas: [ NO_ERRORS_SCHEMA]
+})
+export class GoogleMapsUtilsModule {}
diff --git a/apps/demo/package.json b/apps/demo/package.json
index a8793493..af463988 100644
--- a/apps/demo/package.json
+++ b/apps/demo/package.json
@@ -1,45 +1,46 @@
{
- "main": "./src/app.ts",
- "description": "NativeScript Application",
- "license": "SEE LICENSE IN ",
- "repository": "",
- "dependencies": {
- "@nativescript/ionic-portals": "file:../../packages/ionic-portals",
- "@nativescript/core": "file:../../node_modules/@nativescript/core",
- "@nativescript/animated-circle": "file:../../packages/animated-circle",
- "@nativescript/appavailability": "file:../../packages/appavailability",
- "@nativescript/apple-sign-in": "file:../../packages/apple-sign-in",
- "@nativescript/auto-fit-text": "file:../../packages/auto-fit-text",
- "@nativescript/background-http": "file:../../packages/background-http",
- "@nativescript/biometrics": "file:../../packages/biometrics",
- "@nativescript/brightness": "file:../../packages/brightness",
- "@nativescript/camera": "file:../../packages/camera",
- "@nativescript/contacts": "file:../../packages/contacts",
- "@nativescript/datetimepicker": "file:../../packages/datetimepicker",
- "@nativescript/debug-android": "file:../../packages/debug-android",
- "@nativescript/debug-ios": "file:../../packages/debug-ios",
- "@nativescript/detox": "file:../../packages/detox",
- "@nativescript/directions": "file:../../packages/directions",
- "@nativescript/email": "file:../../packages/email",
- "@nativescript/facebook": "file:../../packages/facebook",
- "@nativescript/fingerprint-auth": "file:../../packages/fingerprint-auth",
- "@nativescript/geolocation": "file:../../packages/geolocation",
- "@nativescript/google-maps": "file:../../packages/google-maps",
- "@nativescript/google-signin": "file:../../packages/google-signin",
- "@nativescript/imagepicker": "file:../../packages/imagepicker",
- "@nativescript/ios-security": "file:../../packages/ios-security",
- "@nativescript/iqkeyboardmanager": "file:../../packages/iqkeyboardmanager",
- "@nativescript/local-notifications": "file:../../packages/local-notifications",
- "@nativescript/localize": "file:../../dist/packages/localize",
- "@nativescript/picker": "file:../../packages/picker",
- "@nativescript/shared-notification-delegate": "file:../../packages/shared-notification-delegate",
- "@nativescript/social-share": "file:../../packages/social-share",
- "@nativescript/theme-switcher": "file:../../packages/theme-switcher",
- "@nativescript/twitter": "file:../../packages/twitter",
- "@nativescript/zip": "file:../../packages/zip"
- },
- "devDependencies": {
- "@nativescript/android": "~8.2.0",
- "@nativescript/ios": "~8.2.0"
- }
+ "main": "./src/app.ts",
+ "description": "NativeScript Application",
+ "license": "SEE LICENSE IN ",
+ "repository": "",
+ "dependencies": {
+ "@nativescript/core": "file:../../node_modules/@nativescript/core",
+ "@nativescript/google-maps-utils": "file:../../packages/google-maps-utils",
+ "@nativescript/google-maps": "file:../../packages/google-maps",
+ "@nativescript/animated-circle": "file:../../packages/animated-circle",
+ "@nativescript/appavailability": "file:../../packages/appavailability",
+ "@nativescript/apple-sign-in": "file:../../packages/apple-sign-in",
+ "@nativescript/auto-fit-text": "file:../../packages/auto-fit-text",
+ "@nativescript/background-http": "file:../../packages/background-http",
+ "@nativescript/biometrics": "file:../../packages/biometrics",
+ "@nativescript/brightness": "file:../../packages/brightness",
+ "@nativescript/camera": "file:../../packages/camera",
+ "@nativescript/contacts": "file:../../packages/contacts",
+ "@nativescript/datetimepicker": "file:../../packages/datetimepicker",
+ "@nativescript/debug-android": "file:../../packages/debug-android",
+ "@nativescript/debug-ios": "file:../../packages/debug-ios",
+ "@nativescript/detox": "file:../../packages/detox",
+ "@nativescript/directions": "file:../../packages/directions",
+ "@nativescript/email": "file:../../packages/email",
+ "@nativescript/facebook": "file:../../packages/facebook",
+ "@nativescript/fingerprint-auth": "file:../../packages/fingerprint-auth",
+ "@nativescript/geolocation": "file:../../packages/geolocation",
+ "@nativescript/google-signin": "file:../../packages/google-signin",
+ "@nativescript/imagepicker": "file:../../packages/imagepicker",
+ "@nativescript/ionic-portals": "file:../../packages/ionic-portals",
+ "@nativescript/ios-security": "file:../../packages/ios-security",
+ "@nativescript/iqkeyboardmanager": "file:../../packages/iqkeyboardmanager",
+ "@nativescript/local-notifications": "file:../../packages/local-notifications",
+ "@nativescript/localize": "file:../../packages/localize",
+ "@nativescript/picker": "file:../../packages/picker",
+ "@nativescript/shared-notification-delegate": "file:../../packages/shared-notification-delegate",
+ "@nativescript/social-share": "file:../../packages/social-share",
+ "@nativescript/theme-switcher": "file:../../packages/theme-switcher",
+ "@nativescript/twitter": "file:../../packages/twitter",
+ "@nativescript/zip": "file:../../packages/zip"
+ },
+ "devDependencies": {
+ "@nativescript/android": "~8.2.0",
+ "@nativescript/ios": "~8.2.0"
+ }
}
diff --git a/apps/demo/src/main-page.xml b/apps/demo/src/main-page.xml
index d6f65464..616d9cb5 100644
--- a/apps/demo/src/main-page.xml
+++ b/apps/demo/src/main-page.xml
@@ -24,6 +24,7 @@
+
diff --git a/apps/demo/src/plugin-demos/google-maps-utils.ts b/apps/demo/src/plugin-demos/google-maps-utils.ts
new file mode 100644
index 00000000..b60e6307
--- /dev/null
+++ b/apps/demo/src/plugin-demos/google-maps-utils.ts
@@ -0,0 +1,12 @@
+import { Observable, EventData, Page } from '@nativescript/core';
+import { DemoSharedGoogleMapsUtils } from '@demo/shared';
+import { } from '@nativescript/google-maps-utils';
+
+export function navigatingTo(args: EventData) {
+ const page = args.object;
+ page.bindingContext = new DemoModel();
+}
+
+export class DemoModel extends DemoSharedGoogleMapsUtils {
+
+}
diff --git a/apps/demo/src/plugin-demos/google-maps-utils.xml b/apps/demo/src/plugin-demos/google-maps-utils.xml
new file mode 100644
index 00000000..65a33ef6
--- /dev/null
+++ b/apps/demo/src/plugin-demos/google-maps-utils.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/google-maps-utils/.eslintrc.json b/packages/google-maps-utils/.eslintrc.json
new file mode 100644
index 00000000..53c06c8d
--- /dev/null
+++ b/packages/google-maps-utils/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "extends": ["../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*", "node_modules/**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/packages/google-maps-utils/README.md b/packages/google-maps-utils/README.md
new file mode 100644
index 00000000..6c85429e
--- /dev/null
+++ b/packages/google-maps-utils/README.md
@@ -0,0 +1,13 @@
+# @nativescript/google-maps-utils
+
+```javascript
+ns plugin add @nativescript/google-maps-utils
+```
+
+## Usage
+
+// TODO
+
+## License
+
+Apache License Version 2.0
diff --git a/packages/google-maps-utils/common.ts b/packages/google-maps-utils/common.ts
new file mode 100644
index 00000000..8dcc7801
--- /dev/null
+++ b/packages/google-maps-utils/common.ts
@@ -0,0 +1,4 @@
+import { Observable } from '@nativescript/core';
+
+export class GoogleMapsUtilsCommon extends Observable {
+}
diff --git a/packages/google-maps-utils/index.android.ts b/packages/google-maps-utils/index.android.ts
new file mode 100644
index 00000000..4f2288ed
--- /dev/null
+++ b/packages/google-maps-utils/index.android.ts
@@ -0,0 +1,234 @@
+import { GoogleMapsUtilsCommon } from './common';
+import { Coordinate, CoordinateBounds } from '@nativescript/google-maps';
+
+export class GoogleMapsUtils extends GoogleMapsUtilsCommon {
+ constructor(private map: com.google.android.gms.maps.GoogleMap) {
+ super();
+ }
+
+ addGeoJsonLayer(geoJson: string): GeoJsonLayer {
+ try {
+ const geoJsonData = new org.json.JSONObject(geoJson);
+ const layer = new GeoJsonLayer(this.map, geoJsonData);
+
+ layer.addLayerToMap();
+ return layer;
+ } catch (error) {
+ throw new Error(error);
+ }
+ }
+
+ buildHeatMapProvider(coordinates: Coordinate[], heatmapOptions?: IHeatmapOptions) {
+ const heatMapProvider = new HeatmapTileProvider(coordinates, heatmapOptions);
+ return heatMapProvider;
+ }
+}
+
+export interface IHeatmapOptions {
+ opacity: number;
+ radius: number;
+ maxIntensity: number;
+}
+
+export class HeatmapTileProvider {
+ #native: com.google.maps.android.heatmaps.HeatmapTileProvider;
+
+ constructor(coordinates: Coordinate[], heatmapOptions?: IHeatmapOptions) {
+ if (coordinates) {
+ const builder = new com.google.maps.android.heatmaps.HeatmapTileProvider.Builder();
+ const data = new java.util.ArrayList();
+
+ coordinates.forEach((coordinate) => {
+ data.add(new com.google.android.gms.maps.model.LatLng(coordinate.lat, coordinate.lng));
+ });
+
+ if (heatmapOptions) {
+ if (heatmapOptions.maxIntensity) {
+ builder.maxIntensity(heatmapOptions.maxIntensity);
+ }
+ if (heatmapOptions.opacity) {
+ builder.opacity(heatmapOptions.opacity);
+ }
+ if (heatmapOptions.radius) {
+ builder.maxIntensity(heatmapOptions.radius);
+ }
+ }
+
+ builder.data(data);
+ this.#native = builder.build();
+ }
+ }
+
+ get native() {
+ return this.#native;
+ }
+
+ build() {
+ return this.#native;
+ }
+
+ set opacity(opacity: number) {
+ this.#native.setOpacity(opacity);
+ }
+
+ setGradient(gradient: com.google.maps.android.heatmaps.Gradient): void {
+ this.#native.setGradient(gradient);
+ }
+
+ set radius(degrees: number) {
+ this.#native.setRadius(degrees);
+ }
+
+ set maxIntensity(maxIntensity: number) {
+ this.#native.setMaxIntensity(maxIntensity);
+ }
+
+ setData(coordinates: Coordinate[]): void {
+ const data = new java.util.ArrayList();
+
+ coordinates.forEach((coordinate) => {
+ data.add(new com.google.android.gms.maps.model.LatLng(coordinate.lat, coordinate.lng));
+ });
+
+ this.#native.setData(data);
+ }
+
+ getTile(param0: number, param1: number, param2: number): com.google.android.gms.maps.model.Tile {
+ return this.#native.getTile(param0, param1, param2);
+ }
+}
+
+export abstract class DataLayer {
+ abstract readonly native: T;
+
+ setMap(map: com.google.android.gms.maps.GoogleMap) {
+ this.native.setMap(map);
+ }
+
+ getDefaultPolygonStyle() {
+ return this.native.getDefaultPolygonStyle();
+ }
+
+ addLayerToMap() {
+ this.native.addLayerToMap();
+ }
+
+ isLayerOnMap(): boolean {
+ return this.native.isLayerOnMap();
+ }
+
+ removeLayerFromMap() {
+ this.native.removeLayerFromMap();
+ }
+
+ hasFeatures(): boolean {
+ return this.native.hasFeatures();
+ }
+
+ getFeature(feature: any) {
+ return this.native.getFeature(feature);
+ }
+
+ getFeatures(): any {
+ return this.native.getFeatures();
+ }
+
+ addFeature(feature: com.google.maps.android.data.geojson.GeoJsonFeature) {
+ return this.native.addFeature(feature);
+ }
+
+ removeFeature(feature: com.google.maps.android.data.geojson.GeoJsonFeature) {
+ this.native.removeFeature(feature);
+ }
+
+ get android() {
+ return this.native;
+ }
+
+ // public hasContainers(): boolean;
+ // public addKMLToMap(): void;
+ // public getDefaultPointStyle(): com.google.maps.android.data.geojson.GeoJsonPointStyle;
+ // public setOnFeatureClickListener(param0: com.google.maps.android.data.Layer.OnFeatureClickListener): void;
+ // public removeFeature(param0: com.google.maps.android.data.Feature): void;
+ // public getMap(): com.google.android.gms.maps.GoogleMap;
+ // public addGeoJsonToMap(): void;
+ // public getDefaultLineStringStyle(): com.google.maps.android.data.geojson.GeoJsonLineStringStyle;
+ // public storeRenderer(param0: com.google.maps.android.data.Renderer): void;
+ // public getContainers(): java.lang.Iterable;
+ // public getContainerFeature(param0: any): com.google.maps.android.data.Feature;
+ // public getGroundOverlays(): java.lang.Iterable;
+}
+
+export class GeoJsonLayer extends DataLayer {
+ #native: com.google.maps.android.data.geojson.GeoJsonLayer;
+
+ constructor(mapView: com.google.android.gms.maps.GoogleMap, geoJson: org.json.JSONObject) {
+ super();
+ if (mapView && geoJson) {
+ this.#native = new com.google.maps.android.data.geojson.GeoJsonLayer(mapView, geoJson);
+ this.#native.addLayerToMap();
+ }
+ }
+
+ static fromNative(nativeGeoJsonLayer: com.google.maps.android.data.geojson.GeoJsonLayer) {
+ if (GeoJsonLayer instanceof com.google.maps.android.data.geojson.GeoJsonLayer) {
+ const geoJsonLayer = new GeoJsonLayer(null, null);
+ geoJsonLayer.#native = nativeGeoJsonLayer;
+ return geoJsonLayer;
+ }
+ return null;
+ }
+
+ get native() {
+ return this.#native;
+ }
+
+ get bounds(): CoordinateBounds {
+ const bounds = this.#native.getBoundingBox();
+ if (bounds) {
+ return {
+ southwest: {
+ lat: bounds?.southwest?.latitude,
+ lng: bounds?.southwest?.longitude,
+ },
+ northeast: {
+ lat: bounds?.northeast?.latitude,
+ lng: bounds?.northeast?.longitude,
+ },
+ };
+ }
+ }
+
+ toString() {
+ return this.native.toString();
+ }
+}
+
+export class KmlLayer extends DataLayer {
+ #native: com.google.maps.android.data.kml.KmlLayer;
+
+ constructor(mapView: com.google.android.gms.maps.GoogleMap, kml: org.json.JSONObject) {
+ super();
+ if (mapView && kml) {
+ this.#native = new com.google.maps.android.data.kml.KmlLayer();
+ this.#native.addLayerToMap();
+ this.#native.addKMLToMap();
+ }
+ }
+
+ get native() {
+ return this.#native;
+ }
+
+ hasPlacemarks(): boolean {
+ return this.native.hasPlacemarks();
+ }
+
+ getPlacemarks(): java.lang.Iterable {
+ return this.native.getPlacemarks();
+ }
+
+ getGroundOverlays(): java.lang.Iterable {
+ return this.native.getGroundOverlays();
+ }
+}
diff --git a/packages/google-maps-utils/index.d.ts b/packages/google-maps-utils/index.d.ts
new file mode 100644
index 00000000..c46f0903
--- /dev/null
+++ b/packages/google-maps-utils/index.d.ts
@@ -0,0 +1,5 @@
+import { GoogleMapsUtilsCommon } from './common';
+
+export declare class GoogleMapsUtils extends GoogleMapsUtilsCommon {
+
+}
diff --git a/packages/google-maps-utils/index.ios.ts b/packages/google-maps-utils/index.ios.ts
new file mode 100644
index 00000000..ae7af932
--- /dev/null
+++ b/packages/google-maps-utils/index.ios.ts
@@ -0,0 +1,5 @@
+import { GoogleMapsUtilsCommon } from './common';
+
+export class GoogleMapsUtils extends GoogleMapsUtilsCommon {
+
+}
diff --git a/packages/google-maps-utils/package.json b/packages/google-maps-utils/package.json
new file mode 100644
index 00000000..b94dd5e1
--- /dev/null
+++ b/packages/google-maps-utils/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@nativescript/google-maps-utils",
+ "version": "1.0.0",
+ "description": "Add a plugin description",
+ "main": "index",
+ "typings": "index.d.ts",
+ "nativescript": {
+ "platforms": {
+ "ios": "6.0.0",
+ "android": "6.0.0"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/NativeScript/plugins.git"
+ },
+ "keywords": [
+ "NativeScript",
+ "JavaScript",
+ "TypeScript",
+ "iOS",
+ "Android"
+ ],
+ "author": {
+ "name": "NativeScript",
+ "email": "oss@nativescript.org"
+ },
+ "bugs": {
+ "url": "https://github.com/NativeScript/plugins/issues"
+ },
+ "license": "Apache-2.0",
+ "homepage": "https://github.com/NativeScript/plugins",
+ "readmeFilename": "README.md",
+ "bootstrapper": "@nativescript/plugin-seed"
+}
diff --git a/packages/google-maps-utils/platforms/android/include.gradle b/packages/google-maps-utils/platforms/android/include.gradle
new file mode 100644
index 00000000..384393fc
--- /dev/null
+++ b/packages/google-maps-utils/platforms/android/include.gradle
@@ -0,0 +1,3 @@
+dependencies {
+ implementation 'com.google.maps.android:android-maps-utils:2.3.0'
+}
diff --git a/packages/google-maps-utils/project.json b/packages/google-maps-utils/project.json
new file mode 100644
index 00000000..a27a83ab
--- /dev/null
+++ b/packages/google-maps-utils/project.json
@@ -0,0 +1,72 @@
+{
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "projectType": "library",
+ "sourceRoot": "packages/google-maps-utils",
+ "targets": {
+ "build": {
+ "executor": "@nrwl/js:tsc",
+ "options": {
+ "outputPath": "dist/packages/google-maps-utils",
+ "tsConfig": "packages/google-maps-utils/tsconfig.json",
+ "packageJson": "packages/google-maps-utils/package.json",
+ "main": "packages/google-maps-utils/index.d.ts",
+ "assets": [
+ "packages/google-maps-utils/*.md",
+ "packages/google-maps-utils/index.d.ts",
+ "LICENSE",
+ {
+ "glob": "**/*",
+ "input": "packages/google-maps-utils/platforms/",
+ "output": "./platforms/"
+ }
+ ],
+ "dependsOn": [
+ {
+ "target": "build.all",
+ "projects": "dependencies"
+ }
+ ]
+ }
+ },
+ "build.all": {
+ "executor": "@nrwl/workspace:run-commands",
+ "options": {
+ "commands": [
+ "node tools/scripts/build-finish.ts google-maps-utils"
+ ],
+ "parallel": false
+ },
+ "outputs": [
+ "dist/packages/google-maps-utils"
+ ],
+ "dependsOn": [
+ {
+ "target": "build.all",
+ "projects": "dependencies"
+ },
+ {
+ "target": "build",
+ "projects": "self"
+ }
+ ]
+ },
+ "focus": {
+ "executor": "@nrwl/workspace:run-commands",
+ "options": {
+ "commands": [
+ "nx g @nativescript/plugin-tools:focus-packages google-maps-utils,google-maps"
+ ],
+ "parallel": false
+ }
+ },
+ "lint": {
+ "executor": "@nrwl/linter:eslint",
+ "options": {
+ "lintFilePatterns": [
+ "packages/google-maps-utils/**/*.ts"
+ ]
+ }
+ }
+ },
+ "tags": []
+}
diff --git a/packages/google-maps-utils/references.d.ts b/packages/google-maps-utils/references.d.ts
new file mode 100644
index 00000000..548604ba
--- /dev/null
+++ b/packages/google-maps-utils/references.d.ts
@@ -0,0 +1,2 @@
+///
+///
diff --git a/packages/google-maps-utils/tsconfig.json b/packages/google-maps-utils/tsconfig.json
new file mode 100644
index 00000000..aed7323d
--- /dev/null
+++ b/packages/google-maps-utils/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "rootDir": "."
+ },
+ "exclude": ["**/*.spec.ts", "**/*.test.ts", "angular"],
+ "include": ["**/*.ts", "references.d.ts"]
+}
diff --git a/packages/google-maps-utils/typings/android.d.ts b/packages/google-maps-utils/typings/android.d.ts
new file mode 100644
index 00000000..62db9353
--- /dev/null
+++ b/packages/google-maps-utils/typings/android.d.ts
@@ -0,0 +1,8980 @@
+///
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export class BuildConfig {
+ public static class: java.lang.Class;
+ public static DEBUG: boolean;
+ public static LIBRARY_PACKAGE_NAME: string;
+ public static BUILD_TYPE: string;
+ public static TRAVIS: string;
+ public constructor();
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export class MathUtil {
+ public static class: java.lang.Class;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export class PolyUtil {
+ public static class: java.lang.Class;
+ public static DEFAULT_TOLERANCE: number;
+ public static distanceToLine(param0: com.google.android.gms.maps.model.LatLng, param1: com.google.android.gms.maps.model.LatLng, param2: com.google.android.gms.maps.model.LatLng): number;
+ public static isLocationOnEdge(param0: com.google.android.gms.maps.model.LatLng, param1: java.util.List, param2: boolean): boolean;
+ public static isLocationOnEdge(param0: com.google.android.gms.maps.model.LatLng, param1: java.util.List, param2: boolean, param3: number): boolean;
+ public static locationIndexOnPath(param0: com.google.android.gms.maps.model.LatLng, param1: java.util.List, param2: boolean, param3: number): number;
+ public static isClosedPolygon(param0: java.util.List): boolean;
+ public static locationIndexOnPath(param0: com.google.android.gms.maps.model.LatLng, param1: java.util.List, param2: boolean): number;
+ public static isLocationOnPath(param0: com.google.android.gms.maps.model.LatLng, param1: java.util.List, param2: boolean): boolean;
+ public static containsLocation(param0: com.google.android.gms.maps.model.LatLng, param1: java.util.List, param2: boolean): boolean;
+ public static isLocationOnPath(param0: com.google.android.gms.maps.model.LatLng, param1: java.util.List, param2: boolean, param3: number): boolean;
+ public static locationIndexOnEdgeOrPath(param0: com.google.android.gms.maps.model.LatLng, param1: java.util.List, param2: boolean, param3: boolean, param4: number): number;
+ public static containsLocation(param0: number, param1: number, param2: java.util.List, param3: boolean): boolean;
+ public static decode(param0: string): java.util.List;
+ public static simplify(param0: java.util.List, param1: number): java.util.List;
+ public static encode(param0: java.util.List): string;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export class SphericalUtil {
+ public static class: java.lang.Class;
+ public static computeArea(param0: java.util.List): number;
+ public static computeSignedArea(param0: java.util.List): number;
+ public static computeOffset(param0: com.google.android.gms.maps.model.LatLng, param1: number, param2: number): com.google.android.gms.maps.model.LatLng;
+ public static computeLength(param0: java.util.List): number;
+ public static interpolate(param0: com.google.android.gms.maps.model.LatLng, param1: com.google.android.gms.maps.model.LatLng, param2: number): com.google.android.gms.maps.model.LatLng;
+ public static computeHeading(param0: com.google.android.gms.maps.model.LatLng, param1: com.google.android.gms.maps.model.LatLng): number;
+ public static computeDistanceBetween(param0: com.google.android.gms.maps.model.LatLng, param1: com.google.android.gms.maps.model.LatLng): number;
+ public static computeOffsetOrigin(param0: com.google.android.gms.maps.model.LatLng, param1: number, param2: number): com.google.android.gms.maps.model.LatLng;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export class Cluster extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.Cluster interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ getPosition(): com.google.android.gms.maps.model.LatLng;
+ getItems(): java.util.Collection;
+ getSize(): number;
+ });
+ public constructor();
+ public getSize(): number;
+ public getPosition(): com.google.android.gms.maps.model.LatLng;
+ public getItems(): java.util.Collection;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export class ClusterItem {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.ClusterItem interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ getPosition(): com.google.android.gms.maps.model.LatLng;
+ getTitle(): string;
+ getSnippet(): string;
+ });
+ public constructor();
+ public getPosition(): com.google.android.gms.maps.model.LatLng;
+ public getSnippet(): string;
+ public getTitle(): string;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export class ClusterManager extends java.lang.Object {
+ public static class: java.lang.Class>;
+ public setOnClusterItemInfoWindowClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemInfoWindowClickListener): void;
+ public updateItem(param0: T): boolean;
+ public removeItems(param0: java.util.Collection): boolean;
+ public setAlgorithm(param0: com.google.maps.android.clustering.algo.ScreenBasedAlgorithm): void;
+ public setAnimation(param0: boolean): void;
+ public getRenderer(): com.google.maps.android.clustering.view.ClusterRenderer;
+ public getAlgorithm(): com.google.maps.android.clustering.algo.Algorithm;
+ public setOnClusterInfoWindowLongClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterInfoWindowLongClickListener): void;
+ public setAlgorithm(param0: com.google.maps.android.clustering.algo.Algorithm): void;
+ public onInfoWindowClick(param0: com.google.android.gms.maps.model.Marker): void;
+ public getClusterMarkerCollection(): com.google.maps.android.collections.MarkerManager.Collection;
+ public setOnClusterItemClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemClickListener): void;
+ public onMarkerClick(param0: com.google.android.gms.maps.model.Marker): boolean;
+ public constructor(param0: globalAndroid.content.Context, param1: com.google.android.gms.maps.GoogleMap);
+ public clearItems(): void;
+ public setOnClusterInfoWindowClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterInfoWindowClickListener): void;
+ public setOnClusterItemInfoWindowLongClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemInfoWindowLongClickListener): void;
+ public constructor(param0: globalAndroid.content.Context, param1: com.google.android.gms.maps.GoogleMap, param2: com.google.maps.android.collections.MarkerManager);
+ public setOnClusterClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterClickListener): void;
+ public addItems(param0: java.util.Collection): boolean;
+ public addItem(param0: T): boolean;
+ public onCameraIdle(): void;
+ public cluster(): void;
+ public setRenderer(param0: com.google.maps.android.clustering.view.ClusterRenderer): void;
+ public removeItem(param0: T): boolean;
+ public getMarkerCollection(): com.google.maps.android.collections.MarkerManager.Collection;
+ public getMarkerManager(): com.google.maps.android.collections.MarkerManager;
+ }
+ export module ClusterManager {
+ export class ClusterTask extends globalAndroid.os.AsyncTask> {
+ public static class: java.lang.Class;
+ public doInBackground(param0: androidNative.Array): java.util.Set;
+ public onPostExecute(param0: java.util.Set): void;
+ }
+ export class OnClusterClickListener extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.ClusterManager$OnClusterClickListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ onClusterClick(param0: com.google.maps.android.clustering.Cluster): boolean;
+ });
+ public constructor();
+ public onClusterClick(param0: com.google.maps.android.clustering.Cluster): boolean;
+ }
+ export class OnClusterInfoWindowClickListener extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.ClusterManager$OnClusterInfoWindowClickListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ onClusterInfoWindowClick(param0: com.google.maps.android.clustering.Cluster): void;
+ });
+ public constructor();
+ public onClusterInfoWindowClick(param0: com.google.maps.android.clustering.Cluster): void;
+ }
+ export class OnClusterInfoWindowLongClickListener extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.ClusterManager$OnClusterInfoWindowLongClickListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ onClusterInfoWindowLongClick(param0: com.google.maps.android.clustering.Cluster): void;
+ });
+ public constructor();
+ public onClusterInfoWindowLongClick(param0: com.google.maps.android.clustering.Cluster): void;
+ }
+ export class OnClusterItemClickListener extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.ClusterManager$OnClusterItemClickListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ onClusterItemClick(param0: T): boolean;
+ });
+ public constructor();
+ public onClusterItemClick(param0: T): boolean;
+ }
+ export class OnClusterItemInfoWindowClickListener extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.ClusterManager$OnClusterItemInfoWindowClickListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ onClusterItemInfoWindowClick(param0: T): void;
+ });
+ public constructor();
+ public onClusterItemInfoWindowClick(param0: T): void;
+ }
+ export class OnClusterItemInfoWindowLongClickListener extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.ClusterManager$OnClusterItemInfoWindowLongClickListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ onClusterItemInfoWindowLongClick(param0: T): void;
+ });
+ public constructor();
+ public onClusterItemInfoWindowLongClick(param0: T): void;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export abstract class AbstractAlgorithm extends com.google.maps.android.clustering.algo.Algorithm {
+ public static class: java.lang.Class>;
+ public constructor();
+ public addItems(param0: java.util.Collection): boolean;
+ public setMaxDistanceBetweenClusteredItems(param0: number): void;
+ public getClusters(param0: number): java.util.Set;
+ public unlock(): void;
+ public addItem(param0: any): boolean;
+ public removeItem(param0: any): boolean;
+ public getItems(): java.util.Collection;
+ public clearItems(): void;
+ public lock(): void;
+ public updateItem(param0: any): boolean;
+ public getMaxDistanceBetweenClusteredItems(): number;
+ public removeItems(param0: java.util.Collection): boolean;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export class Algorithm extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.algo.Algorithm interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ addItem(param0: T): boolean;
+ addItems(param0: java.util.Collection): boolean;
+ clearItems(): void;
+ removeItem(param0: T): boolean;
+ updateItem(param0: T): boolean;
+ removeItems(param0: java.util.Collection): boolean;
+ getClusters(param0: number): java.util.Set;
+ getItems(): java.util.Collection;
+ setMaxDistanceBetweenClusteredItems(param0: number): void;
+ getMaxDistanceBetweenClusteredItems(): number;
+ lock(): void;
+ unlock(): void;
+ });
+ public constructor();
+ public addItem(param0: T): boolean;
+ public updateItem(param0: T): boolean;
+ public addItems(param0: java.util.Collection): boolean;
+ public clearItems(): void;
+ public setMaxDistanceBetweenClusteredItems(param0: number): void;
+ public lock(): void;
+ public getClusters(param0: number): java.util.Set;
+ public removeItem(param0: T): boolean;
+ public getMaxDistanceBetweenClusteredItems(): number;
+ public unlock(): void;
+ public removeItems(param0: java.util.Collection): boolean;
+ public getItems(): java.util.Collection;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export class GridBasedAlgorithm extends com.google.maps.android.clustering.algo.AbstractAlgorithm {
+ public static class: java.lang.Class>;
+ public constructor();
+ public addItems(param0: java.util.Collection): boolean;
+ public setMaxDistanceBetweenClusteredItems(param0: number): void;
+ public getClusters(param0: number): java.util.Set;
+ public addItem(param0: any): boolean;
+ public unlock(): void;
+ public removeItem(param0: any): boolean;
+ public getItems(): java.util.Collection;
+ public clearItems(): void;
+ public lock(): void;
+ public updateItem(param0: any): boolean;
+ public getMaxDistanceBetweenClusteredItems(): number;
+ public removeItems(param0: java.util.Collection): boolean;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export class NonHierarchicalDistanceBasedAlgorithm extends com.google.maps.android.clustering.algo.AbstractAlgorithm {
+ public static class: java.lang.Class>;
+ public constructor();
+ public addItems(param0: java.util.Collection): boolean;
+ public getClusteringItems(param0: com.google.maps.android.quadtree.PointQuadTree>, param1: number): java.util.Collection>;
+ public setMaxDistanceBetweenClusteredItems(param0: number): void;
+ public getClusters(param0: number): java.util.Set;
+ public addItem(param0: any): boolean;
+ public unlock(): void;
+ public removeItem(param0: any): boolean;
+ public getItems(): java.util.Collection;
+ public clearItems(): void;
+ public lock(): void;
+ public updateItem(param0: any): boolean;
+ public getMaxDistanceBetweenClusteredItems(): number;
+ public removeItems(param0: java.util.Collection): boolean;
+ }
+ export module NonHierarchicalDistanceBasedAlgorithm {
+ export class QuadItem extends java.lang.Object {
+ public static class: java.lang.Class>;
+ public getItems(): java.util.Set;
+ public equals(param0: any): boolean;
+ public getPoint(): com.google.maps.android.geometry.Point;
+ public getItems(): java.util.Collection;
+ public getSize(): number;
+ public hashCode(): number;
+ public getPosition(): com.google.android.gms.maps.model.LatLng;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export class NonHierarchicalViewBasedAlgorithm extends com.google.maps.android.clustering.algo.NonHierarchicalDistanceBasedAlgorithm implements com.google.maps.android.clustering.algo.ScreenBasedAlgorithm {
+ public static class: java.lang.Class>;
+ public constructor();
+ public addItems(param0: java.util.Collection): boolean;
+ public constructor(param0: number, param1: number);
+ public getClusteringItems(param0: com.google.maps.android.quadtree.PointQuadTree>, param1: number): java.util.Collection>;
+ public setMaxDistanceBetweenClusteredItems(param0: number): void;
+ public getClusters(param0: number): java.util.Set;
+ public onCameraChange(param0: com.google.android.gms.maps.model.CameraPosition): void;
+ public addItem(param0: any): boolean;
+ public unlock(): void;
+ public updateViewSize(param0: number, param1: number): void;
+ public removeItem(param0: any): boolean;
+ public getItems(): java.util.Collection;
+ public clearItems(): void;
+ public lock(): void;
+ public shouldReclusterOnMapMovement(): boolean;
+ public updateItem(param0: any): boolean;
+ public getMaxDistanceBetweenClusteredItems(): number;
+ public removeItems(param0: java.util.Collection): boolean;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export class PreCachingAlgorithmDecorator extends com.google.maps.android.clustering.algo.AbstractAlgorithm {
+ public static class: java.lang.Class>;
+ public constructor();
+ public addItems(param0: java.util.Collection): boolean;
+ public setMaxDistanceBetweenClusteredItems(param0: number): void;
+ public constructor(param0: com.google.maps.android.clustering.algo.Algorithm);
+ public getClusters(param0: number): java.util.Set;
+ public addItem(param0: any): boolean;
+ public unlock(): void;
+ public removeItem(param0: any): boolean;
+ public getItems(): java.util.Collection;
+ public clearItems(): void;
+ public lock(): void;
+ public updateItem(param0: any): boolean;
+ public getMaxDistanceBetweenClusteredItems(): number;
+ public removeItems(param0: java.util.Collection): boolean;
+ }
+ export module PreCachingAlgorithmDecorator {
+ export class PrecacheRunnable {
+ public static class: java.lang.Class;
+ public constructor(param0: com.google.maps.android.clustering.algo.PreCachingAlgorithmDecorator, param1: number);
+ public run(): void;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export class ScreenBasedAlgorithm extends com.google.maps.android.clustering.algo.Algorithm {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.algo.ScreenBasedAlgorithm interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ shouldReclusterOnMapMovement(): boolean;
+ onCameraChange(param0: com.google.android.gms.maps.model.CameraPosition): void;
+ addItem(param0: any): boolean;
+ addItems(param0: java.util.Collection): boolean;
+ clearItems(): void;
+ removeItem(param0: any): boolean;
+ updateItem(param0: any): boolean;
+ removeItems(param0: java.util.Collection): boolean;
+ getClusters(param0: number): java.util.Set;
+ getItems(): java.util.Collection;
+ setMaxDistanceBetweenClusteredItems(param0: number): void;
+ getMaxDistanceBetweenClusteredItems(): number;
+ lock(): void;
+ unlock(): void;
+ });
+ public constructor();
+ public addItems(param0: java.util.Collection): boolean;
+ public setMaxDistanceBetweenClusteredItems(param0: number): void;
+ public getClusters(param0: number): java.util.Set;
+ public onCameraChange(param0: com.google.android.gms.maps.model.CameraPosition): void;
+ public addItem(param0: any): boolean;
+ public unlock(): void;
+ public removeItem(param0: any): boolean;
+ public getItems(): java.util.Collection;
+ public clearItems(): void;
+ public lock(): void;
+ public shouldReclusterOnMapMovement(): boolean;
+ public updateItem(param0: any): boolean;
+ public getMaxDistanceBetweenClusteredItems(): number;
+ public removeItems(param0: java.util.Collection): boolean;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export class ScreenBasedAlgorithmAdapter extends com.google.maps.android.clustering.algo.AbstractAlgorithm implements com.google.maps.android.clustering.algo.ScreenBasedAlgorithm {
+ public static class: java.lang.Class>;
+ public constructor();
+ public addItems(param0: java.util.Collection): boolean;
+ public setMaxDistanceBetweenClusteredItems(param0: number): void;
+ public constructor(param0: com.google.maps.android.clustering.algo.Algorithm);
+ public getClusters(param0: number): java.util.Set;
+ public addItem(param0: any): boolean;
+ public onCameraChange(param0: com.google.android.gms.maps.model.CameraPosition): void;
+ public unlock(): void;
+ public removeItem(param0: any): boolean;
+ public getItems(): java.util.Collection;
+ public clearItems(): void;
+ public lock(): void;
+ public shouldReclusterOnMapMovement(): boolean;
+ public updateItem(param0: any): boolean;
+ public getMaxDistanceBetweenClusteredItems(): number;
+ public removeItems(param0: java.util.Collection): boolean;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module algo {
+ export class StaticCluster extends com.google.maps.android.clustering.Cluster {
+ public static class: java.lang.Class>;
+ public add(param0: any): boolean;
+ public getSize(): number;
+ public hashCode(): number;
+ public remove(param0: any): boolean;
+ public constructor(param0: com.google.android.gms.maps.model.LatLng);
+ public getPosition(): com.google.android.gms.maps.model.LatLng;
+ public toString(): string;
+ public equals(param0: any): boolean;
+ public getItems(): java.util.Collection;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module view {
+ export class ClusterRenderer extends java.lang.Object {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.clustering.view.ClusterRenderer interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ onClustersChanged(param0: java.util.Set): void;
+ setOnClusterClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterClickListener): void;
+ setOnClusterInfoWindowClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterInfoWindowClickListener): void;
+ setOnClusterInfoWindowLongClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterInfoWindowLongClickListener): void;
+ setOnClusterItemClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemClickListener): void;
+ setOnClusterItemInfoWindowClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemInfoWindowClickListener): void;
+ setOnClusterItemInfoWindowLongClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemInfoWindowLongClickListener): void;
+ setAnimation(param0: boolean): void;
+ onAdd(): void;
+ onRemove(): void;
+ });
+ public constructor();
+ public setOnClusterItemInfoWindowLongClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemInfoWindowLongClickListener): void;
+ public setOnClusterClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterClickListener): void;
+ public onClustersChanged(param0: java.util.Set): void;
+ public setOnClusterInfoWindowLongClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterInfoWindowLongClickListener): void;
+ public setOnClusterItemInfoWindowClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemInfoWindowClickListener): void;
+ public onRemove(): void;
+ public setOnClusterInfoWindowClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterInfoWindowClickListener): void;
+ public setOnClusterItemClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemClickListener): void;
+ public setAnimation(param0: boolean): void;
+ public onAdd(): void;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module clustering {
+ export module view {
+ export class DefaultClusterRenderer extends com.google.maps.android.clustering.view.ClusterRenderer {
+ public static class: java.lang.Class>;
+ public onClusterItemUpdated(param0: any, param1: com.google.android.gms.maps.model.Marker): void;
+ public getClusterText(param0: number): string;
+ public getBucket(param0: com.google.maps.android.clustering.Cluster): number;
+ public onClustersChanged(param0: java.util.Set): void;
+ public setOnClusterItemInfoWindowLongClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemInfoWindowLongClickListener): void;
+ public onClusterRendered(param0: com.google.maps.android.clustering.Cluster, param1: com.google.android.gms.maps.model.Marker): void;
+ public onClusterUpdated(param0: com.google.maps.android.clustering.Cluster, param1: com.google.android.gms.maps.model.Marker): void;
+ public setMinClusterSize(param0: number): void;
+ public setOnClusterItemClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemClickListener): void;
+ public getClusterItem(param0: com.google.android.gms.maps.model.Marker): any;
+ public shouldRender(param0: java.util.Set, param1: java.util.Set): boolean;
+ public getColor(param0: number): number;
+ public onBeforeClusterRendered(param0: com.google.maps.android.clustering.Cluster, param1: com.google.android.gms.maps.model.MarkerOptions): void;
+ public onRemove(): void;
+ public setAnimation(param0: boolean): void;
+ public getMarker(param0: com.google.maps.android.clustering.Cluster): com.google.android.gms.maps.model.Marker;
+ public getDescriptorForCluster(param0: com.google.maps.android.clustering.Cluster): com.google.android.gms.maps.model.BitmapDescriptor;
+ public getMinClusterSize(): number;
+ public constructor(param0: globalAndroid.content.Context, param1: com.google.android.gms.maps.GoogleMap, param2: com.google.maps.android.clustering.ClusterManager);
+ public setOnClusterInfoWindowClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterInfoWindowClickListener): void;
+ public setOnClusterClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterClickListener): void;
+ public onBeforeClusterItemRendered(param0: any, param1: com.google.android.gms.maps.model.MarkerOptions): void;
+ public setOnClusterInfoWindowLongClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterInfoWindowLongClickListener): void;
+ public onAdd(): void;
+ public setOnClusterItemInfoWindowClickListener(param0: com.google.maps.android.clustering.ClusterManager.OnClusterItemInfoWindowClickListener): void;
+ public getCluster(param0: com.google.android.gms.maps.model.Marker): com.google.maps.android.clustering.Cluster;
+ public shouldRenderAsCluster(param0: com.google.maps.android.clustering.Cluster): boolean;
+ public onClusterItemRendered(param0: any, param1: com.google.android.gms.maps.model.Marker): void;
+ public getMarker(param0: any): com.google.android.gms.maps.model.Marker;
+ }
+ export module DefaultClusterRenderer {
+ export class AnimationTask {
+ public static class: java.lang.Class;
+ public onAnimationEnd(param0: globalAndroid.animation.Animator): void;
+ public onAnimationUpdate(param0: globalAndroid.animation.ValueAnimator): void;
+ public removeOnAnimationComplete(param0: com.google.maps.android.collections.MarkerManager): void;
+ public perform(): void;
+ }
+ export class CreateMarkerTask {
+ public static class: java.lang.Class;
+ public constructor(param0: com.google.maps.android.clustering.Cluster, param1: java.util.Set, param2: com.google.android.gms.maps.model.LatLng);
+ }
+ export class MarkerCache extends java.lang.Object {
+ public static class: java.lang.Class>;
+ public put(param0: T, param1: com.google.android.gms.maps.model.Marker): void;
+ public remove(param0: com.google.android.gms.maps.model.Marker): void;
+ public get(param0: com.google.android.gms.maps.model.Marker): T;
+ public get(param0: T): com.google.android.gms.maps.model.Marker;
+ }
+ export class MarkerModifier {
+ public static class: java.lang.Class;
+ public animate(param0: com.google.maps.android.clustering.view.DefaultClusterRenderer.MarkerWithPosition, param1: com.google.android.gms.maps.model.LatLng, param2: com.google.android.gms.maps.model.LatLng): void;
+ public animateThenRemove(param0: com.google.maps.android.clustering.view.DefaultClusterRenderer.MarkerWithPosition, param1: com.google.android.gms.maps.model.LatLng, param2: com.google.android.gms.maps.model.LatLng): void;
+ public handleMessage(param0: globalAndroid.os.Message): void;
+ public waitUntilFree(): void;
+ public add(param0: boolean, param1: com.google.maps.android.clustering.view.DefaultClusterRenderer.CreateMarkerTask): void;
+ public remove(param0: boolean, param1: com.google.android.gms.maps.model.Marker): void;
+ public queueIdle(): boolean;
+ public isBusy(): boolean;
+ }
+ export class MarkerWithPosition {
+ public static class: java.lang.Class;
+ public equals(param0: any): boolean;
+ public hashCode(): number;
+ }
+ export class RenderTask {
+ public static class: java.lang.Class;
+ public setMapZoom(param0: number): void;
+ public setProjection(param0: com.google.android.gms.maps.Projection): void;
+ public setCallback(param0: java.lang.Runnable): void;
+ public run(): void;
+ }
+ export class ViewModifier {
+ public static class: java.lang.Class;
+ public handleMessage(param0: globalAndroid.os.Message): void;
+ public queue(param0: java.util.Set): void;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module collections {
+ export class CircleManager extends com.google.maps.android.collections.MapObjectManager implements com.google.android.gms.maps.GoogleMap.OnCircleClickListener {
+ public static class: java.lang.Class;
+ public newCollection(): com.google.maps.android.collections.CircleManager.Collection;
+ public removeObjectFromMap(param0: com.google.android.gms.maps.model.Circle): void;
+ public removeObjectFromMap(param0: any): void;
+ public newCollection(param0: string): any;
+ public onCircleClick(param0: com.google.android.gms.maps.model.Circle): void;
+ public constructor(param0: com.google.android.gms.maps.GoogleMap);
+ public newCollection(): any;
+ }
+ export module CircleManager {
+ export class Collection extends com.google.maps.android.collections.MapObjectManager.Collection {
+ public static class: java.lang.Class;
+ public setOnCircleClickListener(param0: com.google.android.gms.maps.GoogleMap.OnCircleClickListener): void;
+ public addAll(param0: java.util.Collection): void;
+ public remove(param0: any): boolean;
+ public showAll(): void;
+ public remove(param0: com.google.android.gms.maps.model.Circle): boolean;
+ public hideAll(): void;
+ public constructor(param0: com.google.maps.android.collections.MapObjectManager);
+ public addAll(param0: java.util.Collection, param1: boolean): void;
+ public addCircle(param0: com.google.android.gms.maps.model.CircleOptions): com.google.android.gms.maps.model.Circle;
+ public constructor(param0: com.google.maps.android.collections.CircleManager);
+ public getCircles(): java.util.Collection;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module collections {
+ export class GroundOverlayManager extends com.google.maps.android.collections.MapObjectManager implements com.google.android.gms.maps.GoogleMap.OnGroundOverlayClickListener {
+ public static class: java.lang.Class;
+ public newCollection(): com.google.maps.android.collections.GroundOverlayManager.Collection;
+ public removeObjectFromMap(param0: any): void;
+ public removeObjectFromMap(param0: com.google.android.gms.maps.model.GroundOverlay): void;
+ public newCollection(param0: string): any;
+ public constructor(param0: com.google.android.gms.maps.GoogleMap);
+ public newCollection(): any;
+ public onGroundOverlayClick(param0: com.google.android.gms.maps.model.GroundOverlay): void;
+ }
+ export module GroundOverlayManager {
+ export class Collection extends com.google.maps.android.collections.MapObjectManager.Collection {
+ public static class: java.lang.Class;
+ public constructor(param0: com.google.maps.android.collections.GroundOverlayManager);
+ public remove(param0: any): boolean;
+ public showAll(): void;
+ public addAll(param0: java.util.Collection): void;
+ public addAll(param0: java.util.Collection, param1: boolean): void;
+ public hideAll(): void;
+ public constructor(param0: com.google.maps.android.collections.MapObjectManager);
+ public setOnGroundOverlayClickListener(param0: com.google.android.gms.maps.GoogleMap.OnGroundOverlayClickListener): void;
+ public remove(param0: com.google.android.gms.maps.model.GroundOverlay): boolean;
+ public getGroundOverlays(): java.util.Collection;
+ public addGroundOverlay(param0: com.google.android.gms.maps.model.GroundOverlayOptions): com.google.android.gms.maps.model.GroundOverlay;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module collections {
+ export abstract class MapObjectManager extends java.lang.Object {
+ public static class: java.lang.Class>;
+ public mMap: com.google.android.gms.maps.GoogleMap;
+ public mAllObjects: java.util.Map;
+ public removeObjectFromMap(param0: O): void;
+ public newCollection(param0: string): C;
+ public newCollection(): C;
+ public remove(param0: O): boolean;
+ public constructor(param0: com.google.android.gms.maps.GoogleMap);
+ public getCollection(param0: string): C;
+ }
+ export module MapObjectManager {
+ export class Collection {
+ public static class: java.lang.Class;
+ public add(param0: any): void;
+ public getObjects(): java.util.Collection;
+ public remove(param0: any): boolean;
+ public clear(): void;
+ public constructor(param0: com.google.maps.android.collections.MapObjectManager);
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module collections {
+ export class MarkerManager extends com.google.maps.android.collections.MapObjectManager {
+ public static class: java.lang.Class;
+ public onInfoWindowLongClick(param0: com.google.android.gms.maps.model.Marker): void;
+ public onMarkerDragStart(param0: com.google.android.gms.maps.model.Marker): void;
+ public newCollection(): any;
+ public removeObjectFromMap(param0: com.google.android.gms.maps.model.Marker): void;
+ public getInfoWindow(param0: com.google.android.gms.maps.model.Marker): globalAndroid.view.View;
+ public getInfoContents(param0: com.google.android.gms.maps.model.Marker): globalAndroid.view.View;
+ public onInfoWindowClick(param0: com.google.android.gms.maps.model.Marker): void;
+ public onMarkerDragEnd(param0: com.google.android.gms.maps.model.Marker): void;
+ public removeObjectFromMap(param0: any): void;
+ public newCollection(param0: string): any;
+ public onMarkerClick(param0: com.google.android.gms.maps.model.Marker): boolean;
+ public constructor(param0: com.google.android.gms.maps.GoogleMap);
+ public onMarkerDrag(param0: com.google.android.gms.maps.model.Marker): void;
+ public newCollection(): com.google.maps.android.collections.MarkerManager.Collection;
+ }
+ export module MarkerManager {
+ export class Collection extends com.google.maps.android.collections.MapObjectManager.Collection {
+ public static class: java.lang.Class;
+ public constructor(param0: com.google.maps.android.collections.MarkerManager);
+ public remove(param0: any): boolean;
+ public getMarkers(): java.util.Collection;
+ public showAll(): void;
+ public hideAll(): void;
+ public constructor(param0: com.google.maps.android.collections.MapObjectManager);
+ public addAll(param0: java.util.Collection): void;
+ public addAll(param0: java.util.Collection, param1: boolean): void;
+ public setOnInfoWindowClickListener(param0: com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener): void;
+ public setOnMarkerDragListener(param0: com.google.android.gms.maps.GoogleMap.OnMarkerDragListener): void;
+ public setInfoWindowAdapter(param0: com.google.android.gms.maps.GoogleMap.InfoWindowAdapter): void;
+ public addMarker(param0: com.google.android.gms.maps.model.MarkerOptions): com.google.android.gms.maps.model.Marker;
+ public setOnInfoWindowLongClickListener(param0: com.google.android.gms.maps.GoogleMap.OnInfoWindowLongClickListener): void;
+ public setOnMarkerClickListener(param0: com.google.android.gms.maps.GoogleMap.OnMarkerClickListener): void;
+ public remove(param0: com.google.android.gms.maps.model.Marker): boolean;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module collections {
+ export class PolygonManager extends com.google.maps.android.collections.MapObjectManager implements com.google.android.gms.maps.GoogleMap.OnPolygonClickListener {
+ public static class: java.lang.Class;
+ public newCollection(): com.google.maps.android.collections.PolygonManager.Collection;
+ public removeObjectFromMap(param0: any): void;
+ public newCollection(param0: string): any;
+ public removeObjectFromMap(param0: com.google.android.gms.maps.model.Polygon): void;
+ public constructor(param0: com.google.android.gms.maps.GoogleMap);
+ public newCollection(): any;
+ public onPolygonClick(param0: com.google.android.gms.maps.model.Polygon): void;
+ }
+ export module PolygonManager {
+ export class Collection extends com.google.maps.android.collections.MapObjectManager.Collection {
+ public static class: java.lang.Class;
+ public addAll(param0: java.util.Collection): void;
+ public constructor(param0: com.google.maps.android.collections.PolygonManager);
+ public addPolygon(param0: com.google.android.gms.maps.model.PolygonOptions): com.google.android.gms.maps.model.Polygon;
+ public remove(param0: any): boolean;
+ public showAll(): void;
+ public setOnPolygonClickListener(param0: com.google.android.gms.maps.GoogleMap.OnPolygonClickListener): void;
+ public hideAll(): void;
+ public constructor(param0: com.google.maps.android.collections.MapObjectManager);
+ public getPolygons(): java.util.Collection;
+ public remove(param0: com.google.android.gms.maps.model.Polygon): boolean;
+ public addAll(param0: java.util.Collection, param1: boolean): void;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module collections {
+ export class PolylineManager extends com.google.maps.android.collections.MapObjectManager implements com.google.android.gms.maps.GoogleMap.OnPolylineClickListener {
+ public static class: java.lang.Class;
+ public onPolylineClick(param0: com.google.android.gms.maps.model.Polyline): void;
+ public removeObjectFromMap(param0: any): void;
+ public removeObjectFromMap(param0: com.google.android.gms.maps.model.Polyline): void;
+ public newCollection(param0: string): any;
+ public constructor(param0: com.google.android.gms.maps.GoogleMap);
+ public newCollection(): any;
+ public newCollection(): com.google.maps.android.collections.PolylineManager.Collection;
+ }
+ export module PolylineManager {
+ export class Collection extends com.google.maps.android.collections.MapObjectManager.Collection {
+ public static class: java.lang.Class;
+ public addPolyline(param0: com.google.android.gms.maps.model.PolylineOptions): com.google.android.gms.maps.model.Polyline;
+ public addAll(param0: java.util.Collection, param1: boolean): void;
+ public addAll(param0: java.util.Collection): void;
+ public constructor(param0: com.google.maps.android.collections.PolylineManager);
+ public setOnPolylineClickListener(param0: com.google.android.gms.maps.GoogleMap.OnPolylineClickListener): void;
+ public remove(param0: any): boolean;
+ public showAll(): void;
+ public remove(param0: com.google.android.gms.maps.model.Polyline): boolean;
+ public hideAll(): void;
+ public getPolylines(): java.util.Collection;
+ public constructor(param0: com.google.maps.android.collections.MapObjectManager);
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module google {
+ export module maps {
+ export module android {
+ export module data {
+ export class DataPolygon extends com.google.maps.android.data.Geometry {
+ public static class: java.lang.Class>;
+ /**
+ * Constructs a new instance of the com.google.maps.android.data.DataPolygon interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {
+ getOuterBoundaryCoordinates(): java.util.List