1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
| import {
| invokeMethod,
| getCurrentPageVm
| } from '../../platform'
|
| import {
| callback
| } from 'uni-shared'
|
| function operateMapPlayer (mapId, pageVm, type, data) {
| invokeMethod('operateMapPlayer', mapId, pageVm, type, data)
| }
|
| UniServiceJSBridge.subscribe('onMapMethodCallback', ({
| callbackId,
| data
| }) => {
| callback.invoke(callbackId, data)
| })
|
| const methods = ['getCenterLocation',
| 'moveToLocation',
| 'getScale',
| 'getRegion',
| 'includePoints',
| 'translateMarker',
| 'addCustomLayer',
| 'removeCustomLayer',
| 'addGroundOverlay',
| 'removeGroundOverlay',
| 'updateGroundOverlay',
| 'initMarkerCluster',
| 'addMarkers',
| 'removeMarkers',
| 'moveAlong',
| 'setLocMarkerIcon',
| 'openMapApp']
|
| export class MapContext {
| constructor (id, pageVm) {
| this.id = id
| this.pageVm = pageVm
| }
|
| on (name, callback) {
| operateMapPlayer(this.id, this.pageVm, 'on', {
| name,
| callback
| })
| }
| }
|
| MapContext.prototype.$getAppMap = function () {
| if (__PLATFORM__ === 'app-plus') {
| return plus.maps.getMapById(this.pageVm.$page.id + '-map-' + this.id)
| }
| }
|
| methods.forEach(function (method) {
| MapContext.prototype[method] = callback.warp(function (options, callbackId) {
| options.callbackId = callbackId
| operateMapPlayer(this.id, this.pageVm, method, options)
| })
| })
|
| export function createMapContext (id, context) {
| if (context) {
| return new MapContext(id, context)
| }
| return new MapContext(id, getCurrentPageVm('createMapContext'))
| }
|
|