Skip to content

Commit 6aafd26

Browse files
committed
feat: click event supported in Polyline component
1 parent f73b8b0 commit 6aafd26

File tree

5 files changed

+6962
-6
lines changed

5 files changed

+6962
-6
lines changed

demo/components/apidoc/docPolyline.component.ts

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { PolylineOptions, Point, MapOptions, BPolyline } from 'angular2-baidu-ma
1414
<div class="snippet" highlight>
1515
<pre><code class="html">
1616
&lt;baidu-map [options]="expression"&gt;
17-
&lt;polyline [points]="expression" [options]="expression" (loaded)="expression"&gt;&lt;/polyline&gt;
17+
&lt;polyline [points]="expression" [options]="expression" (loaded)="expression" (clicked)="expression"&gt;&lt;/polyline&gt;
1818
&lt;/baidu-map&gt;
1919
</code></pre>
2020
</div>
@@ -58,18 +58,37 @@ import { PolylineOptions, Point, MapOptions, BPolyline } from 'angular2-baidu-ma
5858
>)
5959
</td>
6060
</tr>
61+
<tr>
62+
<td>clicked</td>
63+
<td><span class="label">expression</span></td>
64+
<td>
65+
Expression to evaluate upon polyline click event. (Three objects passed to this callback,
66+
<code>e</code> for event, <code>polyline</code> for instance of
67+
<a href="http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a3b11" target="_blank"
68+
>BMap.Polyline</a
69+
>, <code>map</code> for instance of
70+
<a href="http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a0b0" target="_blank"
71+
>BMap.Map</a
72+
>)
73+
</td>
74+
</tr>
6175
</tbody>
6276
</table>
6377
6478
<h2 class="title">Example</h2>
6579
<baidu-map [options]="opts">
66-
<polyline [points]="points" [options]="polylineOptions" (loaded)="polylineLoaded($event)"></polyline>
80+
<polyline
81+
[points]="points"
82+
[options]="polylineOptions"
83+
(loaded)="polylineLoaded($event)"
84+
(clicked)="polylineClicked($event)"
85+
></polyline>
6786
</baidu-map>
6887
6988
<div class="snippet" highlight>
7089
<pre><code class="html">
7190
&lt;baidu-map [options]="opts"&gt;
72-
&lt;polyline [points]="points" [options]="polylineOptions" (loaded)="polylineLoaded($event)"&gt;&lt;/polyline&gt;
91+
&lt;polyline [points]="points" [options]="polylineOptions" (loaded)="polylineLoaded($event)" (clicked)="polylineClicked($event)"&gt;&lt;/polyline&gt;
7392
&lt;/baidu-map&gt;
7493
</code></pre>
7594
</div>
@@ -132,6 +151,11 @@ import { PolylineOptions, Point, MapOptions, BPolyline } from 'angular2-baidu-ma
132151
public polylineLoaded(polyline: BPolyline): void &#123;
133152
console.log('polyline loaded', polyline)
134153
&#125;
154+
155+
public polylineClicked(&#123; polyline &#125;): void &#123;
156+
console.log('polyline clicked', click)
157+
&#125;
158+
135159
&#125;
136160
</code></pre>
137161
</div>
@@ -192,4 +216,8 @@ export class DocPolylineComponent {
192216
public polylineLoaded(polyline: BPolyline): void {
193217
console.log('polyline loaded', polyline)
194218
}
219+
220+
public polylineClicked({ polyline }): void {
221+
console.log('polyline clicked', polyline)
222+
}
195223
}

lib/components/polyline.component.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { isNull, isUndefined } from '../helpers/object'
1313
import { toPoints } from '../helpers/transformer'
1414
import { nullCheck } from '../helpers/validate'
1515
import { MapService } from '../providers/mapService'
16+
import { BMapInstance } from '../types/Map'
1617
import { BPolyline, PolylineOptions } from '../types/Polyline'
1718
import { Point } from '../types/Point'
1819

@@ -24,6 +25,7 @@ export class PolylineComponent implements OnInit, OnChanges, OnDestroy {
2425
@Input() private options: PolylineOptions
2526

2627
@Output() private loaded = new EventEmitter()
28+
@Output() private clicked = new EventEmitter()
2729

2830
private polyline: BPolyline
2931

@@ -36,8 +38,9 @@ export class PolylineComponent implements OnInit, OnChanges, OnDestroy {
3638
.addOverlay(() => {
3739
return (this.polyline = new window.BMap.Polyline(toPoints(this.points), this.options))
3840
})
39-
.then(() => {
41+
.then(({ map }) => {
4042
this.loaded.emit(this.polyline)
43+
this.addListener(this.polyline, map)
4144
})
4245
}
4346

@@ -85,4 +88,15 @@ export class PolylineComponent implements OnInit, OnChanges, OnDestroy {
8588
this.polyline.setStrokeWeight(options.strokeWeight)
8689
}
8790
}
91+
92+
private addListener(polyline: BPolyline, map: BMapInstance) {
93+
polyline.addEventListener('click', (e: any) => {
94+
console.log('sfdsfdsfds')
95+
this.clicked.emit({
96+
e,
97+
map,
98+
polyline
99+
})
100+
})
101+
}
88102
}

lib/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular2-baidu-map",
3-
"version": "4.6.1",
3+
"version": "4.7.0",
44
"license": "GPL-3.0",
55
"description": "Angular2 component for Baidu map",
66
"author": "Howard.Zuo",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular2-baidu-map",
3-
"version": "4.6.1",
3+
"version": "4.7.0",
44
"license": "GPL-3.0",
55
"scripts": {
66
"start": "ng serve",

0 commit comments

Comments
 (0)