From 531e6162784b9eba809a26d24f5932a624a61af7 Mon Sep 17 00:00:00 2001 From: Ibrahim Hadeed Date: Wed, 25 May 2016 16:43:18 -0400 Subject: [PATCH] add marker class --- src/plugins/googlemaps.ts | 140 +++++++++++++++++++++++++++++++++++--- 1 file changed, 132 insertions(+), 8 deletions(-) diff --git a/src/plugins/googlemaps.ts b/src/plugins/googlemaps.ts index ff0cb8323..433da91f2 100644 --- a/src/plugins/googlemaps.ts +++ b/src/plugins/googlemaps.ts @@ -1,3 +1,7 @@ +// Notes: +// - The way I'm listening to events might not work. Might need to switch +// - I'm assuming that the sub objects do need a constructor, so I'm using the constructor for other purposes + import {Cordova, Plugin} from './plugin'; import {Observable} from 'rxjs/Rx'; import {CordovaInstance} from './plugin'; @@ -353,7 +357,7 @@ export interface VisibleRegion { plugin: 'cordova-plugin-googlemaps', repo: 'https://github.com/mapsplugin/cordova-plugin-googlemaps' }) -export interface GoogleMapsMarker { +export class GoogleMapsMarker { icon: any; title: string; snippet: string; @@ -367,13 +371,133 @@ export interface GoogleMapsMarker { animation: string; zIndex: number; - getPosition() - showInfoWindow(): void; - hideInfoWindow(): void; - get(message: string): void; - setIcon(icon: GoogleMapsMarkerIcon): void; - remove(): void; - setDraggable(draggable: boolean): void; + constructor (private _objectInstance: any) { } + + @CordovaInstance() + getPosition (): Promise {return; } + + @CordovaInstance({ + sync: true + }) + isVisible (): boolean {return;} + + @CordovaInstance() + setVisible (visible: boolean): void { } + + @CordovaInstance({ + sync: true + }) + getHashCode (): string {return; } + + @CordovaInstance({ + sync: true + }) + remove(): void { } + + @CordovaInstance({ + sync: true + }) + setOpacity (alpha: number): void { } + + @CordovaInstance({ + sync: true + }) + getOpacity(): number {return; } + + @CordovaInstance({ + sync: true + }) + setZIndex(): void { } + + @CordovaInstance({ + sync: true + }) + setIconAnchor(x: number, y: number): void { } + + @CordovaInstance({ + sync: true + }) + setInfoWindowAnchor(x: number, y:number): void { } + + @CordovaInstance({ + sync: true + }) + setDraggable(draggable: boolean): void { } + + @CordovaInstance({ + sync: true + }) + isDraggable(): boolean {return; } + + @CordovaInstance({ + sync: true + }) + setFlat(flat: boolean): void {return; } + + @CordovaInstance({ + sync: true + }) + setIcon(icon: GoogleMapsMarkerIcon): void { } + + @CordovaInstance({ + sync: true + }) + setTitle(title: string): void { } + + @CordovaInstance({ + sync: true + }) + getTitle(): string {return; } + + @CordovaInstance({ + sync: true + }) + setSnippet(snippet: string): void { } + + @CordovaInstance({ + sync: true + }) + getSnippet(): string {return; } + + @CordovaInstance({ + sync: true + }) + setRotation(rotation: number): void { } + + @CordovaInstance({ + sync: true + }) + getRotation(): number {return; } + + @CordovaInstance({ + sync: true + }) + showInfoWindow(): number {return; } + + @CordovaInstance({ + sync: true + }) + hideInfoWindow(): number {return; } + + @CordovaInstance({ + sync: true + }) + setPosition(latLng: GoogleMapsLatLng): void { } + + @CordovaInstance() + getPosition(): Promise {return; } + + @CordovaInstance({ + sync: true + }) + getMap(): GoogleMaps {return; } + + @CordovaInstance({ + sync: true + }) + setAnimation(animation: string): void { } + + }