@tarojs/components-react 4.1.12-beta.33 → 4.1.12-beta.35
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 +308 -22
- package/dist/components/map/MapContext.js.map +1 -1
- package/dist/components/map/index.js +7 -1
- package/dist/components/map/index.js.map +1 -1
- package/dist/original/components/map/MapContext.js +308 -22
- package/dist/original/components/map/MapContext.js.map +1 -1
- package/dist/original/components/map/index.js +7 -1
- package/dist/original/components/map/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -127,9 +127,32 @@ class MapContextImpl {
|
|
|
127
127
|
* 获取当前地图中心的经纬度
|
|
128
128
|
* @supported weapp, tt
|
|
129
129
|
*/
|
|
130
|
-
getCenterLocation(
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
getCenterLocation(option) {
|
|
131
|
+
const handle = new MethodHandler({
|
|
132
|
+
name: 'getCenterLocation',
|
|
133
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
134
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
135
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
136
|
+
});
|
|
137
|
+
if (!this.map) {
|
|
138
|
+
return handle.fail({
|
|
139
|
+
errMsg: '地图实例不存在'
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
// 调用腾讯地图 API: map.getCenter()
|
|
144
|
+
const center = this.map.getCenter();
|
|
145
|
+
console.log(logPrefix, '[MapContext.getCenterLocation] 执行成功:', center);
|
|
146
|
+
return handle.success({
|
|
147
|
+
latitude: center.lat,
|
|
148
|
+
longitude: center.lng
|
|
149
|
+
});
|
|
150
|
+
} catch (error) {
|
|
151
|
+
console.error(logPrefix, '[MapContext.getCenterLocation] 执行失败:', error);
|
|
152
|
+
return handle.fail({
|
|
153
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
154
|
+
});
|
|
155
|
+
}
|
|
133
156
|
}
|
|
134
157
|
/**
|
|
135
158
|
* 设置定位点图标
|
|
@@ -143,9 +166,44 @@ class MapContextImpl {
|
|
|
143
166
|
* 将地图中心移置当前定位点
|
|
144
167
|
* @supported weapp, tt
|
|
145
168
|
*/
|
|
146
|
-
moveToLocation(
|
|
147
|
-
|
|
148
|
-
|
|
169
|
+
moveToLocation(option) {
|
|
170
|
+
const handle = new MethodHandler({
|
|
171
|
+
name: 'moveToLocation',
|
|
172
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
173
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
174
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
175
|
+
});
|
|
176
|
+
if (!this.map) {
|
|
177
|
+
return handle.fail({
|
|
178
|
+
errMsg: '地图实例不存在'
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
try {
|
|
182
|
+
const {
|
|
183
|
+
latitude,
|
|
184
|
+
longitude
|
|
185
|
+
} = option;
|
|
186
|
+
console.log(logPrefix, '[MapContext.moveToLocation] 开始执行:', {
|
|
187
|
+
latitude,
|
|
188
|
+
longitude
|
|
189
|
+
});
|
|
190
|
+
// 参数校验
|
|
191
|
+
if (latitude === undefined || longitude === undefined) {
|
|
192
|
+
return handle.fail({
|
|
193
|
+
errMsg: 'latitude 和 longitude 参数必须提供'
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
// 调用腾讯地图 API: map.panTo()
|
|
197
|
+
const latLng = new TMap.LatLng(latitude, longitude);
|
|
198
|
+
this.map.panTo(latLng, {});
|
|
199
|
+
console.log(logPrefix, '[MapContext.moveToLocation] 执行成功');
|
|
200
|
+
return handle.success({});
|
|
201
|
+
} catch (error) {
|
|
202
|
+
console.error(logPrefix, '[MapContext.moveToLocation] 执行失败:', error);
|
|
203
|
+
return handle.fail({
|
|
204
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
205
|
+
});
|
|
206
|
+
}
|
|
149
207
|
}
|
|
150
208
|
/**
|
|
151
209
|
* 平移marker,带动画
|
|
@@ -160,46 +218,175 @@ class MapContextImpl {
|
|
|
160
218
|
*/
|
|
161
219
|
moveAlong(_object) {
|
|
162
220
|
console.warn(logPrefix, '[MapContext.moveAlong] 暂未实现');
|
|
221
|
+
throw new Error('moveAlong: 暂未实现');
|
|
163
222
|
}
|
|
164
223
|
/**
|
|
165
224
|
* 获取当前地图的视野范围
|
|
166
225
|
* @supported weapp, tt
|
|
167
226
|
*/
|
|
168
227
|
getRegion(option) {
|
|
169
|
-
|
|
170
|
-
|
|
228
|
+
const handle = new MethodHandler({
|
|
229
|
+
name: 'getRegion',
|
|
230
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
231
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
232
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
233
|
+
});
|
|
234
|
+
if (!this.map) {
|
|
235
|
+
return handle.fail({
|
|
236
|
+
errMsg: '地图实例不存在'
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
try {
|
|
240
|
+
// 调用腾讯地图 API: map.getBounds()
|
|
241
|
+
const bounds = this.map.getBounds();
|
|
242
|
+
console.log(logPrefix, '[MapContext.getRegion] 执行成功:', bounds);
|
|
243
|
+
const sw = bounds.getSouthWest();
|
|
244
|
+
const ne = bounds.getNorthEast();
|
|
245
|
+
return handle.success({
|
|
246
|
+
southwest: {
|
|
247
|
+
latitude: sw.lat,
|
|
248
|
+
longitude: sw.lng
|
|
249
|
+
},
|
|
250
|
+
northeast: {
|
|
251
|
+
latitude: ne.lat,
|
|
252
|
+
longitude: ne.lng
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
} catch (error) {
|
|
256
|
+
console.error(logPrefix, '[MapContext.getRegion] 执行失败:', error);
|
|
257
|
+
return handle.fail({
|
|
258
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
259
|
+
});
|
|
260
|
+
}
|
|
171
261
|
}
|
|
172
262
|
/**
|
|
173
263
|
* 获取当前地图的旋转角
|
|
174
264
|
* @supported weapp, tt
|
|
175
265
|
*/
|
|
176
266
|
getRotate(option) {
|
|
177
|
-
|
|
178
|
-
|
|
267
|
+
const handle = new MethodHandler({
|
|
268
|
+
name: 'getRotate',
|
|
269
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
270
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
271
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
272
|
+
});
|
|
273
|
+
if (!this.map) {
|
|
274
|
+
return handle.fail({
|
|
275
|
+
errMsg: '地图实例不存在'
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
try {
|
|
279
|
+
// 调用腾讯地图 API: map.getRotation()
|
|
280
|
+
const rotate = this.map.getRotation();
|
|
281
|
+
console.log(logPrefix, '[MapContext.getRotate] 执行成功:', rotate);
|
|
282
|
+
return handle.success({
|
|
283
|
+
rotate: rotate
|
|
284
|
+
});
|
|
285
|
+
} catch (error) {
|
|
286
|
+
console.error(logPrefix, '[MapContext.getRotate] 执行失败:', error);
|
|
287
|
+
return handle.fail({
|
|
288
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
289
|
+
});
|
|
290
|
+
}
|
|
179
291
|
}
|
|
180
292
|
/**
|
|
181
293
|
* 获取当前地图的倾斜角
|
|
182
294
|
* @supported weapp, tt
|
|
183
295
|
*/
|
|
184
296
|
getSkew(option) {
|
|
185
|
-
|
|
186
|
-
|
|
297
|
+
const handle = new MethodHandler({
|
|
298
|
+
name: 'getSkew',
|
|
299
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
300
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
301
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
302
|
+
});
|
|
303
|
+
if (!this.map) {
|
|
304
|
+
return handle.fail({
|
|
305
|
+
errMsg: '地图实例不存在'
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
try {
|
|
309
|
+
// 调用腾讯地图 API: map.getPitch()
|
|
310
|
+
const skew = this.map.getPitch();
|
|
311
|
+
console.log(logPrefix, '[MapContext.getSkew] 执行成功:', skew);
|
|
312
|
+
return handle.success({
|
|
313
|
+
skew: skew
|
|
314
|
+
});
|
|
315
|
+
} catch (error) {
|
|
316
|
+
console.error(logPrefix, '[MapContext.getSkew] 执行失败:', error);
|
|
317
|
+
return handle.fail({
|
|
318
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
319
|
+
});
|
|
320
|
+
}
|
|
187
321
|
}
|
|
188
322
|
/**
|
|
189
323
|
* 获取当前地图的缩放级别
|
|
190
324
|
* @supported weapp, tt
|
|
191
325
|
*/
|
|
192
326
|
getScale(option) {
|
|
193
|
-
|
|
194
|
-
|
|
327
|
+
const handle = new MethodHandler({
|
|
328
|
+
name: 'getScale',
|
|
329
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
330
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
331
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
332
|
+
});
|
|
333
|
+
if (!this.map) {
|
|
334
|
+
return handle.fail({
|
|
335
|
+
errMsg: '地图实例不存在'
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
try {
|
|
339
|
+
// 调用腾讯地图 API: map.getZoom()
|
|
340
|
+
const scale = this.map.getZoom();
|
|
341
|
+
console.log(logPrefix, '[MapContext.getScale] 执行成功:', scale);
|
|
342
|
+
return handle.success({
|
|
343
|
+
scale: scale
|
|
344
|
+
});
|
|
345
|
+
} catch (error) {
|
|
346
|
+
console.error(logPrefix, '[MapContext.getScale] 执行失败:', error);
|
|
347
|
+
return handle.fail({
|
|
348
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
349
|
+
});
|
|
350
|
+
}
|
|
195
351
|
}
|
|
196
352
|
/**
|
|
197
353
|
* 设置地图中心点偏移
|
|
198
354
|
* @supported weapp, tt
|
|
199
355
|
*/
|
|
200
356
|
setCenterOffset(option) {
|
|
201
|
-
|
|
202
|
-
|
|
357
|
+
const handle = new MethodHandler({
|
|
358
|
+
name: 'setCenterOffset',
|
|
359
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
360
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
361
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
362
|
+
});
|
|
363
|
+
if (!this.map) {
|
|
364
|
+
return handle.fail({
|
|
365
|
+
errMsg: '地图实例不存在'
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
try {
|
|
369
|
+
const {
|
|
370
|
+
offset
|
|
371
|
+
} = option;
|
|
372
|
+
console.log(logPrefix, '[MapContext.setCenterOffset] 开始执行:', {
|
|
373
|
+
offset
|
|
374
|
+
});
|
|
375
|
+
// 转换 offset 格式: Taro [x, y] -> TMap {x, y}
|
|
376
|
+
const offsetOption = {
|
|
377
|
+
x: offset[0],
|
|
378
|
+
y: offset[1]
|
|
379
|
+
};
|
|
380
|
+
// 调用腾讯地图 API: map.setOffset()
|
|
381
|
+
this.map.setOffset(offsetOption);
|
|
382
|
+
console.log(logPrefix, '[MapContext.setCenterOffset] 执行成功');
|
|
383
|
+
return handle.success({});
|
|
384
|
+
} catch (error) {
|
|
385
|
+
console.error(logPrefix, '[MapContext.setCenterOffset] 执行失败:', error);
|
|
386
|
+
return handle.fail({
|
|
387
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
388
|
+
});
|
|
389
|
+
}
|
|
203
390
|
}
|
|
204
391
|
/**
|
|
205
392
|
* 移除个性化图层
|
|
@@ -262,8 +449,40 @@ class MapContextImpl {
|
|
|
262
449
|
* @supported weapp
|
|
263
450
|
*/
|
|
264
451
|
setBoundary(option) {
|
|
265
|
-
|
|
266
|
-
|
|
452
|
+
const handle = new MethodHandler({
|
|
453
|
+
name: 'setBoundary',
|
|
454
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
455
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
456
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
457
|
+
});
|
|
458
|
+
if (!this.map) {
|
|
459
|
+
return handle.fail({
|
|
460
|
+
errMsg: '地图实例不存在'
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
try {
|
|
464
|
+
const {
|
|
465
|
+
southwest,
|
|
466
|
+
northeast
|
|
467
|
+
} = option;
|
|
468
|
+
console.log(logPrefix, '[MapContext.setBoundary] 开始执行:', {
|
|
469
|
+
southwest,
|
|
470
|
+
northeast
|
|
471
|
+
});
|
|
472
|
+
// 转换坐标格式: {latitude, longitude} -> TMap.LatLng
|
|
473
|
+
const sw = new TMap.LatLng(southwest.latitude, southwest.longitude);
|
|
474
|
+
const ne = new TMap.LatLng(northeast.latitude, northeast.longitude);
|
|
475
|
+
const bounds = new TMap.LatLngBounds(sw, ne);
|
|
476
|
+
// 调用腾讯地图 API: map.setBoundary()
|
|
477
|
+
this.map.setBoundary(bounds);
|
|
478
|
+
console.log(logPrefix, '[MapContext.setBoundary] 执行成功');
|
|
479
|
+
return handle.success({});
|
|
480
|
+
} catch (error) {
|
|
481
|
+
console.error(logPrefix, '[MapContext.setBoundary] 执行失败:', error);
|
|
482
|
+
return handle.fail({
|
|
483
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
484
|
+
});
|
|
485
|
+
}
|
|
267
486
|
}
|
|
268
487
|
/**
|
|
269
488
|
* 更新自定义图片图层
|
|
@@ -286,16 +505,82 @@ class MapContextImpl {
|
|
|
286
505
|
* @supported weapp
|
|
287
506
|
*/
|
|
288
507
|
toScreenLocation(option) {
|
|
289
|
-
|
|
290
|
-
|
|
508
|
+
const handle = new MethodHandler({
|
|
509
|
+
name: 'toScreenLocation',
|
|
510
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
511
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
512
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
513
|
+
});
|
|
514
|
+
if (!this.map) {
|
|
515
|
+
return handle.fail({
|
|
516
|
+
errMsg: '地图实例不存在'
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
try {
|
|
520
|
+
const {
|
|
521
|
+
latitude,
|
|
522
|
+
longitude
|
|
523
|
+
} = option;
|
|
524
|
+
console.log(logPrefix, '[MapContext.toScreenLocation] 开始执行:', {
|
|
525
|
+
latitude,
|
|
526
|
+
longitude
|
|
527
|
+
});
|
|
528
|
+
// 转换坐标格式: {latitude, longitude} -> TMap.LatLng
|
|
529
|
+
const latLng = new TMap.LatLng(latitude, longitude);
|
|
530
|
+
// 调用腾讯地图 API: map.projectToContainer()
|
|
531
|
+
const point = this.map.projectToContainer(latLng);
|
|
532
|
+
console.log(logPrefix, '[MapContext.toScreenLocation] 执行成功:', point);
|
|
533
|
+
return handle.success({
|
|
534
|
+
x: point.x,
|
|
535
|
+
y: point.y
|
|
536
|
+
});
|
|
537
|
+
} catch (error) {
|
|
538
|
+
console.error(logPrefix, '[MapContext.toScreenLocation] 执行失败:', error);
|
|
539
|
+
return handle.fail({
|
|
540
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
541
|
+
});
|
|
542
|
+
}
|
|
291
543
|
}
|
|
292
544
|
/**
|
|
293
545
|
* 获取屏幕上的点对应的经纬度
|
|
294
546
|
* @supported weapp
|
|
295
547
|
*/
|
|
296
548
|
fromScreenLocation(option) {
|
|
297
|
-
|
|
298
|
-
|
|
549
|
+
const handle = new MethodHandler({
|
|
550
|
+
name: 'fromScreenLocation',
|
|
551
|
+
success: option === null || option === void 0 ? void 0 : option.success,
|
|
552
|
+
fail: option === null || option === void 0 ? void 0 : option.fail,
|
|
553
|
+
complete: option === null || option === void 0 ? void 0 : option.complete
|
|
554
|
+
});
|
|
555
|
+
if (!this.map) {
|
|
556
|
+
return handle.fail({
|
|
557
|
+
errMsg: '地图实例不存在'
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
try {
|
|
561
|
+
const {
|
|
562
|
+
x,
|
|
563
|
+
y
|
|
564
|
+
} = option;
|
|
565
|
+
console.log(logPrefix, '[MapContext.fromScreenLocation] 开始执行:', {
|
|
566
|
+
x,
|
|
567
|
+
y
|
|
568
|
+
});
|
|
569
|
+
// 转换坐标格式: {x, y} -> TMap.Point
|
|
570
|
+
const point = new TMap.Point(x, y);
|
|
571
|
+
// 调用腾讯地图 API: map.unprojectFromContainer()
|
|
572
|
+
const latLng = this.map.unprojectFromContainer(point);
|
|
573
|
+
console.log(logPrefix, '[MapContext.fromScreenLocation] 执行成功:', latLng);
|
|
574
|
+
return handle.success({
|
|
575
|
+
latitude: latLng.lat,
|
|
576
|
+
longitude: latLng.lng
|
|
577
|
+
});
|
|
578
|
+
} catch (error) {
|
|
579
|
+
console.error(logPrefix, '[MapContext.fromScreenLocation] 执行失败:', error);
|
|
580
|
+
return handle.fail({
|
|
581
|
+
errMsg: (error === null || error === void 0 ? void 0 : error.message) || String(error)
|
|
582
|
+
});
|
|
583
|
+
}
|
|
299
584
|
}
|
|
300
585
|
/**
|
|
301
586
|
* 拉起地图APP选择导航
|
|
@@ -335,6 +620,7 @@ class MapContextImpl {
|
|
|
335
620
|
*/
|
|
336
621
|
on(event, callback) {
|
|
337
622
|
console.warn(logPrefix, '[MapContext.on] 暂未实现', event, callback);
|
|
623
|
+
throw new Error('on: 暂未实现');
|
|
338
624
|
}
|
|
339
625
|
}
|
|
340
626
|
|
|
@@ -1 +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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"}
|
|
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 const handle = new MethodHandler({\n name: 'getCenterLocation',\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 // 调用腾讯地图 API: map.getCenter()\n const center = this.map.getCenter()\n console.log(logPrefix, '[MapContext.getCenterLocation] 执行成功:', center)\n\n return handle.success({\n latitude: center.lat,\n longitude: center.lng,\n })\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.getCenterLocation] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\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 const handle = new MethodHandler({\n name: 'moveToLocation',\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 { latitude, longitude } = option\n console.log(logPrefix, '[MapContext.moveToLocation] 开始执行:', { latitude, longitude })\n\n // 参数校验\n if (latitude === undefined || longitude === undefined) {\n return handle.fail({ errMsg: 'latitude 和 longitude 参数必须提供' })\n }\n\n // 调用腾讯地图 API: map.panTo()\n const latLng = new TMap.LatLng(latitude, longitude)\n this.map.panTo(latLng, {} as any)\n\n console.log(logPrefix, '[MapContext.moveToLocation] 执行成功')\n return handle.success({})\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.moveToLocation] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\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 throw new Error('moveAlong: 暂未实现')\n }\n\n /**\n * 获取当前地图的视野范围\n * @supported weapp, tt\n */\n getRegion(option?: TaroMapContext.GetRegionOption): Promise<TaroMapContext.GetRegionSuccessCallbackResult> {\n const handle = new MethodHandler({\n name: 'getRegion',\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 // 调用腾讯地图 API: map.getBounds()\n const bounds = this.map.getBounds()\n console.log(logPrefix, '[MapContext.getRegion] 执行成功:', bounds)\n\n const sw = bounds.getSouthWest()\n const ne = bounds.getNorthEast()\n\n return handle.success({\n southwest: {\n latitude: sw.lat,\n longitude: sw.lng,\n },\n northeast: {\n latitude: ne.lat,\n longitude: ne.lng,\n },\n })\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.getRegion] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\n }\n\n /**\n * 获取当前地图的旋转角\n * @supported weapp, tt\n */\n getRotate(option?: TaroMapContext.GetRotateOption): Promise<TaroMapContext.GetRotateSuccessCallbackResult> {\n const handle = new MethodHandler({\n name: 'getRotate',\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 // 调用腾讯地图 API: map.getRotation()\n const rotate = this.map.getRotation()\n console.log(logPrefix, '[MapContext.getRotate] 执行成功:', rotate)\n\n return handle.success({\n rotate: rotate,\n })\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.getRotate] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\n }\n\n /**\n * 获取当前地图的倾斜角\n * @supported weapp, tt\n */\n getSkew(option?: TaroMapContext.GetSkewOption): Promise<TaroMapContext.GetSkewSuccessCallbackResult> {\n const handle = new MethodHandler({\n name: 'getSkew',\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 // 调用腾讯地图 API: map.getPitch()\n const skew = this.map.getPitch()\n console.log(logPrefix, '[MapContext.getSkew] 执行成功:', skew)\n\n return handle.success({\n skew: skew,\n })\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.getSkew] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\n }\n\n /**\n * 获取当前地图的缩放级别\n * @supported weapp, tt\n */\n getScale(option?: TaroMapContext.GetScaleOption): Promise<TaroMapContext.GetScaleSuccessCallbackResult> {\n const handle = new MethodHandler({\n name: 'getScale',\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 // 调用腾讯地图 API: map.getZoom()\n const scale = this.map.getZoom()\n console.log(logPrefix, '[MapContext.getScale] 执行成功:', scale)\n\n return handle.success({\n scale: scale,\n })\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.getScale] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\n }\n\n /**\n * 设置地图中心点偏移\n * @supported weapp, tt\n */\n setCenterOffset(option: TaroMapContext.SetCenterOffsetOption): Promise<TaroGeneral.CallbackResult> {\n const handle = new MethodHandler({\n name: 'setCenterOffset',\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 { offset } = option\n console.log(logPrefix, '[MapContext.setCenterOffset] 开始执行:', { offset })\n\n // 转换 offset 格式: Taro [x, y] -> TMap {x, y}\n const offsetOption = {\n x: offset[0],\n y: offset[1],\n }\n\n // 调用腾讯地图 API: map.setOffset()\n this.map.setOffset(offsetOption)\n\n console.log(logPrefix, '[MapContext.setCenterOffset] 执行成功')\n return handle.success({})\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.setCenterOffset] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\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 const handle = new MethodHandler({\n name: 'setBoundary',\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 { southwest, northeast } = option\n console.log(logPrefix, '[MapContext.setBoundary] 开始执行:', { southwest, northeast })\n\n // 转换坐标格式: {latitude, longitude} -> TMap.LatLng\n const sw = new TMap.LatLng(southwest.latitude, southwest.longitude)\n const ne = new TMap.LatLng(northeast.latitude, northeast.longitude)\n const bounds = new TMap.LatLngBounds(sw, ne)\n\n // 调用腾讯地图 API: map.setBoundary()\n this.map.setBoundary(bounds)\n\n console.log(logPrefix, '[MapContext.setBoundary] 执行成功')\n return handle.success({})\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.setBoundary] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\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 const handle = new MethodHandler({\n name: 'toScreenLocation',\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 { latitude, longitude } = option\n console.log(logPrefix, '[MapContext.toScreenLocation] 开始执行:', { latitude, longitude })\n\n // 转换坐标格式: {latitude, longitude} -> TMap.LatLng\n const latLng = new TMap.LatLng(latitude, longitude)\n\n // 调用腾讯地图 API: map.projectToContainer()\n const point = this.map.projectToContainer(latLng)\n\n console.log(logPrefix, '[MapContext.toScreenLocation] 执行成功:', point)\n return handle.success({\n x: point.x,\n y: point.y,\n })\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.toScreenLocation] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\n }\n\n /**\n * 获取屏幕上的点对应的经纬度\n * @supported weapp\n */\n fromScreenLocation(option: TaroMapContext.FromScreenLocationOption): Promise<TaroGeneral.CallbackResult> {\n const handle = new MethodHandler({\n name: 'fromScreenLocation',\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 { x, y } = option\n console.log(logPrefix, '[MapContext.fromScreenLocation] 开始执行:', { x, y })\n\n // 转换坐标格式: {x, y} -> TMap.Point\n const point = new TMap.Point(x, y)\n\n // 调用腾讯地图 API: map.unprojectFromContainer()\n const latLng = this.map.unprojectFromContainer(point)\n\n console.log(logPrefix, '[MapContext.fromScreenLocation] 执行成功:', latLng)\n return handle.success({\n latitude: latLng.lat,\n longitude: latLng.lng,\n })\n } catch (error: any) {\n console.error(logPrefix, '[MapContext.fromScreenLocation] 执行失败:', error)\n return handle.fail({ errMsg: error?.message || String(error) })\n }\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 throw new Error('on: 暂未实现')\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","center","getCenter","lat","lng","setLocMarkerIcon","_option","Promise","reject","Error","moveToLocation","undefined","panTo","translateMarker","moveAlong","_object","getRegion","getBounds","sw","getSouthWest","ne","getNorthEast","southwest","northeast","getRotate","rotate","getRotation","getSkew","skew","getPitch","getScale","scale","getZoom","setCenterOffset","offset","offsetOption","x","y","setOffset","removeCustomLayer","addCustomLayer","addGroundOverlay","addVisualLayer","removeVisualLayer","addArc","removeArc","setBoundary","updateGroundOverlay","removeGroundOverlay","toScreenLocation","point","projectToContainer","fromScreenLocation","Point","unprojectFromContainer","openMapApp","addMarkers","removeMarkers","initMarkerCluster","on","event","callback"],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ function Map(props) {
|
|
|
21
21
|
minScale,
|
|
22
22
|
maxScale,
|
|
23
23
|
enableRotate,
|
|
24
|
+
rotate,
|
|
25
|
+
skew,
|
|
24
26
|
markers,
|
|
25
27
|
polyline,
|
|
26
28
|
onTap,
|
|
@@ -115,7 +117,7 @@ function Map(props) {
|
|
|
115
117
|
});
|
|
116
118
|
/** ************************适配options参数********************** */
|
|
117
119
|
const hasCenter = typeof latitude === 'number' && typeof longitude === 'number';
|
|
118
|
-
const mergedOptions = Object.assign(Object.assign({}, hasCenter ? {
|
|
120
|
+
const mergedOptions = Object.assign(Object.assign(Object.assign(Object.assign({}, hasCenter ? {
|
|
119
121
|
center: {
|
|
120
122
|
lat: latitude,
|
|
121
123
|
lng: longitude
|
|
@@ -125,6 +127,10 @@ function Map(props) {
|
|
|
125
127
|
minZoom: minScale !== null && minScale !== void 0 ? minScale : 3,
|
|
126
128
|
maxZoom: maxScale !== null && maxScale !== void 0 ? maxScale : 20,
|
|
127
129
|
rotatable: enableRotate !== null && enableRotate !== void 0 ? enableRotate : false
|
|
130
|
+
}), typeof rotate === 'number' && {
|
|
131
|
+
rotation: rotate
|
|
132
|
+
}), typeof skew === 'number' && {
|
|
133
|
+
pitch: skew
|
|
128
134
|
});
|
|
129
135
|
/** ************************处理事件********************** */
|
|
130
136
|
// Taro: onTap;腾讯地图: click
|