@tarojs/components-react 4.1.12-beta.18 → 4.1.12-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/map/MapContext.js +342 -0
- package/dist/components/map/MapContext.js.map +1 -0
- package/dist/components/map/MapCustomCallout.js +91 -0
- package/dist/components/map/MapCustomCallout.js.map +1 -0
- package/dist/components/map/common.js +4 -0
- package/dist/components/map/common.js.map +1 -0
- package/dist/components/map/createMapContext.js +34 -0
- package/dist/components/map/createMapContext.js.map +1 -0
- package/dist/components/map/handler.js +50 -0
- package/dist/components/map/handler.js.map +1 -0
- package/dist/components/map/index.js +316 -0
- package/dist/components/map/index.js.map +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/original/components/map/MapContext.js +342 -0
- package/dist/original/components/map/MapContext.js.map +1 -0
- package/dist/original/components/map/MapCustomCallout.js +91 -0
- package/dist/original/components/map/MapCustomCallout.js.map +1 -0
- package/dist/original/components/map/common.js +4 -0
- package/dist/original/components/map/common.js.map +1 -0
- package/dist/original/components/map/createMapContext.js +34 -0
- package/dist/original/components/map/createMapContext.js.map +1 -0
- package/dist/original/components/map/handler.js +50 -0
- package/dist/original/components/map/handler.js.map +1 -0
- package/dist/original/components/map/index.js +316 -0
- package/dist/original/components/map/index.js.map +1 -0
- package/dist/original/index.js +3 -1
- package/dist/original/index.js.map +1 -1
- package/package.json +8 -6
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import { logPrefix } from './common.js';
|
|
2
|
+
import { MethodHandler } from './handler.js';
|
|
3
|
+
|
|
4
|
+
/* eslint-disable no-console */
|
|
5
|
+
/**
|
|
6
|
+
* 全局地图实例存储
|
|
7
|
+
* key: Map 组件的 id
|
|
8
|
+
* value: TMap.Map 实例
|
|
9
|
+
*/
|
|
10
|
+
const mapInstances = new Map();
|
|
11
|
+
/**
|
|
12
|
+
* 注册地图实例(同时创建 MapContextImpl 并挂载到 window)
|
|
13
|
+
* @param id Map 组件的 id
|
|
14
|
+
* @param instance 地图实例
|
|
15
|
+
*/
|
|
16
|
+
function registerMapInstance(id, instance) {
|
|
17
|
+
mapInstances.set(id, instance);
|
|
18
|
+
console.log(logPrefix, '[MapContext] 注册地图实例:', id, instance);
|
|
19
|
+
// ✅ 方案 F:创建 MapContextImpl 并挂载到 window
|
|
20
|
+
if (typeof window !== 'undefined') {
|
|
21
|
+
// 确保 window 对象存在
|
|
22
|
+
if (!window.__TARO_MAP_CONTEXTS__) {
|
|
23
|
+
window.__TARO_MAP_CONTEXTS__ = new Map();
|
|
24
|
+
}
|
|
25
|
+
// ✅ 在这里 new MapContextImpl(有 TMap 类型)
|
|
26
|
+
const contextImpl = new MapContextImpl(instance);
|
|
27
|
+
window.__TARO_MAP_CONTEXTS__.set(id, contextImpl);
|
|
28
|
+
console.log(logPrefix, '[MapContext] 挂载 MapContextImpl 到 window:', id);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 注销地图实例(同时清理 window)
|
|
33
|
+
* @param id Map 组件的 id
|
|
34
|
+
*/
|
|
35
|
+
function unregisterMapInstance(id) {
|
|
36
|
+
var _a;
|
|
37
|
+
mapInstances.delete(id);
|
|
38
|
+
console.log(logPrefix, '[MapContext] 注销地图实例:', id);
|
|
39
|
+
// ✅ 从 window 清理 MapContextImpl
|
|
40
|
+
if (typeof window !== 'undefined') {
|
|
41
|
+
(_a = window.__TARO_MAP_CONTEXTS__) === null || _a === void 0 ? void 0 : _a.delete(id);
|
|
42
|
+
console.log(logPrefix, '[MapContext] 从 window 清理 MapContextImpl:', id);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 获取地图实例
|
|
47
|
+
* @param id Map 组件的 id
|
|
48
|
+
* @returns 地图实例,如果不存在则返回 undefined
|
|
49
|
+
*/
|
|
50
|
+
function getMapInstance(id) {
|
|
51
|
+
return mapInstances.get(id);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* MapContext 实现类
|
|
55
|
+
* 将腾讯地图 API 适配到 Taro MapContext 接口
|
|
56
|
+
*/
|
|
57
|
+
class MapContextImpl {
|
|
58
|
+
constructor(map) {
|
|
59
|
+
this.map = map;
|
|
60
|
+
if (!map) {
|
|
61
|
+
console.warn(logPrefix, '[MapContext] 地图实例为空,部分方法将不可用');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 缩放视野包含所有经纬度
|
|
66
|
+
* @supported weapp, tt
|
|
67
|
+
*/
|
|
68
|
+
includePoints(option) {
|
|
69
|
+
const handle = new MethodHandler({
|
|
70
|
+
name: 'includePoints',
|
|
71
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
72
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
73
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
74
|
+
});
|
|
75
|
+
if (!this.map) {
|
|
76
|
+
return handle.fail({
|
|
77
|
+
errMsg: '地图实例不存在'
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
const {
|
|
82
|
+
points,
|
|
83
|
+
padding
|
|
84
|
+
} = option;
|
|
85
|
+
console.log(logPrefix, '[MapContext.includePoints] 开始执行:', {
|
|
86
|
+
points,
|
|
87
|
+
padding
|
|
88
|
+
});
|
|
89
|
+
// 创建空的 LatLngBounds
|
|
90
|
+
const bounds = new TMap.LatLngBounds();
|
|
91
|
+
// 转换坐标格式: {latitude, longitude} -> TMap.LatLng 并扩展边界
|
|
92
|
+
points.forEach(p => {
|
|
93
|
+
const latLng = new TMap.LatLng(p.latitude, p.longitude);
|
|
94
|
+
bounds.extend(latLng);
|
|
95
|
+
});
|
|
96
|
+
console.log(logPrefix, '[MapContext.includePoints] LatLngBounds:', bounds, 'padding:', padding);
|
|
97
|
+
// 转换 padding 格式: Taro [top, right, bottom, left] -> TMap {top, right, bottom, left}
|
|
98
|
+
let paddingOption;
|
|
99
|
+
if (padding) {
|
|
100
|
+
if (Array.isArray(padding)) {
|
|
101
|
+
// padding 是数组格式 [top, right, bottom, left]
|
|
102
|
+
paddingOption = {
|
|
103
|
+
top: padding[0],
|
|
104
|
+
right: padding[1],
|
|
105
|
+
bottom: padding[2],
|
|
106
|
+
left: padding[3]
|
|
107
|
+
};
|
|
108
|
+
} else {
|
|
109
|
+
// padding 是数字格式,直接使用
|
|
110
|
+
paddingOption = padding;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// 调用地图的 fitBounds 方法
|
|
114
|
+
this.map.fitBounds(bounds, {
|
|
115
|
+
padding: paddingOption
|
|
116
|
+
});
|
|
117
|
+
console.log(logPrefix, '[MapContext.includePoints] 执行成功');
|
|
118
|
+
return handle.success({});
|
|
119
|
+
} catch (error) {
|
|
120
|
+
console.error(logPrefix, '[MapContext.includePoints] 执行失败:', error);
|
|
121
|
+
return handle.fail({
|
|
122
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 获取当前地图中心的经纬度
|
|
128
|
+
* @supported weapp, tt
|
|
129
|
+
*/
|
|
130
|
+
getCenterLocation(_option) {
|
|
131
|
+
console.warn(logPrefix, '[MapContext.getCenterLocation] 暂未实现');
|
|
132
|
+
return Promise.reject(new Error('getCenterLocation: 暂未实现'));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 设置定位点图标
|
|
136
|
+
* @supported weapp, tt
|
|
137
|
+
*/
|
|
138
|
+
setLocMarkerIcon(_option) {
|
|
139
|
+
console.warn(logPrefix, '[MapContext.setLocMarkerIcon] 暂未实现');
|
|
140
|
+
return Promise.reject(new Error('setLocMarkerIcon: 暂未实现'));
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* 将地图中心移置当前定位点
|
|
144
|
+
* @supported weapp, tt
|
|
145
|
+
*/
|
|
146
|
+
moveToLocation(_option) {
|
|
147
|
+
console.warn(logPrefix, '[MapContext.moveToLocation] 暂未实现');
|
|
148
|
+
return Promise.reject(new Error('moveToLocation: 暂未实现'));
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* 平移marker,带动画
|
|
152
|
+
* @supported weapp, tt
|
|
153
|
+
*/
|
|
154
|
+
translateMarker(_option) {
|
|
155
|
+
console.warn(logPrefix, '[MapContext.translateMarker] 暂未实现');
|
|
156
|
+
return Promise.reject(new Error('translateMarker: 暂未实现'));
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 沿指定路径移动 marker
|
|
160
|
+
*/
|
|
161
|
+
moveAlong(_object) {
|
|
162
|
+
console.warn(logPrefix, '[MapContext.moveAlong] 暂未实现');
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* 获取当前地图的视野范围
|
|
166
|
+
* @supported weapp, tt
|
|
167
|
+
*/
|
|
168
|
+
getRegion(option) {
|
|
169
|
+
console.warn(logPrefix, '[MapContext.getRegion] 暂未实现', option);
|
|
170
|
+
return Promise.reject(new Error('getRegion: 暂未实现'));
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* 获取当前地图的旋转角
|
|
174
|
+
* @supported weapp, tt
|
|
175
|
+
*/
|
|
176
|
+
getRotate(option) {
|
|
177
|
+
console.warn(logPrefix, '[MapContext.getRotate] 暂未实现', option);
|
|
178
|
+
return Promise.reject(new Error('getRotate: 暂未实现'));
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* 获取当前地图的倾斜角
|
|
182
|
+
* @supported weapp, tt
|
|
183
|
+
*/
|
|
184
|
+
getSkew(option) {
|
|
185
|
+
console.warn(logPrefix, '[MapContext.getSkew] 暂未实现', option);
|
|
186
|
+
return Promise.reject(new Error('getSkew: 暂未实现'));
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* 获取当前地图的缩放级别
|
|
190
|
+
* @supported weapp, tt
|
|
191
|
+
*/
|
|
192
|
+
getScale(option) {
|
|
193
|
+
console.warn(logPrefix, '[MapContext.getScale] 暂未实现', option);
|
|
194
|
+
return Promise.reject(new Error('getScale: 暂未实现'));
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* 设置地图中心点偏移
|
|
198
|
+
* @supported weapp, tt
|
|
199
|
+
*/
|
|
200
|
+
setCenterOffset(option) {
|
|
201
|
+
console.warn(logPrefix, '[MapContext.setCenterOffset] 暂未实现', option);
|
|
202
|
+
return Promise.reject(new Error('setCenterOffset: 暂未实现'));
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* 移除个性化图层
|
|
206
|
+
* @supported weapp
|
|
207
|
+
*/
|
|
208
|
+
removeCustomLayer(option) {
|
|
209
|
+
console.warn(logPrefix, '[MapContext.removeCustomLayer] 暂未实现', option);
|
|
210
|
+
return Promise.reject(new Error('removeCustomLayer: 暂未实现'));
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* 添加个性化图层
|
|
214
|
+
* @supported weapp
|
|
215
|
+
*/
|
|
216
|
+
addCustomLayer(option) {
|
|
217
|
+
console.warn(logPrefix, '[MapContext.addCustomLayer] 暂未实现', option);
|
|
218
|
+
return Promise.reject(new Error('addCustomLayer: 暂未实现'));
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* 创建自定义图片图层
|
|
222
|
+
* @supported weapp, tt
|
|
223
|
+
*/
|
|
224
|
+
addGroundOverlay(option) {
|
|
225
|
+
console.warn(logPrefix, '[MapContext.addGroundOverlay] 暂未实现', option);
|
|
226
|
+
return Promise.reject(new Error('addGroundOverlay: 暂未实现'));
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* 添加可视化图层
|
|
230
|
+
* @supported weapp
|
|
231
|
+
*/
|
|
232
|
+
addVisualLayer(option) {
|
|
233
|
+
console.warn(logPrefix, '[MapContext.addVisualLayer] 暂未实现', option);
|
|
234
|
+
return Promise.reject(new Error('addVisualLayer: 暂未实现'));
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* 移除可视化图层
|
|
238
|
+
* @supported weapp
|
|
239
|
+
*/
|
|
240
|
+
removeVisualLayer(option) {
|
|
241
|
+
console.warn(logPrefix, '[MapContext.removeVisualLayer] 暂未实现', option);
|
|
242
|
+
return Promise.reject(new Error('removeVisualLayer: 暂未实现'));
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* 添加弧线
|
|
246
|
+
* @supported weapp
|
|
247
|
+
*/
|
|
248
|
+
addArc(option) {
|
|
249
|
+
console.warn(logPrefix, '[MapContext.addArc] 暂未实现', option);
|
|
250
|
+
return Promise.reject(new Error('addArc: 暂未实现'));
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* 删除弧线
|
|
254
|
+
* @supported weapp
|
|
255
|
+
*/
|
|
256
|
+
removeArc(option) {
|
|
257
|
+
console.warn(logPrefix, '[MapContext.removeArc] 暂未实现', option);
|
|
258
|
+
return Promise.reject(new Error('removeArc: 暂未实现'));
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* 限制地图的显示范围
|
|
262
|
+
* @supported weapp
|
|
263
|
+
*/
|
|
264
|
+
setBoundary(option) {
|
|
265
|
+
console.warn(logPrefix, '[MapContext.setBoundary] 暂未实现', option);
|
|
266
|
+
return Promise.reject(new Error('setBoundary: 暂未实现'));
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* 更新自定义图片图层
|
|
270
|
+
* @supported weapp, tt
|
|
271
|
+
*/
|
|
272
|
+
updateGroundOverlay(option) {
|
|
273
|
+
console.warn(logPrefix, '[MapContext.updateGroundOverlay] 暂未实现', option);
|
|
274
|
+
return Promise.reject(new Error('updateGroundOverlay: 暂未实现'));
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* 移除自定义图片图层
|
|
278
|
+
* @supported weapp, tt
|
|
279
|
+
*/
|
|
280
|
+
removeGroundOverlay(option) {
|
|
281
|
+
console.warn(logPrefix, '[MapContext.removeGroundOverlay] 暂未实现', option);
|
|
282
|
+
return Promise.reject(new Error('removeGroundOverlay: 暂未实现'));
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* 获取经纬度对应的屏幕坐标
|
|
286
|
+
* @supported weapp
|
|
287
|
+
*/
|
|
288
|
+
toScreenLocation(option) {
|
|
289
|
+
console.warn(logPrefix, '[MapContext.toScreenLocation] 暂未实现', option);
|
|
290
|
+
return Promise.reject(new Error('toScreenLocation: 暂未实现'));
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* 获取屏幕上的点对应的经纬度
|
|
294
|
+
* @supported weapp
|
|
295
|
+
*/
|
|
296
|
+
fromScreenLocation(option) {
|
|
297
|
+
console.warn(logPrefix, '[MapContext.fromScreenLocation] 暂未实现', option);
|
|
298
|
+
return Promise.reject(new Error('fromScreenLocation: 暂未实现'));
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* 拉起地图APP选择导航
|
|
302
|
+
* @supported weapp
|
|
303
|
+
*/
|
|
304
|
+
openMapApp(option) {
|
|
305
|
+
console.warn(logPrefix, '[MapContext.openMapApp] 暂未实现', option);
|
|
306
|
+
return Promise.reject(new Error('openMapApp: 暂未实现'));
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* 添加 marker
|
|
310
|
+
* @supported weapp
|
|
311
|
+
*/
|
|
312
|
+
addMarkers(option) {
|
|
313
|
+
console.warn(logPrefix, '[MapContext.addMarkers] 暂未实现', option);
|
|
314
|
+
return Promise.reject(new Error('addMarkers: 暂未实现'));
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* 移除 marker
|
|
318
|
+
* @supported weapp
|
|
319
|
+
*/
|
|
320
|
+
removeMarkers(option) {
|
|
321
|
+
console.warn(logPrefix, '[MapContext.removeMarkers] 暂未实现', option);
|
|
322
|
+
return Promise.reject(new Error('removeMarkers: 暂未实现'));
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* 初始化点聚合的配置
|
|
326
|
+
* @supported weapp
|
|
327
|
+
*/
|
|
328
|
+
initMarkerCluster(option) {
|
|
329
|
+
console.warn(logPrefix, '[MapContext.initMarkerCluster] 暂未实现', option);
|
|
330
|
+
return Promise.reject(new Error('initMarkerCluster: 暂未实现'));
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* 监听地图事件
|
|
334
|
+
* @supported weapp
|
|
335
|
+
*/
|
|
336
|
+
on(event, callback) {
|
|
337
|
+
console.warn(logPrefix, '[MapContext.on] 暂未实现', event, callback);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export { MapContextImpl as MapContext, MapContextImpl, getMapInstance, registerMapInstance, unregisterMapInstance };
|
|
342
|
+
//# sourceMappingURL=MapContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapContext.js","sources":["../../../../src/components/map/MapContext.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { logPrefix } from './common'\nimport { MethodHandler } from './handler'\n\nimport type { MapContext as TaroMapContext } from '@tarojs/taro'\n/**\n * 全局地图实例存储\n * key: Map 组件的 id\n * value: TMap.Map 实例\n */\nconst mapInstances = new Map<string, TMap.Map>()\n\n/**\n * 注册地图实例(同时创建 MapContextImpl 并挂载到 window)\n * @param id Map 组件的 id\n * @param instance 地图实例\n */\nexport function registerMapInstance(id: string, instance: TMap.Map): void {\n mapInstances.set(id, instance)\n console.log(logPrefix, '[MapContext] 注册地图实例:', id, instance)\n\n // ✅ 方案 F:创建 MapContextImpl 并挂载到 window\n if (typeof window !== 'undefined') {\n // 确保 window 对象存在\n if (!(window as any).__TARO_MAP_CONTEXTS__) {\n (window as any).__TARO_MAP_CONTEXTS__ = new Map()\n }\n\n // ✅ 在这里 new MapContextImpl(有 TMap 类型)\n const contextImpl = new MapContextImpl(instance)\n\n // ✅ 存储 MapContextImpl 实例(不是 TMap.Map 实例)\n ;(window as any).__TARO_MAP_CONTEXTS__.set(id, contextImpl)\n\n console.log(logPrefix, '[MapContext] 挂载 MapContextImpl 到 window:', id)\n }\n}\n\n/**\n * 注销地图实例(同时清理 window)\n * @param id Map 组件的 id\n */\nexport function unregisterMapInstance(id: string): void {\n mapInstances.delete(id)\n console.log(logPrefix, '[MapContext] 注销地图实例:', id)\n\n // ✅ 从 window 清理 MapContextImpl\n if (typeof window !== 'undefined') {\n (window as any).__TARO_MAP_CONTEXTS__?.delete(id)\n console.log(logPrefix, '[MapContext] 从 window 清理 MapContextImpl:', id)\n }\n}\n\n/**\n * 获取地图实例\n * @param id Map 组件的 id\n * @returns 地图实例,如果不存在则返回 undefined\n */\nexport function getMapInstance(id: string): TMap.Map | undefined {\n return mapInstances.get(id)\n}\n\n/**\n * MapContext 实现类\n * 将腾讯地图 API 适配到 Taro MapContext 接口\n */\nexport class MapContextImpl implements TaroMapContext {\n private map: TMap.Map | null\n\n constructor(map: TMap.Map | null) {\n this.map = map\n if (!map) {\n console.warn(logPrefix, '[MapContext] 地图实例为空,部分方法将不可用')\n }\n }\n\n /**\n * 缩放视野包含所有经纬度\n * @supported weapp, tt\n */\n includePoints(option: TaroMapContext.IncludePointsOption): Promise<TaroGeneral.CallbackResult> {\n const handle = new MethodHandler({\n name: 'includePoints',\n success: option?.success,\n fail: option?.fail,\n complete: option?.complete,\n })\n\n if (!this.map) {\n return handle.fail({ errMsg: '地图实例不存在' })\n }\n\n try {\n const { points, padding } = option\n console.log(logPrefix, '[MapContext.includePoints] 开始执行:', { points, padding })\n\n // 创建空的 LatLngBounds\n const bounds = new TMap.LatLngBounds()\n // 转换坐标格式: {latitude, longitude} -> TMap.LatLng 并扩展边界\n points.forEach((p) => {\n const latLng = new TMap.LatLng(p.latitude, p.longitude)\n bounds.extend(latLng)\n })\n console.log(logPrefix, '[MapContext.includePoints] LatLngBounds:', bounds, 'padding:', padding)\n\n // 转换 padding 格式: Taro [top, right, bottom, left] -> TMap {top, right, bottom, left}\n let paddingOption: number | { top: number, right: number, bottom: number, left: number } | undefined\n if (padding) {\n if (Array.isArray(padding)) {\n // padding 是数组格式 [top, right, bottom, left]\n paddingOption = {\n top: padding[0],\n right: padding[1],\n bottom: padding[2],\n left: padding[3],\n }\n } else {\n // padding 是数字格式,直接使用\n paddingOption = padding as number\n }\n }\n\n // 调用地图的 fitBounds 方法\n this.map.fitBounds(bounds, {\n padding: paddingOption,\n })\n\n console.log(logPrefix, '[MapContext.includePoints] 执行成功')\n\n return handle.success({})\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.includePoints] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\n }\n\n /**\n * 获取当前地图中心的经纬度\n * @supported weapp, tt\n */\n getCenterLocation(_option?: TaroMapContext.GetCenterLocationOption): Promise<TaroMapContext.GetCenterLocationSuccessCallbackResult> {\n console.warn(logPrefix, '[MapContext.getCenterLocation] 暂未实现')\n return Promise.reject(new Error('getCenterLocation: 暂未实现'))\n }\n\n /**\n * 设置定位点图标\n * @supported weapp, tt\n */\n setLocMarkerIcon(_option: TaroMapContext.SetLocMarkerIconOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.setLocMarkerIcon] 暂未实现')\n return Promise.reject(new Error('setLocMarkerIcon: 暂未实现'))\n }\n\n /**\n * 将地图中心移置当前定位点\n * @supported weapp, tt\n */\n moveToLocation(_option: TaroMapContext.MoveToLocationOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.moveToLocation] 暂未实现')\n return Promise.reject(new Error('moveToLocation: 暂未实现'))\n }\n\n /**\n * 平移marker,带动画\n * @supported weapp, tt\n */\n translateMarker(_option: TaroMapContext.TranslateMarkerOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.translateMarker] 暂未实现')\n return Promise.reject(new Error('translateMarker: 暂未实现'))\n }\n\n /**\n * 沿指定路径移动 marker\n */\n moveAlong(_object: any): void {\n console.warn(logPrefix, '[MapContext.moveAlong] 暂未实现')\n }\n\n /**\n * 获取当前地图的视野范围\n * @supported weapp, tt\n */\n getRegion(option?: TaroMapContext.GetRegionOption): Promise<TaroMapContext.GetRegionSuccessCallbackResult> {\n console.warn(logPrefix, '[MapContext.getRegion] 暂未实现', option)\n return Promise.reject(new Error('getRegion: 暂未实现'))\n }\n\n /**\n * 获取当前地图的旋转角\n * @supported weapp, tt\n */\n getRotate(option?: TaroMapContext.GetRotateOption): Promise<TaroMapContext.GetRotateSuccessCallbackResult> {\n console.warn(logPrefix, '[MapContext.getRotate] 暂未实现', option)\n return Promise.reject(new Error('getRotate: 暂未实现'))\n }\n\n /**\n * 获取当前地图的倾斜角\n * @supported weapp, tt\n */\n getSkew(option?: TaroMapContext.GetSkewOption): Promise<TaroMapContext.GetSkewSuccessCallbackResult> {\n console.warn(logPrefix, '[MapContext.getSkew] 暂未实现', option)\n return Promise.reject(new Error('getSkew: 暂未实现'))\n }\n\n /**\n * 获取当前地图的缩放级别\n * @supported weapp, tt\n */\n getScale(option?: TaroMapContext.GetScaleOption): Promise<TaroMapContext.GetScaleSuccessCallbackResult> {\n console.warn(logPrefix, '[MapContext.getScale] 暂未实现', option)\n return Promise.reject(new Error('getScale: 暂未实现'))\n }\n\n /**\n * 设置地图中心点偏移\n * @supported weapp, tt\n */\n setCenterOffset(option: TaroMapContext.SetCenterOffsetOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.setCenterOffset] 暂未实现', option)\n return Promise.reject(new Error('setCenterOffset: 暂未实现'))\n }\n\n /**\n * 移除个性化图层\n * @supported weapp\n */\n removeCustomLayer(option: TaroMapContext.RemoveCustomLayerOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.removeCustomLayer] 暂未实现', option)\n return Promise.reject(new Error('removeCustomLayer: 暂未实现'))\n }\n\n /**\n * 添加个性化图层\n * @supported weapp\n */\n addCustomLayer(option: TaroMapContext.AddCustomLayerOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.addCustomLayer] 暂未实现', option)\n return Promise.reject(new Error('addCustomLayer: 暂未实现'))\n }\n\n /**\n * 创建自定义图片图层\n * @supported weapp, tt\n */\n addGroundOverlay(option: TaroMapContext.AddGroundLayerOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.addGroundOverlay] 暂未实现', option)\n return Promise.reject(new Error('addGroundOverlay: 暂未实现'))\n }\n\n /**\n * 添加可视化图层\n * @supported weapp\n */\n addVisualLayer(option: TaroMapContext.AddVisualLayerOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.addVisualLayer] 暂未实现', option)\n return Promise.reject(new Error('addVisualLayer: 暂未实现'))\n }\n\n /**\n * 移除可视化图层\n * @supported weapp\n */\n removeVisualLayer(option: TaroMapContext.RemoveVisualLayerOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.removeVisualLayer] 暂未实现', option)\n return Promise.reject(new Error('removeVisualLayer: 暂未实现'))\n }\n\n /**\n * 添加弧线\n * @supported weapp\n */\n addArc(option: TaroMapContext.AddArcOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.addArc] 暂未实现', option)\n return Promise.reject(new Error('addArc: 暂未实现'))\n }\n\n /**\n * 删除弧线\n * @supported weapp\n */\n removeArc(option: TaroMapContext.RemoveArcOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.removeArc] 暂未实现', option)\n return Promise.reject(new Error('removeArc: 暂未实现'))\n }\n\n /**\n * 限制地图的显示范围\n * @supported weapp\n */\n setBoundary(option: TaroMapContext.SetBoundaryOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.setBoundary] 暂未实现', option)\n return Promise.reject(new Error('setBoundary: 暂未实现'))\n }\n\n /**\n * 更新自定义图片图层\n * @supported weapp, tt\n */\n updateGroundOverlay(option: TaroMapContext.UpdateGroundOverlayOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.updateGroundOverlay] 暂未实现', option)\n return Promise.reject(new Error('updateGroundOverlay: 暂未实现'))\n }\n\n /**\n * 移除自定义图片图层\n * @supported weapp, tt\n */\n removeGroundOverlay(option: TaroMapContext.RemoveGroundOverlayOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.removeGroundOverlay] 暂未实现', option)\n return Promise.reject(new Error('removeGroundOverlay: 暂未实现'))\n }\n\n /**\n * 获取经纬度对应的屏幕坐标\n * @supported weapp\n */\n toScreenLocation(option: TaroMapContext.ToScreenLocationOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.toScreenLocation] 暂未实现', option)\n return Promise.reject(new Error('toScreenLocation: 暂未实现'))\n }\n\n /**\n * 获取屏幕上的点对应的经纬度\n * @supported weapp\n */\n fromScreenLocation(option: TaroMapContext.FromScreenLocationOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.fromScreenLocation] 暂未实现', option)\n return Promise.reject(new Error('fromScreenLocation: 暂未实现'))\n }\n\n /**\n * 拉起地图APP选择导航\n * @supported weapp\n */\n openMapApp(option: TaroMapContext.OpenMapAppOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.openMapApp] 暂未实现', option)\n return Promise.reject(new Error('openMapApp: 暂未实现'))\n }\n\n /**\n * 添加 marker\n * @supported weapp\n */\n addMarkers(option: TaroMapContext.AddMarkersOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.addMarkers] 暂未实现', option)\n return Promise.reject(new Error('addMarkers: 暂未实现'))\n }\n\n /**\n * 移除 marker\n * @supported weapp\n */\n removeMarkers(option: TaroMapContext.RemoveMarkersOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.removeMarkers] 暂未实现', option)\n return Promise.reject(new Error('removeMarkers: 暂未实现'))\n }\n\n /**\n * 初始化点聚合的配置\n * @supported weapp\n */\n initMarkerCluster(option?: TaroMapContext.InitMarkerClusterOption): Promise<TaroGeneral.CallbackResult> {\n console.warn(logPrefix, '[MapContext.initMarkerCluster] 暂未实现', option)\n return Promise.reject(new Error('initMarkerCluster: 暂未实现'))\n }\n\n /**\n * 监听地图事件\n * @supported weapp\n */\n on(\n event: keyof TaroMapContext.MapEvent,\n callback: (res: TaroMapContext.MapEvent[keyof TaroMapContext.MapEvent]) => void\n ): void {\n console.warn(logPrefix, '[MapContext.on] 暂未实现', event, callback)\n }\n}\n\nexport { MapContextImpl as MapContext }\n"],"names":["mapInstances","Map","registerMapInstance","id","instance","set","console","log","logPrefix","window","__TARO_MAP_CONTEXTS__","contextImpl","MapContextImpl","unregisterMapInstance","delete","_a","getMapInstance","get","constructor","map","warn","includePoints","option","handle","MethodHandler","name","success","fail","complete","errMsg","points","padding","bounds","TMap","LatLngBounds","forEach","p","latLng","LatLng","latitude","longitude","extend","paddingOption","Array","isArray","top","right","bottom","left","fitBounds","error","message","String","getCenterLocation","_option","Promise","reject","Error","setLocMarkerIcon","moveToLocation","translateMarker","moveAlong","_object","getRegion","getRotate","getSkew","getScale","setCenterOffset","removeCustomLayer","addCustomLayer","addGroundOverlay","addVisualLayer","removeVisualLayer","addArc","removeArc","setBoundary","updateGroundOverlay","removeGroundOverlay","toScreenLocation","fromScreenLocation","openMapApp","addMarkers","removeMarkers","initMarkerCluster","on","event","callback"],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { View } from '@tarojs/components';
|
|
2
|
+
import { memo, useRef, useState, useCallback, useEffect } from 'react';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
const MapCustomCallout = /*#__PURE__*/memo(_ref => {
|
|
6
|
+
let {
|
|
7
|
+
map,
|
|
8
|
+
markerId,
|
|
9
|
+
position,
|
|
10
|
+
anchorX,
|
|
11
|
+
anchorY,
|
|
12
|
+
display = 'ALWAYS',
|
|
13
|
+
children,
|
|
14
|
+
onCalloutTap
|
|
15
|
+
} = _ref;
|
|
16
|
+
const calloutRef = useRef(null);
|
|
17
|
+
const [visible] = useState(display === 'ALWAYS');
|
|
18
|
+
/**
|
|
19
|
+
* 更新气泡位置
|
|
20
|
+
*/
|
|
21
|
+
const updatePosition = useCallback(() => {
|
|
22
|
+
if (!map || !calloutRef.current) return;
|
|
23
|
+
try {
|
|
24
|
+
const latLng = new TMap.LatLng(position.lat, position.lng);
|
|
25
|
+
const containerPoint = map.projectToContainer(latLng);
|
|
26
|
+
if (!containerPoint) return;
|
|
27
|
+
const x = containerPoint.x + anchorX;
|
|
28
|
+
const y = containerPoint.y + anchorY;
|
|
29
|
+
// 直接设置 style
|
|
30
|
+
calloutRef.current.style.position = 'absolute';
|
|
31
|
+
calloutRef.current.style.left = '0px';
|
|
32
|
+
calloutRef.current.style.top = '0px';
|
|
33
|
+
calloutRef.current.style.transform = `translate(${x}px, ${y}px) translate(-50%, -100%)`;
|
|
34
|
+
calloutRef.current.style.pointerEvents = 'auto';
|
|
35
|
+
calloutRef.current.style.zIndex = '1000';
|
|
36
|
+
calloutRef.current.style.cursor = 'pointer';
|
|
37
|
+
} catch (_a) {
|
|
38
|
+
// 忽略位置更新错误
|
|
39
|
+
}
|
|
40
|
+
}, [map, position, anchorX, anchorY]);
|
|
41
|
+
/**
|
|
42
|
+
* 处理 touchend 事件
|
|
43
|
+
* 对齐小程序默认行为:点击气泡任意位置都触发 onCalloutTap
|
|
44
|
+
* 子元素可以通过 stopPropagation() 阻止事件冒泡,只处理自己的 onClick
|
|
45
|
+
*/
|
|
46
|
+
const handleTouchEnd = useCallback(e => {
|
|
47
|
+
const target = e === null || e === void 0 ? void 0 : e.target;
|
|
48
|
+
if (!target) return;
|
|
49
|
+
// 派发 click 事件,让子元素自己的 onClick 处理
|
|
50
|
+
const clickEvent = new MouseEvent('click', {
|
|
51
|
+
bubbles: true,
|
|
52
|
+
cancelable: true,
|
|
53
|
+
view: window
|
|
54
|
+
});
|
|
55
|
+
target.dispatchEvent(clickEvent);
|
|
56
|
+
// 对齐小程序默认行为:点击气泡任意位置都触发 onCalloutTap
|
|
57
|
+
onCalloutTap === null || onCalloutTap === void 0 ? void 0 : onCalloutTap(markerId);
|
|
58
|
+
}, [markerId, onCalloutTap]);
|
|
59
|
+
/**
|
|
60
|
+
* 监听地图变化,实现自动跟随
|
|
61
|
+
*/
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (!map || !visible) return;
|
|
64
|
+
const events = ['bounds_changed', 'zoom_changed', 'drag', 'rotate'];
|
|
65
|
+
events.forEach(event => map.on(event, updatePosition));
|
|
66
|
+
requestAnimationFrame(() => {
|
|
67
|
+
updatePosition();
|
|
68
|
+
});
|
|
69
|
+
return () => {
|
|
70
|
+
events.forEach(event => map.off(event, updatePosition));
|
|
71
|
+
};
|
|
72
|
+
}, [map, updatePosition, visible]);
|
|
73
|
+
if (!visible) return null;
|
|
74
|
+
return /*#__PURE__*/jsx(View, {
|
|
75
|
+
ref: calloutRef,
|
|
76
|
+
onTouchEnd: handleTouchEnd,
|
|
77
|
+
style: {
|
|
78
|
+
position: 'absolute',
|
|
79
|
+
left: 0,
|
|
80
|
+
top: 0,
|
|
81
|
+
pointerEvents: 'auto',
|
|
82
|
+
zIndex: 1000,
|
|
83
|
+
cursor: 'pointer'
|
|
84
|
+
},
|
|
85
|
+
children: children
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
MapCustomCallout.displayName = 'MapCustomCallout';
|
|
89
|
+
|
|
90
|
+
export { MapCustomCallout as default };
|
|
91
|
+
//# sourceMappingURL=MapCustomCallout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapCustomCallout.js","sources":["../../../../src/components/map/MapCustomCallout.tsx"],"sourcesContent":["import { View } from '@tarojs/components'\nimport React, { memo, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type MapTypes from 'tmap-gl-types'\n\ninterface MapCustomCalloutProps {\n map: MapTypes.Map | null\n markerId: number\n position: {\n lat: number\n lng: number\n }\n anchorX: number\n anchorY: number\n display?: 'ALWAYS' | 'BYCLICK'\n children: React.ReactNode\n onCalloutTap?: (markerId: number) => void\n}\n\nconst MapCustomCallout: React.FC<MapCustomCalloutProps> = memo(({\n map,\n markerId,\n position,\n anchorX,\n anchorY,\n display = 'ALWAYS',\n children,\n onCalloutTap,\n}) => {\n const calloutRef = useRef<HTMLDivElement>(null)\n const [visible] = useState(display === 'ALWAYS')\n\n /**\n * 更新气泡位置\n */\n const updatePosition = useCallback(() => {\n if (!map || !calloutRef.current) return\n\n try {\n const latLng = new TMap.LatLng(position.lat, position.lng)\n const containerPoint = map.projectToContainer(latLng)\n\n if (!containerPoint) return\n\n const x = containerPoint.x + anchorX\n const y = containerPoint.y + anchorY\n\n // 直接设置 style\n calloutRef.current.style.position = 'absolute'\n calloutRef.current.style.left = '0px'\n calloutRef.current.style.top = '0px'\n calloutRef.current.style.transform = `translate(${x}px, ${y}px) translate(-50%, -100%)`\n calloutRef.current.style.pointerEvents = 'auto'\n calloutRef.current.style.zIndex = '1000'\n calloutRef.current.style.cursor = 'pointer'\n } catch {\n // 忽略位置更新错误\n }\n }, [map, position, anchorX, anchorY])\n\n /**\n * 处理 touchend 事件\n * 对齐小程序默认行为:点击气泡任意位置都触发 onCalloutTap\n * 子元素可以通过 stopPropagation() 阻止事件冒泡,只处理自己的 onClick\n */\n const handleTouchEnd = useCallback((e: any) => {\n const target = e?.target\n if (!target) return\n\n // 派发 click 事件,让子元素自己的 onClick 处理\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n })\n target.dispatchEvent(clickEvent)\n\n // 对齐小程序默认行为:点击气泡任意位置都触发 onCalloutTap\n onCalloutTap?.(markerId)\n }, [markerId, onCalloutTap])\n\n /**\n * 监听地图变化,实现自动跟随\n */\n useEffect(() => {\n if (!map || !visible) return\n\n const events = ['bounds_changed', 'zoom_changed', 'drag', 'rotate'] as const\n events.forEach(event => map.on(event, updatePosition))\n\n requestAnimationFrame(() => {\n updatePosition()\n })\n\n return () => {\n events.forEach(event => map.off(event, updatePosition))\n }\n }, [map, updatePosition, visible])\n\n if (!visible) return null\n\n return (\n <View\n ref={calloutRef}\n onTouchEnd={handleTouchEnd}\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n pointerEvents: 'auto',\n zIndex: 1000,\n cursor: 'pointer',\n }}\n >\n {children}\n </View>\n )\n})\n\nMapCustomCallout.displayName = 'MapCustomCallout'\n\nexport default MapCustomCallout\n"],"names":["MapCustomCallout","memo","_ref","map","markerId","position","anchorX","anchorY","display","children","onCalloutTap","calloutRef","useRef","visible","useState","updatePosition","useCallback","current","latLng","TMap","LatLng","lat","lng","containerPoint","projectToContainer","x","y","style","left","top","transform","pointerEvents","zIndex","cursor","_a","handleTouchEnd","e","target","clickEvent","MouseEvent","bubbles","cancelable","view","window","dispatchEvent","useEffect","events","forEach","event","on","requestAnimationFrame","off","_jsx","View","ref","onTouchEnd","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sources":["../../../../src/components/map/common.ts"],"sourcesContent":["const logPrefix = '[Taro-H5-Map]'\n\nexport { logPrefix }\n"],"names":["logPrefix"],"mappings":"AAAMA,MAAAA,SAAS,GAAG;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { getMapInstance, MapContextImpl } from './MapContext.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 创建地图上下文 MapContext 对象
|
|
5
|
+
*
|
|
6
|
+
* @deprecated 请使用 Taro.createMapContext 代替
|
|
7
|
+
*
|
|
8
|
+
* 此导出仅用于向后兼容,将在未来版本中移除。
|
|
9
|
+
*
|
|
10
|
+
* 推荐用法:
|
|
11
|
+
* ```tsx
|
|
12
|
+
* import Taro from '@tarojs/taro'
|
|
13
|
+
*
|
|
14
|
+
* const mapCtx = Taro.createMapContext('mapId')
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @param mapId Map 组件的 id
|
|
18
|
+
* @param component 自定义组件实例(暂未使用)
|
|
19
|
+
* @returns MapContext 实例
|
|
20
|
+
*/
|
|
21
|
+
function createMapContext(mapId, _component) {
|
|
22
|
+
// 获取地图实例
|
|
23
|
+
const mapInstance = getMapInstance(mapId);
|
|
24
|
+
if (!mapInstance) {
|
|
25
|
+
console.warn('[createMapContext] 找不到 id 为 "' + mapId + '" 的地图实例,' + '请确保:1) Map 组件已正确设置 id 属性;2) 地图已完成初始化');
|
|
26
|
+
// 返回一个空实现,避免运行时错误
|
|
27
|
+
return new MapContextImpl(null);
|
|
28
|
+
}
|
|
29
|
+
// 创建并返回 MapContextImpl 实例
|
|
30
|
+
return new MapContextImpl(mapInstance);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { createMapContext };
|
|
34
|
+
//# sourceMappingURL=createMapContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMapContext.js","sources":["../../../../src/components/map/createMapContext.ts"],"sourcesContent":["import { getMapInstance, MapContextImpl } from './MapContext'\n\n/**\n * 创建地图上下文 MapContext 对象\n *\n * @deprecated 请使用 Taro.createMapContext 代替\n *\n * 此导出仅用于向后兼容,将在未来版本中移除。\n *\n * 推荐用法:\n * ```tsx\n * import Taro from '@tarojs/taro'\n *\n * const mapCtx = Taro.createMapContext('mapId')\n * ```\n *\n * @param mapId Map 组件的 id\n * @param component 自定义组件实例(暂未使用)\n * @returns MapContext 实例\n */\nexport function createMapContext(\n mapId: string,\n _component?: any\n): MapContextImpl {\n // 获取地图实例\n const mapInstance = getMapInstance(mapId)\n\n if (!mapInstance) {\n console.warn(\n '[createMapContext] 找不到 id 为 \"' + mapId + '\" 的地图实例,' +\n '请确保:1) Map 组件已正确设置 id 属性;2) 地图已完成初始化'\n )\n // 返回一个空实现,避免运行时错误\n return new MapContextImpl(null)\n }\n\n // 创建并返回 MapContextImpl 实例\n return new MapContextImpl(mapInstance)\n}\n"],"names":["createMapContext","mapId","_component","mapInstance","getMapInstance","console","warn","MapContextImpl"],"mappings":";;AAEA;;;;;;;;;;;;;;;;;AAiBG;AACa,SAAAA,gBAAgBA,CAC9BC,KAAa,EACbC,UAAgB,EAAA;AAEhB;AACA,EAAA,MAAMC,WAAW,GAAGC,cAAc,CAACH,KAAK,CAAC;EAEzC,IAAI,CAACE,WAAW,EAAE;IAChBE,OAAO,CAACC,IAAI,CACV,+BAA+B,GAAGL,KAAK,GAAG,UAAU,GACpD,sCAAsC,CACvC;AACD;AACA,IAAA,OAAO,IAAIM,cAAc,CAAC,IAAI,CAAC;AACjC;AAEA;AACA,EAAA,OAAO,IAAIA,cAAc,CAACJ,WAAW,CAAC;AACxC;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { isFunction } from '@tarojs/shared';
|
|
2
|
+
|
|
3
|
+
class MethodHandler {
|
|
4
|
+
constructor(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
name,
|
|
7
|
+
success,
|
|
8
|
+
fail,
|
|
9
|
+
complete
|
|
10
|
+
} = _ref;
|
|
11
|
+
this.isHandlerError = false;
|
|
12
|
+
this.methodName = name;
|
|
13
|
+
this.__success = success;
|
|
14
|
+
this.__fail = fail;
|
|
15
|
+
this.__complete = complete;
|
|
16
|
+
this.isHandlerError = isFunction(this.__complete) || isFunction(this.__fail);
|
|
17
|
+
}
|
|
18
|
+
success() {
|
|
19
|
+
let res = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
20
|
+
let promise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
21
|
+
if (!res.errMsg) {
|
|
22
|
+
res.errMsg = `${this.methodName}:ok`;
|
|
23
|
+
}
|
|
24
|
+
isFunction(this.__success) && this.__success(res);
|
|
25
|
+
isFunction(this.__complete) && this.__complete(res);
|
|
26
|
+
const {
|
|
27
|
+
resolve = Promise.resolve.bind(Promise)
|
|
28
|
+
} = promise;
|
|
29
|
+
return resolve(res);
|
|
30
|
+
}
|
|
31
|
+
fail() {
|
|
32
|
+
let res = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
33
|
+
let promise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
34
|
+
if (!res.errMsg) {
|
|
35
|
+
res.errMsg = `${this.methodName}:fail`;
|
|
36
|
+
} else {
|
|
37
|
+
res.errMsg = `${this.methodName}:fail ${res.errMsg}`;
|
|
38
|
+
}
|
|
39
|
+
isFunction(this.__fail) && this.__fail(res);
|
|
40
|
+
isFunction(this.__complete) && this.__complete(res);
|
|
41
|
+
const {
|
|
42
|
+
resolve = Promise.resolve.bind(Promise),
|
|
43
|
+
reject = Promise.reject.bind(Promise)
|
|
44
|
+
} = promise;
|
|
45
|
+
return this.isHandlerError ? resolve(res) : reject(res);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { MethodHandler };
|
|
50
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sources":["../../../../src/components/map/handler.ts"],"sourcesContent":["import { isFunction } from '@tarojs/shared'\n\ntype TCallback<T = Partial<TaroGeneral.CallbackResult>> = (res: T) => Promise<void> | void\ninterface IMethodParam<T = Partial<TaroGeneral.CallbackResult>> {\n name: string\n success?: TCallback<T & TaroGeneral.CallbackResult>\n fail?: TCallback\n complete?: TCallback\n}\ninterface IMockPromise {\n resolve?: typeof Promise.resolve | TFunc\n reject?: typeof Promise.reject | TFunc\n}\n\nexport class MethodHandler<T = Partial<TaroGeneral.CallbackResult>> {\n methodName: string\n\n protected __success?: TCallback<T>\n protected __fail?: TCallback\n protected __complete?: TCallback\n\n protected isHandlerError = false\n\n constructor ({ name, success, fail, complete }: IMethodParam<T>) {\n this.methodName = name\n this.__success = success\n this.__fail = fail\n this.__complete = complete\n\n this.isHandlerError = isFunction(this.__complete) || isFunction(this.__fail)\n }\n\n success<U = Record<string, unknown>> (res: Partial<T> & Partial<TaroGeneral.CallbackResult> = {}, promise: IMockPromise = {}): Promise<T & U & TaroGeneral.CallbackResult> {\n if (!res.errMsg) {\n res.errMsg = `${this.methodName}:ok`\n }\n isFunction(this.__success) && this.__success(res as T)\n isFunction(this.__complete) && this.__complete(res)\n\n const { resolve = Promise.resolve.bind(Promise) } = promise\n return resolve(res as Required<T & U & TaroGeneral.CallbackResult>)\n }\n\n fail<U = Record<string, unknown>> (res: Partial<T> & Partial<TaroGeneral.CallbackResult> = {}, promise: IMockPromise = {}): Promise<T & U & TaroGeneral.CallbackResult> {\n if (!res.errMsg) {\n res.errMsg = `${this.methodName}:fail`\n } else {\n res.errMsg = `${this.methodName}:fail ${res.errMsg}`\n }\n isFunction(this.__fail) && this.__fail(res)\n isFunction(this.__complete) && this.__complete(res)\n\n const {\n resolve = Promise.resolve.bind(Promise),\n reject = Promise.reject.bind(Promise)\n } = promise\n return this.isHandlerError\n ? resolve(res as Required<T & U & TaroGeneral.CallbackResult>)\n : reject(res)\n }\n}\n\ntype TFunc = (...args: any[]) => any\n"],"names":["MethodHandler","constructor","_ref","name","success","fail","complete","isHandlerError","methodName","__success","__fail","__complete","isFunction","res","arguments","length","undefined","promise","errMsg","resolve","Promise","bind","reject"],"mappings":";;MAcaA,aAAa,CAAA;EASxBC,WAAaA,CAAAC,IAAA,EAAkD;IAAA,IAAlD;MAAEC,IAAI;MAAEC,OAAO;MAAEC,IAAI;AAAEC,MAAAA;AAA2B,KAAA,GAAAJ,IAAA;IAFrD,IAAc,CAAAK,cAAA,GAAG,KAAK;IAG9B,IAAI,CAACC,UAAU,GAAGL,IAAI;IACtB,IAAI,CAACM,SAAS,GAAGL,OAAO;IACxB,IAAI,CAACM,MAAM,GAAGL,IAAI;IAClB,IAAI,CAACM,UAAU,GAAGL,QAAQ;AAE1B,IAAA,IAAI,CAACC,cAAc,GAAGK,UAAU,CAAC,IAAI,CAACD,UAAU,CAAC,IAAIC,UAAU,CAAC,IAAI,CAACF,MAAM,CAAC;AAC9E;AAEAN,EAAAA,OAAOA,GAAqH;AAAA,IAAA,IAAtFS,GAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAwD,EAAE;AAAA,IAAA,IAAEG,8EAAwB,EAAE;AAC1H,IAAA,IAAI,CAACJ,GAAG,CAACK,MAAM,EAAE;AACfL,MAAAA,GAAG,CAACK,MAAM,GAAG,GAAG,IAAI,CAACV,UAAU,CAAK,GAAA,CAAA;AACtC;IACAI,UAAU,CAAC,IAAI,CAACH,SAAS,CAAC,IAAI,IAAI,CAACA,SAAS,CAACI,GAAQ,CAAC;IACtDD,UAAU,CAAC,IAAI,CAACD,UAAU,CAAC,IAAI,IAAI,CAACA,UAAU,CAACE,GAAG,CAAC;IAEnD,MAAM;AAAEM,MAAAA,OAAO,GAAGC,OAAO,CAACD,OAAO,CAACE,IAAI,CAACD,OAAO;AAAG,KAAA,GAAGH,OAAO;IAC3D,OAAOE,OAAO,CAACN,GAAmD,CAAC;AACrE;AAEAR,EAAAA,IAAIA,GAAqH;AAAA,IAAA,IAAtFQ,GAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAwD,EAAE;AAAA,IAAA,IAAEG,8EAAwB,EAAE;AACvH,IAAA,IAAI,CAACJ,GAAG,CAACK,MAAM,EAAE;AACfL,MAAAA,GAAG,CAACK,MAAM,GAAG,GAAG,IAAI,CAACV,UAAU,CAAO,KAAA,CAAA;AACxC,KAAC,MAAM;MACLK,GAAG,CAACK,MAAM,GAAG,CAAG,EAAA,IAAI,CAACV,UAAU,CAASK,MAAAA,EAAAA,GAAG,CAACK,MAAM,CAAE,CAAA;AACtD;IACAN,UAAU,CAAC,IAAI,CAACF,MAAM,CAAC,IAAI,IAAI,CAACA,MAAM,CAACG,GAAG,CAAC;IAC3CD,UAAU,CAAC,IAAI,CAACD,UAAU,CAAC,IAAI,IAAI,CAACA,UAAU,CAACE,GAAG,CAAC;IAEnD,MAAM;MACJM,OAAO,GAAGC,OAAO,CAACD,OAAO,CAACE,IAAI,CAACD,OAAO,CAAC;AACvCE,MAAAA,MAAM,GAAGF,OAAO,CAACE,MAAM,CAACD,IAAI,CAACD,OAAO;AAAC,KACtC,GAAGH,OAAO;AACX,IAAA,OAAO,IAAI,CAACV,cAAc,GACtBY,OAAO,CAACN,GAAmD,CAAC,GAC5DS,MAAM,CAACT,GAAG,CAAC;AACjB;AACD;;;;"}
|