From 87875eb03dbce1156a090ed10128e1eca458ef5b Mon Sep 17 00:00:00 2001 From: "Howard.Zuo" Date: Thu, 16 Nov 2017 18:47:12 +0800 Subject: [PATCH] Finish: #34. add loaded event for marker component --- demo/components/apidoc/docMarker.component.ts | 8 ++++++- package.json | 2 +- src/components/marker.component.ts | 2 ++ src/types/BMap.ts | 2 ++ src/types/Label.ts | 21 +++++++++++++++++++ src/types/Marker.ts | 4 ++++ 6 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 src/types/Label.ts diff --git a/demo/components/apidoc/docMarker.component.ts b/demo/components/apidoc/docMarker.component.ts index 38dc37c..0a59398 100644 --- a/demo/components/apidoc/docMarker.component.ts +++ b/demo/components/apidoc/docMarker.component.ts @@ -2,6 +2,7 @@ import { Component } from '@angular/core' import { MapOptions, MarkerOptions, Point } from '../../../src' import { environment } from '../../environments/environment' +import { BMarker } from '../../../src/types/Marker' @Component({ selector: 'doc-marker', @@ -14,7 +15,7 @@ import { environment } from '../../environments/environment'

     <baidu-map [options]="expression">
-      <marker [point]="expression" [options]="expression" (clicked)="expression"></marker>    
+      <marker [point]="expression" [options]="expression" (loaded)="expression" (clicked)="expression"></marker>    
     </baidu-map>
     
@@ -43,6 +44,11 @@ import { environment } from '../../environments/environment' Literal for constructing marker. See MarkerOptions + + loaded + expression + Expression to evaluate upon marker load event. ($event object is available as BMap.Marker) + clicked expression diff --git a/package.json b/package.json index 2206212..2f8648a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular2-baidu-map", - "version": "4.0.1", + "version": "4.1.0", "description": "Angular2 component for Baidu map", "main": "./dist/src/index.js", "types": "./dist/src/index.d.ts", diff --git a/src/components/marker.component.ts b/src/components/marker.component.ts index 07fc6f5..45240bb 100644 --- a/src/components/marker.component.ts +++ b/src/components/marker.component.ts @@ -29,6 +29,7 @@ export class MarkerComponent implements OnInit, OnChanges, OnDestroy { @Input() private point: Point @Input() private options: MarkerOptions + @Output() private loaded = new EventEmitter() @Output() private clicked = new EventEmitter() private marker: BMarker @@ -46,6 +47,7 @@ export class MarkerComponent implements OnInit, OnChanges, OnDestroy { )) }) .then(({ map }) => { + this.loaded.emit(this.marker) this.addListener(this.marker, map) }) .then(() => { diff --git a/src/types/BMap.ts b/src/types/BMap.ts index 3c7b30f..200c75c 100644 --- a/src/types/BMap.ts +++ b/src/types/BMap.ts @@ -8,6 +8,7 @@ import { } from './Control' import { BIconConstructor } from './Icon' import { BInfoWindowConstructor } from './InfoWindow' +import { BLabelConstructor } from './Label' import { BMapConstructor } from './Map' import { BMarkerConstructor } from './Marker' import { BPointConstructor } from './Point' @@ -19,6 +20,7 @@ export interface BMap { Point: BPointConstructor Size: BSizeConstructor Icon: BIconConstructor + Label: BLabelConstructor InfoWindow: BInfoWindowConstructor NavigationControl: BNavigationControlConstructor OverviewMapControl: BOverviewMapControlConstructor diff --git a/src/types/Label.ts b/src/types/Label.ts new file mode 100644 index 0000000..c3e2c80 --- /dev/null +++ b/src/types/Label.ts @@ -0,0 +1,21 @@ +import { BPointConstructor } from './Point' +import { BSizeConstructor } from './Size' + +export interface BLabelConstructor { + new (content: string, opts?: BLabelOptions): BLabel +} + +export interface BLabel { + setStyle(styles: any): void + setContent(content: string): void + setPosition(postion: BPointConstructor): void + + setTitle(title: string): void + getTitle(): string +} + +export interface BLabelOptions { + offset?: BSizeConstructor + position?: BPointConstructor + enableMassClear?: boolean +} diff --git a/src/types/Marker.ts b/src/types/Marker.ts index a933efd..b111e10 100644 --- a/src/types/Marker.ts +++ b/src/types/Marker.ts @@ -1,4 +1,5 @@ import { BIconConstructor, Icon } from './Icon' +import { BLabel } from './Label' import { Overlay } from './Overlay' import { BPointConstructor } from './Point' import { BSizeConstructor, Size } from './Size' @@ -22,6 +23,9 @@ export interface BMarker extends Overlay { setRotation(rotation: number): void setShadow(icon: BIconConstructor): void setTitle(title: string): void + + setLabel(label: BLabel): void + getLabel(): BLabel } export interface MarkerOptions {