@vtx/ol-map 2.0.0-beta.14 → 2.0.0-beta.16

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.
@@ -9,7 +9,7 @@ var _react = _interopRequireWildcard(require("react"));
9
9
  var _antd = require("antd");
10
10
  var _Modal = _interopRequireDefault(require("../../components/Modal"));
11
11
  var _jspdf = require("jspdf");
12
- var _snapdom = require("@zumer/snapdom");
12
+ var _html2canvas = _interopRequireDefault(require("html2canvas"));
13
13
  var _interaction = require("ol/interaction");
14
14
  var _Vector = _interopRequireDefault(require("ol/layer/Vector"));
15
15
  var _Tile = _interopRequireDefault(require("ol/layer/Tile"));
@@ -22,11 +22,11 @@ var _olMap = require("@vtx/ol-map");
22
22
  require("./index.less");
23
23
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
24
24
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
25
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
25
26
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
26
27
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
27
28
  function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
28
29
  function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
29
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
30
30
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
31
31
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
32
32
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
@@ -41,7 +41,7 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructur
41
41
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
42
42
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
43
43
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
44
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
44
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } // import { snapdom } from '@zumer/snapdom';
45
45
  var pageSizeOptions = ['A4', 'A3', 'A2', 'A1', 'A0'];
46
46
  var pageSizeMap = {
47
47
  A4: {
@@ -321,35 +321,106 @@ var waitMapRender = function waitMapRender(mapInstance) {
321
321
  (_mapInstance$renderSy = mapInstance.renderSync) === null || _mapInstance$renderSy === void 0 || _mapInstance$renderSy.call(mapInstance);
322
322
  });
323
323
  };
324
-
325
- // 统一用 html2canvas 截取隐藏导出地图的 DOM,
326
- // 预览图和最终分幅图片都走这条截图链路。
327
- var captureDomCanvas = /*#__PURE__*/function () {
328
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(dom, width, height) {
329
- var snapshot, canvas, ctx;
324
+ var parseCanvasTransform = function parseCanvasTransform(canvas) {
325
+ var transformText = canvas.style.transform || window.getComputedStyle(canvas).transform || '';
326
+ var match = transformText.match(/^matrix\(([^)]+)\)$/);
327
+ if (!match) {
328
+ return [1, 0, 0, 1, 0, 0];
329
+ }
330
+ return match[1].split(',').map(function (item) {
331
+ return Number(item.trim());
332
+ }).filter(function (item) {
333
+ return Number.isFinite(item);
334
+ });
335
+ };
336
+ var snapdomPromise = null;
337
+ var dynamicImport = function dynamicImport(specifier) {
338
+ return new Function('s', 'return import(s)')(specifier);
339
+ };
340
+ var getSnapdom = /*#__PURE__*/function () {
341
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
330
342
  return _regenerator().w(function (_context) {
331
343
  while (1) switch (_context.n) {
332
344
  case 0:
333
- _context.n = 1;
334
- return _snapdom.snapdom.toCanvas(dom, {
335
- scale: 1,
336
- backgroundColor: '#ffffff'
337
- });
338
- case 1:
339
- snapshot = _context.v;
345
+ if (!snapdomPromise) {
346
+ snapdomPromise = dynamicImport('@zumer/snapdom').then(function (mod) {
347
+ return mod.snapdom;
348
+ });
349
+ }
350
+ return _context.a(2, snapdomPromise);
351
+ }
352
+ }, _callee);
353
+ }));
354
+ return function getSnapdom() {
355
+ return _ref2.apply(this, arguments);
356
+ };
357
+ }();
358
+
359
+ // 优先直接合成 OpenLayers 实际渲染出来的各层 canvas,
360
+ // 避免 html2canvas 再截图 DOM 时把地图细节压糊。
361
+ var captureDomCanvas = /*#__PURE__*/function () {
362
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(dom, width, height) {
363
+ var canvas, ctx, layerCanvases, snapdom, snapshot;
364
+ return _regenerator().w(function (_context2) {
365
+ while (1) switch (_context2.n) {
366
+ case 0:
340
367
  canvas = document.createElement('canvas');
341
368
  canvas.width = Math.max(1, Math.round(width));
342
369
  canvas.height = Math.max(1, Math.round(height));
343
370
  ctx = canvas.getContext('2d');
344
371
  ctx.fillStyle = '#fff';
345
372
  ctx.fillRect(0, 0, canvas.width, canvas.height);
373
+ layerCanvases = Array.from(dom.querySelectorAll('.ol-layer canvas, canvas.ol-layer, canvas')).filter(function (item) {
374
+ return item.width > 0 && item.height > 0;
375
+ });
376
+ if (!layerCanvases.length) {
377
+ _context2.n = 1;
378
+ break;
379
+ }
380
+ layerCanvases.forEach(function (layerCanvas) {
381
+ var parentStyle = window.getComputedStyle(layerCanvas.parentElement || layerCanvas);
382
+ var canvasStyle = window.getComputedStyle(layerCanvas);
383
+ var opacity = Number(parentStyle.opacity || canvasStyle.opacity || 1);
384
+ var transform = parseCanvasTransform(layerCanvas);
385
+ var backgroundColor = parentStyle.backgroundColor;
386
+ ctx.save();
387
+ ctx.globalAlpha = Number.isFinite(opacity) ? opacity : 1;
388
+ if (backgroundColor && backgroundColor !== 'rgba(0, 0, 0, 0)' && backgroundColor !== 'transparent') {
389
+ ctx.fillStyle = backgroundColor;
390
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
391
+ }
392
+ if (transform.length === 6) {
393
+ ctx.setTransform.apply(ctx, _toConsumableArray(transform));
394
+ } else {
395
+ ctx.setTransform(1, 0, 0, 1, 0, 0);
396
+ }
397
+ ctx.drawImage(layerCanvas, 0, 0);
398
+ ctx.restore();
399
+ });
400
+ return _context2.a(2, canvas);
401
+ case 1:
402
+ _context2.n = 2;
403
+ return getSnapdom();
404
+ case 2:
405
+ snapdom = _context2.v;
406
+ _context2.n = 3;
407
+ return snapdom.toCanvas(dom, {
408
+ scale: 1,
409
+ backgroundColor: '#ffffff'
410
+ });
411
+ case 3:
412
+ snapshot = _context2.v;
413
+ // const snapshot = await snapdom.toCanvas(dom, {
414
+ // scale: 1,
415
+ // backgroundColor: '#ffffff',
416
+ // });
346
417
  ctx.drawImage(snapshot, 0, 0, canvas.width, canvas.height);
347
- return _context.a(2, canvas);
418
+ return _context2.a(2, canvas);
348
419
  }
349
- }, _callee);
420
+ }, _callee2);
350
421
  }));
351
422
  return function captureDomCanvas(_x, _x2, _x3) {
352
- return _ref2.apply(this, arguments);
423
+ return _ref3.apply(this, arguments);
353
424
  };
354
425
  }();
355
426
  var loadImage = function loadImage(src) {
@@ -362,11 +433,11 @@ var loadImage = function loadImage(src) {
362
433
  img.src = src;
363
434
  });
364
435
  };
365
- var createPdfFromImages = function createPdfFromImages(_ref3) {
366
- var images = _ref3.images,
367
- pageWidthMm = _ref3.pageWidthMm,
368
- pageHeightMm = _ref3.pageHeightMm,
369
- title = _ref3.title;
436
+ var createPdfFromImages = function createPdfFromImages(_ref4) {
437
+ var images = _ref4.images,
438
+ pageWidthMm = _ref4.pageWidthMm,
439
+ pageHeightMm = _ref4.pageHeightMm,
440
+ title = _ref4.title;
370
441
  if (!(images !== null && images !== void 0 && images.length)) {
371
442
  return;
372
443
  }
@@ -381,7 +452,7 @@ var createPdfFromImages = function createPdfFromImages(_ref3) {
381
452
  if (index > 0) {
382
453
  pdf.addPage([pageWidthMm, pageHeightMm], orientation);
383
454
  }
384
- pdf.addImage(item.url, 'JPEG', 0, 0, pageWidthMm, pageHeightMm, undefined, 'FAST');
455
+ pdf.addImage(item.url, 'PNG', 0, 0, pageWidthMm, pageHeightMm, undefined, 'FAST');
385
456
  });
386
457
  pdf.save(decodeURIComponent("".concat(title || 'map-sheet-print', ".pdf")));
387
458
  };
@@ -450,7 +521,10 @@ function _default(props) {
450
521
  var boxExtentRef = (0, _react.useRef)(null);
451
522
  var boxLayerRef = (0, _react.useRef)(null);
452
523
  var exportMapRef = (0, _react.useRef)(null);
524
+ var previewMapRef = (0, _react.useRef)(null);
453
525
  var exportStageRef = (0, _react.useRef)(null);
526
+ var previewMasterCanvasRef = (0, _react.useRef)(null);
527
+ var previewMasterFramePixelsRef = (0, _react.useRef)(null);
454
528
  var renderLayersSyncedRef = (0, _react.useRef)(false);
455
529
  var previewRenderSeqRef = (0, _react.useRef)(0);
456
530
  var previewRenderTimerRef = (0, _react.useRef)(null);
@@ -519,15 +593,14 @@ function _default(props) {
519
593
  return buildPreviewFrameExtent(splitPlan, metrics === null || metrics === void 0 ? void 0 : metrics.extent);
520
594
  }, [splitPlan, metrics === null || metrics === void 0 ? void 0 : metrics.extent]);
521
595
 
522
- // 预览按“整张纸面的真实尺寸”缩放,而不是按选区本身缩放。
523
- // 这样手动框选较小时,不会被自动放大到几乎铺满预览区域。
596
+ // 预览里的“单张纸大小”应该只由纸张尺寸本身决定,
597
+ // 不应该因为修改总宽高而把 A4/A3 的纸张框一起缩放掉。
524
598
  var previewScale = (0, _react.useMemo)(function () {
525
- var frameSizeMm = getPreviewFrameSizeMm(splitPlan);
526
- if (!frameSizeMm) {
599
+ if (!(splitPlan !== null && splitPlan !== void 0 && splitPlan.paperWidthMm) || !(splitPlan !== null && splitPlan !== void 0 && splitPlan.paperHeightMm)) {
527
600
  return 1;
528
601
  }
529
- var scaleX = frameSizeMm.width / PREVIEW_WIDTH;
530
- var scaleY = frameSizeMm.height / PREVIEW_HEIGHT;
602
+ var scaleX = splitPlan.paperWidthMm / PREVIEW_WIDTH;
603
+ var scaleY = splitPlan.paperHeightMm / PREVIEW_HEIGHT;
531
604
  return Math.max(scaleX, scaleY, 0.0001);
532
605
  }, [splitPlan]);
533
606
  var selectedMapPixels = (0, _react.useMemo)(function () {
@@ -585,11 +658,12 @@ function _default(props) {
585
658
  };
586
659
  var handleExportMapCreated = function handleExportMapCreated(exportMap) {
587
660
  exportMapRef.current = exportMap;
588
- exportMap.getInteractions().forEach(function (item) {
589
- return item.setActive(false);
590
- });
591
661
  syncBusinessLayers(map, exportMap, boxLayerRef.current);
592
662
  };
663
+ var handlePreviewMapCreated = function handlePreviewMapCreated(previewMap) {
664
+ previewMapRef.current = previewMap;
665
+ syncBusinessLayers(map, previewMap, boxLayerRef.current);
666
+ };
593
667
 
594
668
  // 隐藏导出地图只在第一次真正需要时补同步业务图层,
595
669
  // 后面同一轮预览/导出尽量复用,避免频繁清空重建。
@@ -603,6 +677,13 @@ function _default(props) {
603
677
  }
604
678
  return true;
605
679
  };
680
+ var syncPreviewMapLayers = function syncPreviewMapLayers() {
681
+ if (!previewMapRef.current) {
682
+ return false;
683
+ }
684
+ syncBusinessLayers(map, previewMapRef.current, boxLayerRef.current);
685
+ return true;
686
+ };
606
687
 
607
688
  // 点击“执行分幅”时,直接读取外部主地图当前层级,
608
689
  // 也就是“外面地图是什么层级,进去就按什么层级算”。
@@ -650,6 +731,8 @@ function _default(props) {
650
731
  setTotalHeightMm(Number(nextMetrics.heightMm.toFixed(3)));
651
732
  setPreviewReady(false);
652
733
  setPreviewImage('');
734
+ previewMasterCanvasRef.current = null;
735
+ previewMasterFramePixelsRef.current = null;
653
736
  renderLayersSyncedRef.current = false;
654
737
  setSheetImages([]);
655
738
  setSheetVisible(false);
@@ -672,28 +755,26 @@ function _default(props) {
672
755
  setTotalWidthMm(Number((nextHeight / metrics.ratio).toFixed(3)));
673
756
  };
674
757
  var renderSheetImage = /*#__PURE__*/function () {
675
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(sheet) {
676
- var previewImg, frameSizeMm, frameTotalWidthMm, frameTotalHeightMm, sourceX, sourceY, sourceWidth, sourceHeight, pageWidthPx, pageHeightPx, pageCanvas, ctx;
677
- return _regenerator().w(function (_context2) {
678
- while (1) switch (_context2.n) {
758
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(sheet) {
759
+ var previewMasterCanvas, previewMasterFramePixels, frameSizeMm, frameTotalWidthMm, frameTotalHeightMm, sourceX, sourceY, sourceWidth, sourceHeight, pageWidthPx, pageHeightPx, pageCanvas, ctx;
760
+ return _regenerator().w(function (_context3) {
761
+ while (1) switch (_context3.n) {
679
762
  case 0:
680
- if (!(!splitPlan || !previewFramePixels || !previewImage)) {
681
- _context2.n = 1;
763
+ if (!(!splitPlan || !previewMasterCanvasRef.current || !previewMasterFramePixelsRef.current)) {
764
+ _context3.n = 1;
682
765
  break;
683
766
  }
684
- return _context2.a(2, null);
767
+ return _context3.a(2, null);
685
768
  case 1:
686
- _context2.n = 2;
687
- return loadImage(previewImage);
688
- case 2:
689
- previewImg = _context2.v;
769
+ previewMasterCanvas = previewMasterCanvasRef.current;
770
+ previewMasterFramePixels = previewMasterFramePixelsRef.current;
690
771
  frameSizeMm = getPreviewFrameSizeMm(splitPlan);
691
772
  frameTotalWidthMm = frameSizeMm.width;
692
773
  frameTotalHeightMm = frameSizeMm.height;
693
- sourceX = sheet.xMm / frameTotalWidthMm * previewFramePixels.width;
694
- sourceY = sheet.yMm / frameTotalHeightMm * previewFramePixels.height;
695
- sourceWidth = splitPlan.paperWidthMm / frameTotalWidthMm * previewFramePixels.width;
696
- sourceHeight = splitPlan.paperHeightMm / frameTotalHeightMm * previewFramePixels.height;
774
+ sourceX = sheet.xMm / frameTotalWidthMm * previewMasterFramePixels.width;
775
+ sourceY = sheet.yMm / frameTotalHeightMm * previewMasterFramePixels.height;
776
+ sourceWidth = splitPlan.paperWidthMm / frameTotalWidthMm * previewMasterFramePixels.width;
777
+ sourceHeight = splitPlan.paperHeightMm / frameTotalHeightMm * previewMasterFramePixels.height;
697
778
  pageWidthPx = Math.max(1, Math.round(mmToPx(splitPlan.paperWidthMm, EXPORT_DPI)));
698
779
  pageHeightPx = Math.max(1, Math.round(mmToPx(splitPlan.paperHeightMm, EXPORT_DPI)));
699
780
  console.log('[MapSheetPrint] 生成单张图幅', {
@@ -714,17 +795,17 @@ function _default(props) {
714
795
  ctx = pageCanvas.getContext('2d');
715
796
  ctx.fillStyle = '#fff';
716
797
  ctx.fillRect(0, 0, pageWidthPx, pageHeightPx);
717
- ctx.drawImage(previewImg, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, pageWidthPx, pageHeightPx);
718
- return _context2.a(2, _objectSpread(_objectSpread({}, sheet), {}, {
719
- url: pageCanvas.toDataURL('image/jpeg', 0.92),
798
+ ctx.drawImage(previewMasterCanvas, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, pageWidthPx, pageHeightPx);
799
+ return _context3.a(2, _objectSpread(_objectSpread({}, sheet), {}, {
800
+ url: pageCanvas.toDataURL('image/png'),
720
801
  pixelWidth: pageWidthPx,
721
802
  pixelHeight: pageHeightPx
722
803
  }));
723
804
  }
724
- }, _callee2);
805
+ }, _callee3);
725
806
  }));
726
807
  return function renderSheetImage(_x4) {
727
- return _ref4.apply(this, arguments);
808
+ return _ref5.apply(this, arguments);
728
809
  };
729
810
  }();
730
811
 
@@ -732,17 +813,17 @@ function _default(props) {
732
813
  // 宽高变大时,不改 extent,而是先把隐藏地图按更大的像素尺寸重新渲染,
733
814
  // 相当于“放大地图层级”,再把同一个 extent 裁成预览图。
734
815
  var renderPreviewImage = /*#__PURE__*/function () {
735
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(seq) {
816
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(seq) {
736
817
  var _exportMapRef$current, _exportMapRef$current2;
737
- var widthScale, heightScale, captureWidthPx, captureHeightPx, targetResolution, targetCenter, view, sourceCanvas, previewCanvas, ctx;
738
- return _regenerator().w(function (_context3) {
739
- while (1) switch (_context3.n) {
818
+ var widthScale, heightScale, captureWidthPx, captureHeightPx, targetResolution, targetCenter, view, _previewMapRef$curren, _previewMapRef$curren2, previewView, sourceCanvas, previewCanvas, masterScaleX, masterScaleY, previewMasterCanvas, masterCtx, ctx;
819
+ return _regenerator().w(function (_context4) {
820
+ while (1) switch (_context4.n) {
740
821
  case 0:
741
822
  if (!(!previewVisible || !(metrics !== null && metrics !== void 0 && metrics.extent) || !selectedMapPixels || !previewFramePixels || !exportMapRef.current || !exportStageRef.current)) {
742
- _context3.n = 1;
823
+ _context4.n = 1;
743
824
  break;
744
825
  }
745
- return _context3.a(2);
826
+ return _context4.a(2);
746
827
  case 1:
747
828
  widthScale = totalWidthMm / metrics.widthMm;
748
829
  heightScale = totalHeightMm / metrics.heightMm;
@@ -775,76 +856,104 @@ function _default(props) {
775
856
  } : null
776
857
  });
777
858
  setPreviewReady(false);
778
- _context3.n = 2;
859
+ _context4.n = 2;
779
860
  return waitNextFrame();
780
861
  case 2:
781
862
  if (!(seq !== previewRenderSeqRef.current)) {
782
- _context3.n = 3;
863
+ _context4.n = 3;
783
864
  break;
784
865
  }
785
- return _context3.a(2);
866
+ return _context4.a(2);
786
867
  case 3:
787
868
  if (ensureRenderMapLayers()) {
788
- _context3.n = 4;
869
+ _context4.n = 4;
789
870
  break;
790
871
  }
791
- return _context3.a(2);
872
+ return _context4.a(2);
792
873
  case 4:
874
+ syncPreviewMapLayers();
793
875
  setExportSize({
794
876
  width: captureWidthPx,
795
877
  height: captureHeightPx
796
878
  });
797
- _context3.n = 5;
879
+ _context4.n = 5;
798
880
  return waitNextFrame();
799
881
  case 5:
800
882
  if (!(seq !== previewRenderSeqRef.current)) {
801
- _context3.n = 6;
883
+ _context4.n = 6;
802
884
  break;
803
885
  }
804
- return _context3.a(2);
886
+ return _context4.a(2);
805
887
  case 6:
806
888
  (_exportMapRef$current = (_exportMapRef$current2 = exportMapRef.current).updateSize) === null || _exportMapRef$current === void 0 || _exportMapRef$current.call(_exportMapRef$current2);
807
889
  view = exportMapRef.current.getView();
808
890
  view.setCenter(targetCenter);
809
891
  view.setResolution(targetResolution);
810
- _context3.n = 7;
892
+ if (previewMapRef.current) {
893
+ (_previewMapRef$curren = (_previewMapRef$curren2 = previewMapRef.current).updateSize) === null || _previewMapRef$curren === void 0 || _previewMapRef$curren.call(_previewMapRef$curren2);
894
+ previewView = previewMapRef.current.getView();
895
+ previewView.setCenter(targetCenter);
896
+ previewView.setResolution(targetResolution);
897
+ }
898
+ _context4.n = 7;
811
899
  return waitMapRender(exportMapRef.current);
812
900
  case 7:
813
- _context3.n = 8;
814
- return waitNextFrame();
901
+ if (!previewMapRef.current) {
902
+ _context4.n = 8;
903
+ break;
904
+ }
905
+ _context4.n = 8;
906
+ return waitMapRender(previewMapRef.current);
815
907
  case 8:
908
+ _context4.n = 9;
909
+ return waitNextFrame();
910
+ case 9:
816
911
  if (!(seq !== previewRenderSeqRef.current)) {
817
- _context3.n = 9;
912
+ _context4.n = 10;
818
913
  break;
819
914
  }
820
- return _context3.a(2);
821
- case 9:
822
- _context3.n = 10;
823
- return captureDomCanvas(exportStageRef.current, captureWidthPx, captureHeightPx);
915
+ return _context4.a(2);
824
916
  case 10:
825
- sourceCanvas = _context3.v;
917
+ _context4.n = 11;
918
+ return captureDomCanvas(exportStageRef.current, captureWidthPx, captureHeightPx);
919
+ case 11:
920
+ sourceCanvas = _context4.v;
826
921
  if (!(seq !== previewRenderSeqRef.current)) {
827
- _context3.n = 11;
922
+ _context4.n = 12;
828
923
  break;
829
924
  }
830
- return _context3.a(2);
831
- case 11:
925
+ return _context4.a(2);
926
+ case 12:
832
927
  previewCanvas = document.createElement('canvas');
833
928
  previewCanvas.width = Math.max(1, Math.round(previewFramePixels.width));
834
929
  previewCanvas.height = Math.max(1, Math.round(previewFramePixels.height));
930
+ masterScaleX = captureWidthPx / Math.max(1, selectedMapPixels.width);
931
+ masterScaleY = captureHeightPx / Math.max(1, selectedMapPixels.height);
932
+ previewMasterCanvas = document.createElement('canvas');
933
+ previewMasterCanvas.width = Math.max(1, Math.round(previewFramePixels.width * masterScaleX));
934
+ previewMasterCanvas.height = Math.max(1, Math.round(previewFramePixels.height * masterScaleY));
935
+ masterCtx = previewMasterCanvas.getContext('2d');
936
+ masterCtx.fillStyle = '#fff';
937
+ masterCtx.fillRect(0, 0, previewMasterCanvas.width, previewMasterCanvas.height);
938
+ masterCtx.drawImage(sourceCanvas, 0, 0, captureWidthPx, captureHeightPx);
939
+ previewMasterCanvasRef.current = previewMasterCanvas;
940
+ previewMasterFramePixelsRef.current = {
941
+ width: previewMasterCanvas.width,
942
+ height: previewMasterCanvas.height
943
+ };
835
944
  ctx = previewCanvas.getContext('2d');
836
945
  ctx.fillStyle = '#fff';
837
946
  ctx.fillRect(0, 0, previewCanvas.width, previewCanvas.height);
838
- ctx.drawImage(sourceCanvas, 0, 0, captureWidthPx, captureHeightPx, 0, 0, selectedMapPixels.width, selectedMapPixels.height);
839
- setPreviewImage(previewCanvas.toDataURL('image/jpeg', 0.92));
947
+ ctx.drawImage(previewMasterCanvas, 0, 0, previewCanvas.width, previewCanvas.height);
948
+ setPreviewImage(previewCanvas.toDataURL('image/png'));
840
949
  setPreviewReady(true);
841
- case 12:
842
- return _context3.a(2);
950
+ case 13:
951
+ return _context4.a(2);
843
952
  }
844
- }, _callee3);
953
+ }, _callee4);
845
954
  }));
846
955
  return function renderPreviewImage(_x5) {
847
- return _ref5.apply(this, arguments);
956
+ return _ref6.apply(this, arguments);
848
957
  };
849
958
  }();
850
959
  (0, _react.useEffect)(function () {
@@ -893,51 +1002,51 @@ function _default(props) {
893
1002
  });
894
1003
  }, [splitPlan, totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);
895
1004
  var handleGenerateSheets = /*#__PURE__*/function () {
896
- var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
1005
+ var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {
897
1006
  var _splitPlan$sheets;
898
1007
  var images, _iterator, _step, sheet, image, _t;
899
- return _regenerator().w(function (_context4) {
900
- while (1) switch (_context4.p = _context4.n) {
1008
+ return _regenerator().w(function (_context5) {
1009
+ while (1) switch (_context5.p = _context5.n) {
901
1010
  case 0:
902
1011
  if (splitPlan !== null && splitPlan !== void 0 && (_splitPlan$sheets = splitPlan.sheets) !== null && _splitPlan$sheets !== void 0 && _splitPlan$sheets.length) {
903
- _context4.n = 1;
1012
+ _context5.n = 1;
904
1013
  break;
905
1014
  }
906
- return _context4.a(2);
1015
+ return _context5.a(2);
907
1016
  case 1:
908
1017
  setGenerating(true);
909
- _context4.p = 2;
1018
+ _context5.p = 2;
910
1019
  images = [];
911
1020
  _iterator = _createForOfIteratorHelper(splitPlan.sheets);
912
- _context4.p = 3;
1021
+ _context5.p = 3;
913
1022
  _iterator.s();
914
1023
  case 4:
915
1024
  if ((_step = _iterator.n()).done) {
916
- _context4.n = 7;
1025
+ _context5.n = 7;
917
1026
  break;
918
1027
  }
919
1028
  sheet = _step.value;
920
- _context4.n = 5;
1029
+ _context5.n = 5;
921
1030
  return renderSheetImage(sheet);
922
1031
  case 5:
923
- image = _context4.v;
1032
+ image = _context5.v;
924
1033
  if (image) {
925
1034
  images.push(image);
926
1035
  }
927
1036
  case 6:
928
- _context4.n = 4;
1037
+ _context5.n = 4;
929
1038
  break;
930
1039
  case 7:
931
- _context4.n = 9;
1040
+ _context5.n = 9;
932
1041
  break;
933
1042
  case 8:
934
- _context4.p = 8;
935
- _t = _context4.v;
1043
+ _context5.p = 8;
1044
+ _t = _context5.v;
936
1045
  _iterator.e(_t);
937
1046
  case 9:
938
- _context4.p = 9;
1047
+ _context5.p = 9;
939
1048
  _iterator.f();
940
- return _context4.f(9);
1049
+ return _context5.f(9);
941
1050
  case 10:
942
1051
  setSheetImages(images);
943
1052
  setSelectedSheetIds(images.map(function (item) {
@@ -946,16 +1055,16 @@ function _default(props) {
946
1055
  setPreviewVisible(false);
947
1056
  setSheetVisible(true);
948
1057
  case 11:
949
- _context4.p = 11;
1058
+ _context5.p = 11;
950
1059
  setGenerating(false);
951
- return _context4.f(11);
1060
+ return _context5.f(11);
952
1061
  case 12:
953
- return _context4.a(2);
1062
+ return _context5.a(2);
954
1063
  }
955
- }, _callee4, null, [[3, 8, 9, 10], [2,, 11, 12]]);
1064
+ }, _callee5, null, [[3, 8, 9, 10], [2,, 11, 12]]);
956
1065
  }));
957
1066
  return function handleGenerateSheets() {
958
- return _ref6.apply(this, arguments);
1067
+ return _ref7.apply(this, arguments);
959
1068
  };
960
1069
  }();
961
1070
  var handleExportPdf = function handleExportPdf() {
@@ -1115,12 +1224,31 @@ function _default(props) {
1115
1224
  transformOrigin: 'top left'
1116
1225
  }
1117
1226
  }, /*#__PURE__*/_react["default"].createElement("div", {
1227
+ style: {
1228
+ position: 'absolute',
1229
+ left: 0,
1230
+ top: 0,
1231
+ width: selectedMapPixels.width,
1232
+ height: selectedMapPixels.height,
1233
+ overflow: 'hidden',
1234
+ zIndex: 0,
1235
+ display: 'none'
1236
+ }
1237
+ }, /*#__PURE__*/_react["default"].createElement(_olMap.Map, {
1238
+ width: "".concat(Math.max(1, Math.round(selectedMapPixels.width)), "px"),
1239
+ height: "".concat(Math.max(1, Math.round(selectedMapPixels.height)), "px"),
1240
+ tk: "1adbb6e47668cb33757cd799548bf1f4",
1241
+ hidePopupTable: true,
1242
+ createdMap: handlePreviewMapCreated
1243
+ })), /*#__PURE__*/_react["default"].createElement("div", {
1118
1244
  style: {
1119
1245
  position: 'absolute',
1120
1246
  left: 0,
1121
1247
  top: 0,
1122
1248
  width: previewFramePixels.width,
1123
- height: previewFramePixels.height
1249
+ height: previewFramePixels.height,
1250
+ zIndex: 1,
1251
+ pointerEvents: 'none'
1124
1252
  }
1125
1253
  }, /*#__PURE__*/_react["default"].createElement("img", {
1126
1254
  src: previewImage,
@@ -1128,7 +1256,9 @@ function _default(props) {
1128
1256
  style: {
1129
1257
  width: '100%',
1130
1258
  height: '100%',
1131
- display: previewImage ? 'block' : 'none'
1259
+ display: previewImage ? 'block' : 'none',
1260
+ pointerEvents: 'none',
1261
+ opacity: 1
1132
1262
  }
1133
1263
  })), selectedRangeCoverage && selectedRangeCoverage.widthPercent < 100 && /*#__PURE__*/_react["default"].createElement("div", {
1134
1264
  style: {
@@ -1138,7 +1268,8 @@ function _default(props) {
1138
1268
  width: "".concat(100 - selectedRangeCoverage.widthPercent, "%"),
1139
1269
  height: "".concat(selectedRangeCoverage.heightPercent, "%"),
1140
1270
  background: 'rgba(255,255,255,0.96)',
1141
- pointerEvents: 'none'
1271
+ pointerEvents: 'none',
1272
+ zIndex: 2
1142
1273
  }
1143
1274
  }), selectedRangeCoverage && selectedRangeCoverage.heightPercent < 100 && /*#__PURE__*/_react["default"].createElement("div", {
1144
1275
  style: {
@@ -1148,7 +1279,8 @@ function _default(props) {
1148
1279
  width: '100%',
1149
1280
  height: "".concat(100 - selectedRangeCoverage.heightPercent, "%"),
1150
1281
  background: 'rgba(255,255,255,0.96)',
1151
- pointerEvents: 'none'
1282
+ pointerEvents: 'none',
1283
+ zIndex: 2
1152
1284
  }
1153
1285
  }), selectedRangeCoverage && /*#__PURE__*/_react["default"].createElement("div", {
1154
1286
  style: {
@@ -1159,7 +1291,8 @@ function _default(props) {
1159
1291
  height: "".concat(selectedRangeCoverage.heightPercent, "%"),
1160
1292
  border: '2px solid rgba(24, 144, 255, 0.9)',
1161
1293
  boxSizing: 'border-box',
1162
- pointerEvents: 'none'
1294
+ pointerEvents: 'none',
1295
+ zIndex: 3
1163
1296
  }
1164
1297
  }), splitPlan === null || splitPlan === void 0 || (_splitPlan$sheets2 = splitPlan.sheets) === null || _splitPlan$sheets2 === void 0 ? void 0 : _splitPlan$sheets2.map(function (sheet) {
1165
1298
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -1172,7 +1305,8 @@ function _default(props) {
1172
1305
  height: "".concat(splitPlan.paperHeightMm / getPreviewFrameSizeMm(splitPlan).height * 100, "%"),
1173
1306
  border: '2px dashed #333',
1174
1307
  boxSizing: 'border-box',
1175
- pointerEvents: 'none'
1308
+ pointerEvents: 'none',
1309
+ zIndex: 4
1176
1310
  }
1177
1311
  }, /*#__PURE__*/_react["default"].createElement("div", {
1178
1312
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_antd","_Modal","_interopRequireDefault","_jspdf","_snapdom","_interaction","_Vector","_Tile","_Image","_Vector2","_Draw","_Draw2","_useProps2","_olMap","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_createForOfIteratorHelper","length","_n","F","s","done","value","a","u","next","_regenerator","toStringTag","c","prototype","Generator","create","_regeneratorDefine2","p","y","G","v","d","bind","l","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","ownKeys","keys","getOwnPropertySymbols","filter","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","constructor","name","test","pageSizeOptions","pageSizeMap","A4","width","height","A3","A2","A1","A0","DIMENSION_DPI","EXPORT_DPI","PREVIEW_HEIGHT","PREVIEW_WIDTH","pxToMm","px","dpi","undefined","mmToPx","mm","isValidExtent","extent","every","item","isFinite","calcMetricsFromZoom","view","zoom","resolution","getResolutionForZoom","getResolution","geoWidth","geoHeight","pixelWidth","pixelHeight","widthMm","heightMm","ratio","calcSplitPlan","_ref","totalWidthMm","totalHeightMm","pageSize","_ref$overlapMargin","overlapMargin","paper","safeOverlap","Math","max","stepX","stepY","cols","ceil","rows","sheets","row","col","xMm","yMm","min","id","concat","index","isPartial","paperWidthMm","paperHeightMm","totalSheets","buildSheetExtent","sheet","plan","totalExtent","_totalExtent","minX","minY","maxX","maxY","xScale","yScale","left","right","top","bottom","buildPreviewFrameExtent","_totalExtent2","frameWidthMm","frameHeightMm","getPreviewFrameSizeMm","getExtentCenter","cloneVectorSource","source","getFeatures","VectorSource","features","map","feature","clone","cloneLayer","layer","_layer$getOpacity","_layer$getVisible","_layer$getZIndex","_layer$getExtent","common","opacity","getOpacity","visible","getVisible","zIndex","getZIndex","getExtent","VectorLayer","clonedLayer","getSource","style","getStyle","TileLayer","ImageLayer","clearClonedLayers","mapInstance","getLayers","getArray","removeLayer","syncBusinessLayers","sourceMap","targetMap","excludeLayer","_layer$getVisible2","addLayer","waitNextFrame","requestAnimationFrame","waitMapRender","_mapInstance$renderSy","finish","once","setTimeout","renderSync","captureDomCanvas","_ref2","_callee","dom","snapshot","canvas","ctx","_context","snapdom","toCanvas","scale","backgroundColor","document","createElement","round","getContext","fillStyle","fillRect","drawImage","_x","_x2","_x3","loadImage","src","reject","img","Image","onload","onerror","createPdfFromImages","_ref3","images","pageWidthMm","pageHeightMm","title","orientation","pdf","jsPDF","unit","format","compress","addPage","addImage","url","save","decodeURIComponent","_default","props","_splitPlan$sheets2","onClose","_useProps","useProps","TextEnum","_Form$useForm","Form","useForm","_Form$useForm2","form","_useState","useState","_useState2","previewVisible","setPreviewVisible","_useState3","_useState4","sheetVisible","setSheetVisible","_useState5","_useState6","formVal","setFormVal","_useState7","_useState8","pageSizeValue","setPageSizeValue","_useState9","_useState0","overlapMarginValue","setOverlapMarginValue","_useState1","_useState10","metrics","setMetrics","_useState11","_useState12","setTotalWidthMm","_useState13","_useState14","setTotalHeightMm","_useState15","_useState16","previewReady","setPreviewReady","_useState17","_useState18","previewImage","setPreviewImage","_useState19","_useState20","sheetImages","setSheetImages","_useState21","_useState22","selectedSheetIds","setSelectedSheetIds","_useState23","_useState24","generating","setGenerating","drawTool","useRef","boxExtentRef","boxLayerRef","exportMapRef","exportStageRef","renderLayersSyncedRef","previewRenderSeqRef","previewRenderTimerRef","_useState25","_useState26","exportSize","setExportSize","useEffect","setFieldsValue","range","boxSource","boxLayer","drawStyle","tool","Draw","type","geometryFunction","createBox","current","setActive","on","clear","showTip","clickAgainToEnd","event","getGeometry","leftClickToStart","addInteraction","clearTimeout","removeInteraction","hideTip","splitPlan","useMemo","previewFrameExtent","previewScale","frameSizeMm","scaleX","scaleY","selectedMapPixels","previewFramePixels","selectedRangeCoverage","widthPercent","heightPercent","handleRangeChange","_drawTool$current","_boxLayerRef$current","handlePageSizeChange","nextPageSize","setFieldValue","handleExportMapCreated","exportMap","getInteractions","ensureRenderMapLayers","handleSubmit","values","_values$overlapMargin","_map$getView$getZoom","_map$getView","getFieldValue","console","log","getView","calculateExtent","getSize","getZoom","nextMetrics","rangeMode","printZoom","toFixed","handleWidthChange","nextWidth","handleHeightChange","nextHeight","renderSheetImage","_ref4","_callee2","previewImg","frameTotalWidthMm","frameTotalHeightMm","sourceX","sourceY","sourceWidth","sourceHeight","pageWidthPx","pageHeightPx","pageCanvas","_context2","sheetId","sheetIndex","sheetWidthMm","sheetHeightMm","toDataURL","_x4","renderPreviewImage","_ref5","_callee3","seq","_exportMapRef$current","_exportMapRef$current2","widthScale","heightScale","captureWidthPx","captureHeightPx","targetResolution","targetCenter","sourceCanvas","previewCanvas","_context3","updateSize","setCenter","setResolution","_x5","handleGenerateSheets","_ref6","_callee4","_splitPlan$sheets","_iterator","_step","image","_t","_context4","handleExportPdf","selectedImages","includes","toolMapSheetPrint","labelCol","span","wrapperCol","onFinish","Item","label","mapTitle","rules","required","message","pleaseInputTitle","Input","placeholder","pleaseInput","downloadRange","pleaseSelect","Select","allowClear","onChange","options","currentView","manualBoxSelect","noStyle","InputNumber","precision","changeOnBlur","offset","Button","htmlType","Modal","open","preview","onCancel","onOk","okText","cancelText","cancel","getViewport","clientWidth","centered","wrapClassName","confirmLoading","destroyOnHidden","display","gap","alignItems","marginBottom","color","marginLeft","position","overflow","background","border","inset","justifyContent","Spin","transformOrigin","alt","pointerEvents","boxSizing","key","padding","fontSize","Checkbox","indeterminate","checked","target","gridTemplateColumns","maxHeight","borderRadius","ref","Map","tk","hidePopupTable","createdMap"],"sources":["tools/Toolbox/MapSheetPrint/index.js"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Modal, Button, Select, Form, Input, InputNumber, Checkbox, Spin } from 'antd';\nimport DivModal from '../../components/Modal';\nimport { jsPDF } from 'jspdf';\nimport { snapdom } from '@zumer/snapdom';\nimport { Draw } from 'ol/interaction';\nimport VectorLayer from 'ol/layer/Vector';\nimport TileLayer from 'ol/layer/Tile';\nimport ImageLayer from 'ol/layer/Image';\nimport VectorSource from 'ol/source/Vector';\nimport { createBox } from 'ol/interaction/Draw';\nimport { drawStyle } from '../../Utils/Draw';\nimport useProps from '../../../use-props';\nimport { Map as OlMapComponent } from '@vtx/ol-map';\nimport './index.less';\n\nconst pageSizeOptions = ['A4', 'A3', 'A2', 'A1', 'A0'];\n\nconst pageSizeMap = {\n A4: { width: 210, height: 297 },\n A3: { width: 297, height: 420 },\n A2: { width: 420, height: 594 },\n A1: { width: 594, height: 841 },\n A0: { width: 841, height: 1189 },\n};\n\nconst DIMENSION_DPI = 96;\nconst EXPORT_DPI = 144;\nconst PREVIEW_HEIGHT = 610;\nconst PREVIEW_WIDTH = 980;\n\nconst pxToMm = (px, dpi = DIMENSION_DPI) => (px * 25.4) / dpi;\nconst mmToPx = (mm, dpi = EXPORT_DPI) => (mm * dpi) / 25.4;\n\nconst isValidExtent = extent => {\n return (\n Array.isArray(extent) &&\n extent.length === 4 &&\n extent.every(item => Number.isFinite(item)) &&\n extent[2] > extent[0] &&\n extent[3] > extent[1]\n );\n};\n\n// 按指定层级把地理范围换算成屏幕像素和毫米尺寸。\n// 这里算出来的宽高是后面分幅、预览和导出的统一基础数据。\nconst calcMetricsFromZoom = (extent, view, zoom) => {\n if (!isValidExtent(extent)) {\n return null;\n }\n\n const resolution = view.getResolutionForZoom(zoom) || view.getResolution();\n const geoWidth = extent[2] - extent[0];\n const geoHeight = extent[3] - extent[1];\n const pixelWidth = geoWidth / resolution;\n const pixelHeight = geoHeight / resolution;\n const widthMm = pxToMm(pixelWidth, DIMENSION_DPI);\n const heightMm = pxToMm(pixelHeight, DIMENSION_DPI);\n\n return {\n extent,\n zoom,\n resolution,\n geoWidth,\n geoHeight,\n pixelWidth,\n pixelHeight,\n widthMm,\n heightMm,\n ratio: heightMm / widthMm,\n };\n};\n\n// 根据总宽高、纸张尺寸和重叠边距,计算需要切成多少张纸,\n// 以及每一张纸在整幅图中的毫米位置。\nconst calcSplitPlan = ({ totalWidthMm, totalHeightMm, pageSize, overlapMargin = 0 }) => {\n const paper = pageSizeMap[pageSize];\n if (!paper || !totalWidthMm || !totalHeightMm) {\n return null;\n }\n\n const safeOverlap = Math.max(0, Number(overlapMargin) || 0);\n const stepX = Math.max(1, paper.width - safeOverlap);\n const stepY = Math.max(1, paper.height - safeOverlap);\n const cols = Math.max(1, Math.ceil(totalWidthMm / stepX));\n const rows = Math.max(1, Math.ceil(totalHeightMm / stepY));\n const sheets = [];\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const xMm = col * stepX;\n const yMm = row * stepY;\n const widthMm = Math.min(paper.width, totalWidthMm - xMm);\n const heightMm = Math.min(paper.height, totalHeightMm - yMm);\n\n sheets.push({\n id: `${row + 1}-${col + 1}`,\n index: row * cols + col + 1,\n row: row + 1,\n col: col + 1,\n xMm,\n yMm,\n widthMm,\n heightMm,\n isPartial: widthMm < paper.width || heightMm < paper.height,\n });\n }\n }\n\n return {\n paperWidthMm: paper.width,\n paperHeightMm: paper.height,\n overlapMargin: safeOverlap,\n totalWidthMm,\n totalHeightMm,\n stepX,\n stepY,\n cols,\n rows,\n totalSheets: sheets.length,\n sheets,\n };\n};\n\n// 把某一张分幅纸在整幅图中的毫米位置,映射回真实地图 extent。\nconst buildSheetExtent = (sheet, plan, totalExtent) => {\n const [minX, minY, maxX, maxY] = totalExtent;\n const xScale = (maxX - minX) / plan.totalWidthMm;\n const yScale = (maxY - minY) / plan.totalHeightMm;\n const left = minX + sheet.xMm * xScale;\n const right = left + sheet.widthMm * xScale;\n const top = maxY - sheet.yMm * yScale;\n const bottom = top - sheet.heightMm * yScale;\n\n return [left, bottom, right, top];\n};\n\n// 预览区显示的是“完整纸张网格”的外框,不是仅仅显示用户选中的蓝框范围。\n// 这样最后一张纸即使没铺满,虚线纸张尺寸也仍然是完整的。\nconst buildPreviewFrameExtent = (plan, totalExtent) => {\n if (!plan || !isValidExtent(totalExtent)) {\n return null;\n }\n\n const [minX, minY, maxX, maxY] = totalExtent;\n const xScale = (maxX - minX) / plan.totalWidthMm;\n const yScale = (maxY - minY) / plan.totalHeightMm;\n const frameWidthMm = plan.paperWidthMm + Math.max(0, plan.cols - 1) * plan.stepX;\n const frameHeightMm = plan.paperHeightMm + Math.max(0, plan.rows - 1) * plan.stepY;\n\n return [\n minX,\n maxY - frameHeightMm * yScale,\n minX + frameWidthMm * xScale,\n maxY,\n ];\n};\n\nconst getPreviewFrameSizeMm = plan => {\n if (!plan) {\n return null;\n }\n\n return {\n width: plan.paperWidthMm + Math.max(0, plan.cols - 1) * plan.stepX,\n height: plan.paperHeightMm + Math.max(0, plan.rows - 1) * plan.stepY,\n };\n};\n\nconst getExtentCenter = extent => [\n (extent[0] + extent[2]) / 2,\n (extent[1] + extent[3]) / 2,\n];\n\n// 预览/导出地图会复用原地图的图层源。\n// 矢量图层这里做一份克隆,避免直接操作原图层上的 feature。\nconst cloneVectorSource = source => {\n if (!source?.getFeatures) {\n return source;\n }\n\n return new VectorSource({\n features: source.getFeatures().map(feature => feature.clone()),\n });\n};\n\n// 这里只同步常见业务图层到隐藏导出地图中,\n// 不把框选图层、高亮层和底图标注层混进去,避免预览污染。\nconst cloneLayer = layer => {\n const common = {\n opacity: layer.getOpacity?.(),\n visible: layer.getVisible?.(),\n zIndex: layer.getZIndex?.(),\n extent: layer.getExtent?.(),\n };\n\n if (layer instanceof VectorLayer) {\n const clonedLayer = new VectorLayer({\n ...common,\n source: cloneVectorSource(layer.getSource()),\n style: layer.getStyle(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n if (layer instanceof TileLayer) {\n const clonedLayer = new TileLayer({\n ...common,\n source: layer.getSource(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n if (layer instanceof ImageLayer) {\n const clonedLayer = new ImageLayer({\n ...common,\n source: layer.getSource(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n return null;\n};\n\nconst clearClonedLayers = mapInstance => {\n if (!mapInstance) {\n return;\n }\n\n mapInstance\n .getLayers()\n .getArray()\n .filter(layer => layer.get('__sheetPrintClone'))\n .forEach(layer => mapInstance.removeLayer(layer));\n};\n\n// 隐藏导出地图和主地图不是同一个实例,所以需要把当前可见业务图层同步过去。\nconst syncBusinessLayers = (sourceMap, targetMap, excludeLayer) => {\n if (!sourceMap || !targetMap) {\n return;\n }\n\n clearClonedLayers(targetMap);\n\n sourceMap\n .getLayers()\n .getArray()\n .filter(layer => {\n if (layer === excludeLayer) {\n return false;\n }\n if (!layer?.getVisible?.()) {\n return false;\n }\n if (layer.get('key') === 'Highlight') {\n return false;\n }\n if (layer.get('key') === '__TDT_TILE' || layer.get('key') === '__TDT_MARK') {\n return false;\n }\n\n return (\n layer instanceof VectorLayer || layer instanceof TileLayer || layer instanceof ImageLayer\n );\n })\n .forEach(layer => {\n const clonedLayer = cloneLayer(layer);\n if (clonedLayer) {\n targetMap.addLayer(clonedLayer);\n }\n });\n};\n\nconst waitNextFrame = () =>\n new Promise(resolve => {\n requestAnimationFrame(() => {\n requestAnimationFrame(resolve);\n });\n });\n\nconst waitMapRender = mapInstance =>\n new Promise(resolve => {\n if (!mapInstance) {\n resolve();\n return;\n }\n\n let done = false;\n const finish = () => {\n if (done) {\n return;\n }\n done = true;\n resolve();\n };\n\n mapInstance.once('rendercomplete', finish);\n setTimeout(finish, 600);\n mapInstance.renderSync?.();\n });\n\n// 统一用 html2canvas 截取隐藏导出地图的 DOM,\n// 预览图和最终分幅图片都走这条截图链路。\nconst captureDomCanvas = async (dom, width, height) => {\n const snapshot = await snapdom.toCanvas(dom, {\n scale: 1,\n backgroundColor: '#ffffff',\n });\n\n const canvas = document.createElement('canvas');\n canvas.width = Math.max(1, Math.round(width));\n canvas.height = Math.max(1, Math.round(height));\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(snapshot, 0, 0, canvas.width, canvas.height);\n\n return canvas;\n};\n\nconst loadImage = src =>\n new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = src;\n });\n\nconst createPdfFromImages = ({ images, pageWidthMm, pageHeightMm, title }) => {\n if (!images?.length) {\n return;\n }\n\n const orientation = pageWidthMm > pageHeightMm ? 'landscape' : 'portrait';\n const pdf = new jsPDF({\n orientation,\n unit: 'mm',\n format: [pageWidthMm, pageHeightMm],\n compress: true,\n });\n\n images.forEach((item, index) => {\n if (index > 0) {\n pdf.addPage([pageWidthMm, pageHeightMm], orientation);\n }\n\n pdf.addImage(item.url, 'JPEG', 0, 0, pageWidthMm, pageHeightMm, undefined, 'FAST');\n });\n\n pdf.save(decodeURIComponent(`${title || 'map-sheet-print'}.pdf`));\n};\n\nexport default function(props) {\n const { onClose } = props;\n const { map, TextEnum } = useProps();\n const [form] = Form.useForm();\n const [previewVisible, setPreviewVisible] = useState(false);\n const [sheetVisible, setSheetVisible] = useState(false);\n const [formVal, setFormVal] = useState({});\n const [pageSizeValue, setPageSizeValue] = useState('A4');\n const [overlapMarginValue, setOverlapMarginValue] = useState(0);\n const [metrics, setMetrics] = useState(null);\n const [totalWidthMm, setTotalWidthMm] = useState(null);\n const [totalHeightMm, setTotalHeightMm] = useState(null);\n const [previewReady, setPreviewReady] = useState(false);\n const [previewImage, setPreviewImage] = useState('');\n const [sheetImages, setSheetImages] = useState([]);\n const [selectedSheetIds, setSelectedSheetIds] = useState([]);\n const [generating, setGenerating] = useState(false);\n const drawTool = useRef(null);\n const boxExtentRef = useRef(null);\n const boxLayerRef = useRef(null);\n const exportMapRef = useRef(null);\n const exportStageRef = useRef(null);\n const renderLayersSyncedRef = useRef(false);\n const previewRenderSeqRef = useRef(0);\n const previewRenderTimerRef = useRef(null);\n const [exportSize, setExportSize] = useState({ width: 1, height: 1 });\n\n useEffect(() => {\n form.setFieldsValue({\n range: '1',\n pageSize: 'A4',\n overlapMargin: 0,\n });\n }, []);\n\n useEffect(() => {\n const boxSource = new VectorSource();\n const boxLayer = new VectorLayer({\n source: boxSource,\n style: drawStyle(),\n zIndex: 9999,\n });\n const tool = new Draw({\n source: boxSource,\n type: 'Circle',\n style: feature => drawStyle(feature),\n geometryFunction: createBox(),\n });\n\n boxLayerRef.current = boxLayer;\n drawTool.current = tool;\n tool.setActive(false);\n\n tool.on('drawstart', () => {\n boxSource.clear();\n map.showTip(TextEnum.clickAgainToEnd);\n });\n\n tool.on('drawend', event => {\n const extent = event.feature.getGeometry().getExtent();\n boxExtentRef.current = extent;\n map.showTip(TextEnum.leftClickToStart);\n });\n\n map.addLayer(boxLayer);\n map.addInteraction(tool);\n\n return () => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n boxSource.clear();\n map.removeLayer(boxLayer);\n map.removeInteraction(tool);\n map.hideTip();\n };\n }, []);\n\n const splitPlan = useMemo(() => {\n return calcSplitPlan({\n totalWidthMm,\n totalHeightMm,\n pageSize: pageSizeValue,\n overlapMargin: overlapMarginValue,\n });\n }, [totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);\n\n const previewFrameExtent = useMemo(() => {\n return buildPreviewFrameExtent(splitPlan, metrics?.extent);\n }, [splitPlan, metrics?.extent]);\n\n // 预览按“整张纸面的真实尺寸”缩放,而不是按选区本身缩放。\n // 这样手动框选较小时,不会被自动放大到几乎铺满预览区域。\n const previewScale = useMemo(() => {\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n if (!frameSizeMm) {\n return 1;\n }\n\n const scaleX = frameSizeMm.width / PREVIEW_WIDTH;\n const scaleY = frameSizeMm.height / PREVIEW_HEIGHT;\n return Math.max(scaleX, scaleY, 0.0001);\n }, [splitPlan]);\n\n const selectedMapPixels = useMemo(() => {\n if (!totalWidthMm || !totalHeightMm || !previewScale) {\n return null;\n }\n\n return {\n width: Math.max(1, totalWidthMm / previewScale),\n height: Math.max(1, totalHeightMm / previewScale),\n };\n }, [totalWidthMm, totalHeightMm, previewScale]);\n\n const previewFramePixels = useMemo(() => {\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n if (!frameSizeMm || !previewScale) {\n return null;\n }\n\n return {\n width: Math.max(1, frameSizeMm.width / previewScale),\n height: Math.max(1, frameSizeMm.height / previewScale),\n };\n }, [splitPlan, previewScale]);\n\n const selectedRangeCoverage = useMemo(() => {\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n if (!frameSizeMm || !totalWidthMm || !totalHeightMm) {\n return null;\n }\n\n return {\n widthPercent: (totalWidthMm / frameSizeMm.width) * 100,\n heightPercent: (totalHeightMm / frameSizeMm.height) * 100,\n };\n }, [splitPlan, totalWidthMm, totalHeightMm]);\n\n useEffect(() => {\n if (splitPlan) {\n setSelectedSheetIds(splitPlan.sheets.map(item => item.id));\n }\n }, [splitPlan]);\n\n const handleRangeChange = value => {\n if (value === '1') {\n map.hideTip();\n boxLayerRef.current?.getSource()?.clear();\n boxExtentRef.current = null;\n } else {\n map.showTip(TextEnum.leftClickToStart);\n }\n\n drawTool.current?.setActive(value === '2');\n };\n\n const handlePageSizeChange = value => {\n const nextPageSize = value || 'A4';\n setPageSizeValue(nextPageSize);\n form.setFieldValue('pageSize', nextPageSize);\n };\n\n const handleExportMapCreated = exportMap => {\n exportMapRef.current = exportMap;\n exportMap.getInteractions().forEach(item => item.setActive(false));\n syncBusinessLayers(map, exportMap, boxLayerRef.current);\n };\n\n // 隐藏导出地图只在第一次真正需要时补同步业务图层,\n // 后面同一轮预览/导出尽量复用,避免频繁清空重建。\n const ensureRenderMapLayers = () => {\n if (!exportMapRef.current) {\n return false;\n }\n\n if (!renderLayersSyncedRef.current) {\n syncBusinessLayers(map, exportMapRef.current, boxLayerRef.current);\n renderLayersSyncedRef.current = true;\n }\n\n return true;\n };\n\n // 点击“执行分幅”时,直接读取外部主地图当前层级,\n // 也就是“外面地图是什么层级,进去就按什么层级算”。\n const handleSubmit = values => {\n const pageSize = values.pageSize || form.getFieldValue('pageSize');\n const overlapMargin = Number(values.overlapMargin ?? form.getFieldValue('overlapMargin')) || 0;\n // const overlapMargin = 10\n\n console.log('overlapMargin', values.overlapMargin, form.getFieldValue('overlapMargin'), overlapMargin)\n const extent =\n values.range === '1'\n ? map.getView().calculateExtent(map.getSize())\n : boxExtentRef.current;\n\n if (!isValidExtent(extent)) {\n return;\n }\n\n const zoom = Math.round(map.getView().getZoom?.() || 0);\n const nextMetrics = calcMetricsFromZoom(extent, map.getView(), zoom);\n if (!nextMetrics) {\n return;\n }\n\n console.log('[MapSheetPrint] 执行分幅参数', {\n rangeMode: values.range,\n extent,\n zoom,\n pageSize,\n overlapMargin,\n metrics: {\n geoWidth: nextMetrics.geoWidth,\n geoHeight: nextMetrics.geoHeight,\n pixelWidth: nextMetrics.pixelWidth,\n pixelHeight: nextMetrics.pixelHeight,\n widthMm: nextMetrics.widthMm,\n heightMm: nextMetrics.heightMm,\n ratio: nextMetrics.ratio,\n },\n });\n\n setFormVal({\n ...values,\n pageSize,\n overlapMargin,\n printZoom: zoom,\n });\n setPageSizeValue(pageSize);\n setOverlapMarginValue(overlapMargin);\n setMetrics(nextMetrics);\n setTotalWidthMm(Number(nextMetrics.widthMm.toFixed(3)));\n setTotalHeightMm(Number(nextMetrics.heightMm.toFixed(3)));\n setPreviewReady(false);\n setPreviewImage('');\n renderLayersSyncedRef.current = false;\n setSheetImages([]);\n setSheetVisible(false);\n setPreviewVisible(true);\n };\n\n const handleWidthChange = value => {\n if (!metrics || !value) {\n return;\n }\n\n const nextWidth = Number(value);\n setTotalWidthMm(nextWidth);\n setTotalHeightMm(Number((nextWidth * metrics.ratio).toFixed(3)));\n };\n\n const handleHeightChange = value => {\n if (!metrics || !value) {\n return;\n }\n\n const nextHeight = Number(value);\n setTotalHeightMm(nextHeight);\n setTotalWidthMm(Number((nextHeight / metrics.ratio).toFixed(3)));\n };\n\n const renderSheetImage = async sheet => {\n if (!splitPlan || !previewFramePixels || !previewImage) {\n return null;\n }\n\n const previewImg = await loadImage(previewImage);\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n const frameTotalWidthMm = frameSizeMm.width;\n const frameTotalHeightMm = frameSizeMm.height;\n const sourceX = (sheet.xMm / frameTotalWidthMm) * previewFramePixels.width;\n const sourceY = (sheet.yMm / frameTotalHeightMm) * previewFramePixels.height;\n const sourceWidth = (splitPlan.paperWidthMm / frameTotalWidthMm) * previewFramePixels.width;\n const sourceHeight = (splitPlan.paperHeightMm / frameTotalHeightMm) * previewFramePixels.height;\n const pageWidthPx = Math.max(1, Math.round(mmToPx(splitPlan.paperWidthMm, EXPORT_DPI)));\n const pageHeightPx = Math.max(1, Math.round(mmToPx(splitPlan.paperHeightMm, EXPORT_DPI)));\n\n console.log('[MapSheetPrint] 生成单张图幅', {\n sheetId: sheet.id,\n sheetIndex: sheet.index,\n sheetWidthMm: sheet.widthMm,\n sheetHeightMm: sheet.heightMm,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n pageWidthPx,\n pageHeightPx,\n });\n\n const pageCanvas = document.createElement('canvas');\n pageCanvas.width = pageWidthPx;\n pageCanvas.height = pageHeightPx;\n const ctx = pageCanvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, pageWidthPx, pageHeightPx);\n ctx.drawImage(\n previewImg,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n pageWidthPx,\n pageHeightPx,\n );\n\n return {\n ...sheet,\n url: pageCanvas.toDataURL('image/jpeg', 0.92),\n pixelWidth: pageWidthPx,\n pixelHeight: pageHeightPx,\n };\n };\n\n // 预览始终裁同一个原始 extent。\n // 宽高变大时,不改 extent,而是先把隐藏地图按更大的像素尺寸重新渲染,\n // 相当于“放大地图层级”,再把同一个 extent 裁成预览图。\n const renderPreviewImage = async seq => {\n if (\n !previewVisible ||\n !metrics?.extent ||\n !selectedMapPixels ||\n !previewFramePixels ||\n !exportMapRef.current ||\n !exportStageRef.current\n ) {\n return;\n }\n\n const widthScale = totalWidthMm / metrics.widthMm;\n const heightScale = totalHeightMm / metrics.heightMm;\n const captureWidthPx = Math.max(1, Math.round(metrics.pixelWidth * widthScale));\n const captureHeightPx = Math.max(1, Math.round(metrics.pixelHeight * heightScale));\n const targetResolution = Math.max(\n metrics.geoWidth / captureWidthPx,\n metrics.geoHeight / captureHeightPx,\n );\n const targetCenter = getExtentCenter(metrics.extent);\n\n console.log('[MapSheetPrint] 生成预览裁图', {\n seq,\n extent: metrics.extent,\n zoom: metrics.zoom,\n totalWidthMm,\n totalHeightMm,\n previewScale,\n previewFrameExtent,\n previewFramePixels,\n selectedMapPixels,\n captureWidthPx,\n captureHeightPx,\n targetResolution,\n targetCenter,\n splitPlan: splitPlan\n ? {\n cols: splitPlan.cols,\n rows: splitPlan.rows,\n totalSheets: splitPlan.totalSheets,\n paperWidthMm: splitPlan.paperWidthMm,\n paperHeightMm: splitPlan.paperHeightMm,\n stepX: splitPlan.stepX,\n stepY: splitPlan.stepY,\n }\n : null,\n });\n\n setPreviewReady(false);\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n if (!ensureRenderMapLayers()) {\n return;\n }\n\n setExportSize({\n width: captureWidthPx,\n height: captureHeightPx,\n });\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n exportMapRef.current.updateSize?.();\n const view = exportMapRef.current.getView();\n view.setCenter(targetCenter);\n view.setResolution(targetResolution);\n await waitMapRender(exportMapRef.current);\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n const sourceCanvas = await captureDomCanvas(\n exportStageRef.current,\n captureWidthPx,\n captureHeightPx,\n );\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n const previewCanvas = document.createElement('canvas');\n previewCanvas.width = Math.max(1, Math.round(previewFramePixels.width));\n previewCanvas.height = Math.max(1, Math.round(previewFramePixels.height));\n const ctx = previewCanvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, previewCanvas.width, previewCanvas.height);\n ctx.drawImage(\n sourceCanvas,\n 0,\n 0,\n captureWidthPx,\n captureHeightPx,\n 0,\n 0,\n selectedMapPixels.width,\n selectedMapPixels.height,\n );\n\n setPreviewImage(previewCanvas.toDataURL('image/jpeg', 0.92));\n setPreviewReady(true);\n };\n\n useEffect(() => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n\n if (!previewVisible) {\n return;\n }\n\n const seq = previewRenderSeqRef.current + 1;\n previewRenderSeqRef.current = seq;\n previewRenderTimerRef.current = setTimeout(() => {\n renderPreviewImage(seq);\n }, 120);\n\n return () => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n };\n }, [previewVisible, metrics?.extent, previewFrameExtent, previewFramePixels, selectedMapPixels, totalWidthMm, totalHeightMm]);\n\n useEffect(() => {\n if (!splitPlan) {\n return;\n }\n\n console.log('[MapSheetPrint] 分幅计算结果', {\n totalWidthMm,\n totalHeightMm,\n pageSize: pageSizeValue,\n overlapMargin: overlapMarginValue,\n cols: splitPlan.cols,\n rows: splitPlan.rows,\n totalSheets: splitPlan.totalSheets,\n paperWidthMm: splitPlan.paperWidthMm,\n paperHeightMm: splitPlan.paperHeightMm,\n sheets: splitPlan.sheets.map(item => ({\n id: item.id,\n index: item.index,\n xMm: item.xMm,\n yMm: item.yMm,\n widthMm: item.widthMm,\n heightMm: item.heightMm,\n isPartial: item.isPartial,\n })),\n });\n }, [splitPlan, totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);\n\n const handleGenerateSheets = async () => {\n if (!splitPlan?.sheets?.length) {\n return;\n }\n\n setGenerating(true);\n try {\n const images = [];\n\n for (const sheet of splitPlan.sheets) {\n const image = await renderSheetImage(sheet);\n if (image) {\n images.push(image);\n }\n }\n\n setSheetImages(images);\n setSelectedSheetIds(images.map(item => item.id));\n setPreviewVisible(false);\n setSheetVisible(true);\n } finally {\n setGenerating(false);\n }\n };\n\n const handleExportPdf = () => {\n const selectedImages = sheetImages.filter(item => selectedSheetIds.includes(item.id));\n if (!selectedImages.length || !splitPlan) {\n return;\n }\n\n createPdfFromImages({\n images: selectedImages,\n pageWidthMm: splitPlan.paperWidthMm,\n pageHeightMm: splitPlan.paperHeightMm,\n title: formVal.title,\n });\n };\n\n return (\n <DivModal title={TextEnum.toolMapSheetPrint} onClose={onClose}>\n <Form\n form={form}\n name=\"mapSheetPrint\"\n labelCol={{ span: 8 }}\n wrapperCol={{ span: 16 }}\n onFinish={handleSubmit}\n >\n <Form.Item\n label={TextEnum.mapTitle}\n name=\"title\"\n rules={[{ required: true, message: TextEnum.pleaseInputTitle }]}\n >\n <Input placeholder={TextEnum.pleaseInput} />\n </Form.Item>\n\n <Form.Item\n label={TextEnum.downloadRange}\n name=\"range\"\n rules={[{ required: true, message: TextEnum.pleaseSelect }]}\n >\n <Select\n placeholder={TextEnum.pleaseSelect}\n allowClear\n onChange={handleRangeChange}\n options={[\n { value: '1', label: TextEnum.currentView },\n { value: '2', label: TextEnum.manualBoxSelect },\n ]}\n />\n </Form.Item>\n\n <Form.Item\n label=\"纸张尺寸\"\n name=\"pageSize\"\n rules={[{ required: true, message: TextEnum.pleaseSelect }]}\n >\n <Select\n placeholder={TextEnum.pleaseSelect}\n allowClear\n onChange={handlePageSizeChange}\n options={pageSizeOptions.map(item => ({\n value: item,\n label: item,\n }))}\n />\n </Form.Item>\n\n <Form.Item label=\"重叠边距\">\n <Form.Item name=\"overlapMargin\" noStyle>\n <InputNumber\n min={0}\n precision={0}\n changeOnBlur={false}\n style={{ width: 'calc(100% - 40px)' }}\n />\n </Form.Item>\n <span>(mm)</span>\n </Form.Item>\n\n <Form.Item wrapperCol={{ offset: 8, span: 16 }}>\n <Button type=\"primary\" htmlType=\"submit\">\n 执行分幅\n </Button>\n </Form.Item>\n </Form>\n\n <Modal\n open={previewVisible}\n title={TextEnum.preview}\n onCancel={() => setPreviewVisible(false)}\n onOk={handleGenerateSheets}\n okText=\"确定\"\n cancelText={TextEnum.cancel}\n width={map.getViewport().clientWidth - 80}\n centered\n wrapClassName=\"ol-mapprint-modal\"\n confirmLoading={generating}\n destroyOnHidden={false}\n >\n <div style={{ display: 'flex', gap: 12, alignItems: 'center', marginBottom: 12 }}>\n <span>宽</span>\n <InputNumber\n min={0.001}\n precision={3}\n value={totalWidthMm}\n onChange={handleWidthChange}\n />\n <span>mm</span>\n <span style={{ color: '#999' }}>固定比例</span>\n <span>高</span>\n <InputNumber\n min={0.001}\n precision={3}\n value={totalHeightMm}\n onChange={handleHeightChange}\n />\n <span>mm</span>\n {splitPlan && (\n <span style={{ marginLeft: 'auto', color: '#666' }}>\n {splitPlan.cols} 列 x {splitPlan.rows} 行,共 {splitPlan.totalSheets} 幅\n </span>\n )}\n </div>\n\n <div\n style={{\n position: 'relative',\n height: PREVIEW_HEIGHT,\n overflow: 'auto',\n background: '#f5f5f5',\n border: '1px solid #e5e5e5',\n }}\n >\n {!previewReady && (\n <div\n style={{\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n background: 'rgba(255,255,255,0.72)',\n }}\n >\n <Spin />\n </div>\n )}\n\n {metrics && previewFramePixels && splitPlan && selectedMapPixels && (\n <div\n style={{\n position: 'relative',\n width: previewFramePixels.width,\n height: previewFramePixels.height,\n transformOrigin: 'top left',\n }}\n >\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: previewFramePixels.width,\n height: previewFramePixels.height,\n }}\n >\n <img\n src={previewImage}\n alt=\"sheet-preview\"\n style={{\n width: '100%',\n height: '100%',\n display: previewImage ? 'block' : 'none',\n }}\n />\n </div>\n\n {selectedRangeCoverage && selectedRangeCoverage.widthPercent < 100 && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: `${100 - selectedRangeCoverage.widthPercent}%`,\n height: `${selectedRangeCoverage.heightPercent}%`,\n background: 'rgba(255,255,255,0.96)',\n pointerEvents: 'none',\n }}\n />\n )}\n\n {selectedRangeCoverage && selectedRangeCoverage.heightPercent < 100 && (\n <div\n style={{\n position: 'absolute',\n left: 0,\n bottom: 0,\n width: '100%',\n height: `${100 - selectedRangeCoverage.heightPercent}%`,\n background: 'rgba(255,255,255,0.96)',\n pointerEvents: 'none',\n }}\n />\n )}\n\n {selectedRangeCoverage && (\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: `${selectedRangeCoverage.widthPercent}%`,\n height: `${selectedRangeCoverage.heightPercent}%`,\n border: '2px solid rgba(24, 144, 255, 0.9)',\n boxSizing: 'border-box',\n pointerEvents: 'none',\n }}\n />\n )}\n\n {splitPlan?.sheets?.map(sheet => (\n <div\n key={sheet.id}\n style={{\n position: 'absolute',\n left: `${(sheet.xMm / getPreviewFrameSizeMm(splitPlan).width) * 100}%`,\n top: `${(sheet.yMm / getPreviewFrameSizeMm(splitPlan).height) * 100}%`,\n width: `${(splitPlan.paperWidthMm / getPreviewFrameSizeMm(splitPlan).width) * 100}%`,\n height: `${(splitPlan.paperHeightMm / getPreviewFrameSizeMm(splitPlan).height) * 100}%`,\n border: '2px dashed #333',\n boxSizing: 'border-box',\n pointerEvents: 'none',\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: 4,\n left: 4,\n background: 'rgba(255,255,255,0.92)',\n padding: '0 4px',\n fontSize: 12,\n }}\n >\n {sheet.index}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </Modal>\n\n <Modal\n open={sheetVisible}\n title=\"图幅结果\"\n onCancel={() => setSheetVisible(false)}\n onOk={handleExportPdf}\n okText=\"打印\"\n cancelText={TextEnum.cancel}\n width={map.getViewport().clientWidth - 80}\n centered\n wrapClassName=\"ol-mapprint-modal\"\n >\n <div style={{ marginBottom: 12 }}>\n <Checkbox\n indeterminate={\n selectedSheetIds.length > 0 && selectedSheetIds.length < sheetImages.length\n }\n checked={sheetImages.length > 0 && selectedSheetIds.length === sheetImages.length}\n onChange={e =>\n setSelectedSheetIds(e.target.checked ? sheetImages.map(item => item.id) : [])\n }\n >\n 全选\n </Checkbox>\n </div>\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(240px, 1fr))',\n gap: 16,\n maxHeight: '70vh',\n overflow: 'auto',\n }}\n >\n {sheetImages.map(item => (\n <label\n key={item.id}\n style={{\n display: 'block',\n border: '1px solid #ddd',\n borderRadius: 6,\n padding: 12,\n background: '#fff',\n }}\n >\n <div style={{ marginBottom: 8, display: 'flex', alignItems: 'center', gap: 8 }}>\n <Checkbox\n checked={selectedSheetIds.includes(item.id)}\n onChange={e => {\n setSelectedSheetIds(current =>\n e.target.checked\n ? [...current, item.id]\n : current.filter(id => id !== item.id),\n );\n }}\n />\n <span>\n 第 {item.index} 幅 ({item.row}-{item.col})\n </span>\n </div>\n <img\n src={item.url}\n alt={`sheet-${item.index}`}\n style={{ width: '100%', display: 'block', border: '1px solid #eee' }}\n />\n </label>\n ))}\n </div>\n </Modal>\n\n <div\n style={{\n position: 'absolute',\n left: '-100000px',\n top: 0,\n width: exportSize.width,\n height: exportSize.height,\n overflow: 'hidden',\n }}\n >\n <div ref={exportStageRef} style={{ width: exportSize.width, height: exportSize.height }}>\n <OlMapComponent\n width={`${exportSize.width}px`}\n height={`${exportSize.height}px`}\n tk=\"1adbb6e47668cb33757cd799548bf1f4\"\n hidePopupTable={true}\n createdMap={handleExportMapCreated}\n />\n </div>\n </div>\n </DivModal>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_antd","_Modal","_interopRequireDefault","_jspdf","_html2canvas","_interaction","_Vector","_Tile","_Image","_Vector2","_Draw","_Draw2","_useProps2","_olMap","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_regenerator","toStringTag","c","prototype","Generator","create","_regeneratorDefine2","p","y","G","v","d","bind","l","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","ownKeys","keys","getOwnPropertySymbols","filter","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","constructor","name","test","pageSizeOptions","pageSizeMap","A4","width","height","A3","A2","A1","A0","DIMENSION_DPI","EXPORT_DPI","PREVIEW_HEIGHT","PREVIEW_WIDTH","pxToMm","px","dpi","undefined","mmToPx","mm","isValidExtent","extent","every","item","isFinite","calcMetricsFromZoom","view","zoom","resolution","getResolutionForZoom","getResolution","geoWidth","geoHeight","pixelWidth","pixelHeight","widthMm","heightMm","ratio","calcSplitPlan","_ref","totalWidthMm","totalHeightMm","pageSize","_ref$overlapMargin","overlapMargin","paper","safeOverlap","Math","max","stepX","stepY","cols","ceil","rows","sheets","row","col","xMm","yMm","min","id","concat","index","isPartial","paperWidthMm","paperHeightMm","totalSheets","buildSheetExtent","sheet","plan","totalExtent","_totalExtent","minX","minY","maxX","maxY","xScale","yScale","left","right","top","bottom","buildPreviewFrameExtent","_totalExtent2","frameWidthMm","frameHeightMm","getPreviewFrameSizeMm","getExtentCenter","cloneVectorSource","source","getFeatures","VectorSource","features","map","feature","clone","cloneLayer","layer","_layer$getOpacity","_layer$getVisible","_layer$getZIndex","_layer$getExtent","common","opacity","getOpacity","visible","getVisible","zIndex","getZIndex","getExtent","VectorLayer","clonedLayer","getSource","style","getStyle","TileLayer","ImageLayer","clearClonedLayers","mapInstance","getLayers","getArray","removeLayer","syncBusinessLayers","sourceMap","targetMap","excludeLayer","_layer$getVisible2","addLayer","waitNextFrame","requestAnimationFrame","waitMapRender","_mapInstance$renderSy","finish","once","setTimeout","renderSync","parseCanvasTransform","canvas","transformText","transform","window","getComputedStyle","match","split","trim","snapdomPromise","dynamicImport","specifier","Function","getSnapdom","_ref2","_callee","_context","mod","snapdom","captureDomCanvas","_ref3","_callee2","dom","ctx","layerCanvases","snapshot","_context2","document","createElement","round","getContext","fillStyle","fillRect","querySelectorAll","layerCanvas","parentStyle","parentElement","canvasStyle","backgroundColor","save","globalAlpha","setTransform","drawImage","restore","toCanvas","scale","_x","_x2","_x3","loadImage","src","reject","img","Image","onload","onerror","createPdfFromImages","_ref4","images","pageWidthMm","pageHeightMm","title","orientation","pdf","jsPDF","unit","format","compress","addPage","addImage","url","decodeURIComponent","_default","props","_splitPlan$sheets2","onClose","_useProps","useProps","TextEnum","_Form$useForm","Form","useForm","_Form$useForm2","form","_useState","useState","_useState2","previewVisible","setPreviewVisible","_useState3","_useState4","sheetVisible","setSheetVisible","_useState5","_useState6","formVal","setFormVal","_useState7","_useState8","pageSizeValue","setPageSizeValue","_useState9","_useState0","overlapMarginValue","setOverlapMarginValue","_useState1","_useState10","metrics","setMetrics","_useState11","_useState12","setTotalWidthMm","_useState13","_useState14","setTotalHeightMm","_useState15","_useState16","previewReady","setPreviewReady","_useState17","_useState18","previewImage","setPreviewImage","_useState19","_useState20","sheetImages","setSheetImages","_useState21","_useState22","selectedSheetIds","setSelectedSheetIds","_useState23","_useState24","generating","setGenerating","drawTool","useRef","boxExtentRef","boxLayerRef","exportMapRef","previewMapRef","exportStageRef","previewMasterCanvasRef","previewMasterFramePixelsRef","renderLayersSyncedRef","previewRenderSeqRef","previewRenderTimerRef","_useState25","_useState26","exportSize","setExportSize","useEffect","setFieldsValue","range","boxSource","boxLayer","drawStyle","tool","Draw","type","geometryFunction","createBox","current","setActive","on","clear","showTip","clickAgainToEnd","event","getGeometry","leftClickToStart","addInteraction","clearTimeout","removeInteraction","hideTip","splitPlan","useMemo","previewFrameExtent","previewScale","scaleX","scaleY","selectedMapPixels","previewFramePixels","frameSizeMm","selectedRangeCoverage","widthPercent","heightPercent","handleRangeChange","_drawTool$current","_boxLayerRef$current","handlePageSizeChange","nextPageSize","setFieldValue","handleExportMapCreated","exportMap","handlePreviewMapCreated","previewMap","ensureRenderMapLayers","syncPreviewMapLayers","handleSubmit","values","_values$overlapMargin","_map$getView$getZoom","_map$getView","getFieldValue","console","log","getView","calculateExtent","getSize","getZoom","nextMetrics","rangeMode","printZoom","toFixed","handleWidthChange","nextWidth","handleHeightChange","nextHeight","renderSheetImage","_ref5","_callee3","previewMasterCanvas","previewMasterFramePixels","frameTotalWidthMm","frameTotalHeightMm","sourceX","sourceY","sourceWidth","sourceHeight","pageWidthPx","pageHeightPx","pageCanvas","_context3","sheetId","sheetIndex","sheetWidthMm","sheetHeightMm","toDataURL","_x4","renderPreviewImage","_ref6","_callee4","seq","_exportMapRef$current","_exportMapRef$current2","widthScale","heightScale","captureWidthPx","captureHeightPx","targetResolution","targetCenter","_previewMapRef$curren","_previewMapRef$curren2","previewView","sourceCanvas","previewCanvas","masterScaleX","masterScaleY","masterCtx","_context4","updateSize","setCenter","setResolution","_x5","handleGenerateSheets","_ref7","_callee5","_splitPlan$sheets","_iterator","_step","image","_t","_context5","handleExportPdf","selectedImages","includes","toolMapSheetPrint","labelCol","span","wrapperCol","onFinish","Item","label","mapTitle","rules","required","message","pleaseInputTitle","Input","placeholder","pleaseInput","downloadRange","pleaseSelect","Select","allowClear","onChange","options","currentView","manualBoxSelect","noStyle","InputNumber","precision","changeOnBlur","offset","Button","htmlType","Modal","open","preview","onCancel","onOk","okText","cancelText","cancel","getViewport","clientWidth","centered","wrapClassName","confirmLoading","destroyOnHidden","display","gap","alignItems","marginBottom","color","marginLeft","position","overflow","background","border","inset","justifyContent","Spin","transformOrigin","Map","tk","hidePopupTable","createdMap","pointerEvents","alt","boxSizing","key","padding","fontSize","Checkbox","indeterminate","checked","target","gridTemplateColumns","maxHeight","borderRadius","ref"],"sources":["tools/Toolbox/MapSheetPrint/index.js"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Modal, Button, Select, Form, Input, InputNumber, Checkbox, Spin } from 'antd';\nimport DivModal from '../../components/Modal';\nimport { jsPDF } from 'jspdf';\n// import { snapdom } from '@zumer/snapdom';\nimport html2canvas from 'html2canvas';\nimport { Draw } from 'ol/interaction';\nimport VectorLayer from 'ol/layer/Vector';\nimport TileLayer from 'ol/layer/Tile';\nimport ImageLayer from 'ol/layer/Image';\nimport VectorSource from 'ol/source/Vector';\nimport { createBox } from 'ol/interaction/Draw';\nimport { drawStyle } from '../../Utils/Draw';\nimport useProps from '../../../use-props';\nimport { Map as OlMapComponent } from '@vtx/ol-map';\nimport './index.less';\n\nconst pageSizeOptions = ['A4', 'A3', 'A2', 'A1', 'A0'];\n\nconst pageSizeMap = {\n A4: { width: 210, height: 297 },\n A3: { width: 297, height: 420 },\n A2: { width: 420, height: 594 },\n A1: { width: 594, height: 841 },\n A0: { width: 841, height: 1189 },\n};\n\nconst DIMENSION_DPI = 96;\nconst EXPORT_DPI = 144;\nconst PREVIEW_HEIGHT = 610;\nconst PREVIEW_WIDTH = 980;\n\nconst pxToMm = (px, dpi = DIMENSION_DPI) => (px * 25.4) / dpi;\nconst mmToPx = (mm, dpi = EXPORT_DPI) => (mm * dpi) / 25.4;\n\nconst isValidExtent = extent => {\n return (\n Array.isArray(extent) &&\n extent.length === 4 &&\n extent.every(item => Number.isFinite(item)) &&\n extent[2] > extent[0] &&\n extent[3] > extent[1]\n );\n};\n\n// 按指定层级把地理范围换算成屏幕像素和毫米尺寸。\n// 这里算出来的宽高是后面分幅、预览和导出的统一基础数据。\nconst calcMetricsFromZoom = (extent, view, zoom) => {\n if (!isValidExtent(extent)) {\n return null;\n }\n\n const resolution = view.getResolutionForZoom(zoom) || view.getResolution();\n const geoWidth = extent[2] - extent[0];\n const geoHeight = extent[3] - extent[1];\n const pixelWidth = geoWidth / resolution;\n const pixelHeight = geoHeight / resolution;\n const widthMm = pxToMm(pixelWidth, DIMENSION_DPI);\n const heightMm = pxToMm(pixelHeight, DIMENSION_DPI);\n\n return {\n extent,\n zoom,\n resolution,\n geoWidth,\n geoHeight,\n pixelWidth,\n pixelHeight,\n widthMm,\n heightMm,\n ratio: heightMm / widthMm,\n };\n};\n\n// 根据总宽高、纸张尺寸和重叠边距,计算需要切成多少张纸,\n// 以及每一张纸在整幅图中的毫米位置。\nconst calcSplitPlan = ({ totalWidthMm, totalHeightMm, pageSize, overlapMargin = 0 }) => {\n const paper = pageSizeMap[pageSize];\n if (!paper || !totalWidthMm || !totalHeightMm) {\n return null;\n }\n\n const safeOverlap = Math.max(0, Number(overlapMargin) || 0);\n const stepX = Math.max(1, paper.width - safeOverlap);\n const stepY = Math.max(1, paper.height - safeOverlap);\n const cols = Math.max(1, Math.ceil(totalWidthMm / stepX));\n const rows = Math.max(1, Math.ceil(totalHeightMm / stepY));\n const sheets = [];\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const xMm = col * stepX;\n const yMm = row * stepY;\n const widthMm = Math.min(paper.width, totalWidthMm - xMm);\n const heightMm = Math.min(paper.height, totalHeightMm - yMm);\n\n sheets.push({\n id: `${row + 1}-${col + 1}`,\n index: row * cols + col + 1,\n row: row + 1,\n col: col + 1,\n xMm,\n yMm,\n widthMm,\n heightMm,\n isPartial: widthMm < paper.width || heightMm < paper.height,\n });\n }\n }\n\n return {\n paperWidthMm: paper.width,\n paperHeightMm: paper.height,\n overlapMargin: safeOverlap,\n totalWidthMm,\n totalHeightMm,\n stepX,\n stepY,\n cols,\n rows,\n totalSheets: sheets.length,\n sheets,\n };\n};\n\n// 把某一张分幅纸在整幅图中的毫米位置,映射回真实地图 extent。\nconst buildSheetExtent = (sheet, plan, totalExtent) => {\n const [minX, minY, maxX, maxY] = totalExtent;\n const xScale = (maxX - minX) / plan.totalWidthMm;\n const yScale = (maxY - minY) / plan.totalHeightMm;\n const left = minX + sheet.xMm * xScale;\n const right = left + sheet.widthMm * xScale;\n const top = maxY - sheet.yMm * yScale;\n const bottom = top - sheet.heightMm * yScale;\n\n return [left, bottom, right, top];\n};\n\n// 预览区显示的是“完整纸张网格”的外框,不是仅仅显示用户选中的蓝框范围。\n// 这样最后一张纸即使没铺满,虚线纸张尺寸也仍然是完整的。\nconst buildPreviewFrameExtent = (plan, totalExtent) => {\n if (!plan || !isValidExtent(totalExtent)) {\n return null;\n }\n\n const [minX, minY, maxX, maxY] = totalExtent;\n const xScale = (maxX - minX) / plan.totalWidthMm;\n const yScale = (maxY - minY) / plan.totalHeightMm;\n const frameWidthMm = plan.paperWidthMm + Math.max(0, plan.cols - 1) * plan.stepX;\n const frameHeightMm = plan.paperHeightMm + Math.max(0, plan.rows - 1) * plan.stepY;\n\n return [\n minX,\n maxY - frameHeightMm * yScale,\n minX + frameWidthMm * xScale,\n maxY,\n ];\n};\n\nconst getPreviewFrameSizeMm = plan => {\n if (!plan) {\n return null;\n }\n\n return {\n width: plan.paperWidthMm + Math.max(0, plan.cols - 1) * plan.stepX,\n height: plan.paperHeightMm + Math.max(0, plan.rows - 1) * plan.stepY,\n };\n};\n\nconst getExtentCenter = extent => [\n (extent[0] + extent[2]) / 2,\n (extent[1] + extent[3]) / 2,\n];\n\n// 预览/导出地图会复用原地图的图层源。\n// 矢量图层这里做一份克隆,避免直接操作原图层上的 feature。\nconst cloneVectorSource = source => {\n if (!source?.getFeatures) {\n return source;\n }\n\n return new VectorSource({\n features: source.getFeatures().map(feature => feature.clone()),\n });\n};\n\n// 这里只同步常见业务图层到隐藏导出地图中,\n// 不把框选图层、高亮层和底图标注层混进去,避免预览污染。\nconst cloneLayer = layer => {\n const common = {\n opacity: layer.getOpacity?.(),\n visible: layer.getVisible?.(),\n zIndex: layer.getZIndex?.(),\n extent: layer.getExtent?.(),\n };\n\n if (layer instanceof VectorLayer) {\n const clonedLayer = new VectorLayer({\n ...common,\n source: cloneVectorSource(layer.getSource()),\n style: layer.getStyle(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n if (layer instanceof TileLayer) {\n const clonedLayer = new TileLayer({\n ...common,\n source: layer.getSource(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n if (layer instanceof ImageLayer) {\n const clonedLayer = new ImageLayer({\n ...common,\n source: layer.getSource(),\n });\n clonedLayer.set('__sheetPrintClone', true);\n return clonedLayer;\n }\n\n return null;\n};\n\nconst clearClonedLayers = mapInstance => {\n if (!mapInstance) {\n return;\n }\n\n mapInstance\n .getLayers()\n .getArray()\n .filter(layer => layer.get('__sheetPrintClone'))\n .forEach(layer => mapInstance.removeLayer(layer));\n};\n\n// 隐藏导出地图和主地图不是同一个实例,所以需要把当前可见业务图层同步过去。\nconst syncBusinessLayers = (sourceMap, targetMap, excludeLayer) => {\n if (!sourceMap || !targetMap) {\n return;\n }\n\n clearClonedLayers(targetMap);\n\n sourceMap\n .getLayers()\n .getArray()\n .filter(layer => {\n if (layer === excludeLayer) {\n return false;\n }\n if (!layer?.getVisible?.()) {\n return false;\n }\n if (layer.get('key') === 'Highlight') {\n return false;\n }\n if (layer.get('key') === '__TDT_TILE' || layer.get('key') === '__TDT_MARK') {\n return false;\n }\n\n return (\n layer instanceof VectorLayer || layer instanceof TileLayer || layer instanceof ImageLayer\n );\n })\n .forEach(layer => {\n const clonedLayer = cloneLayer(layer);\n if (clonedLayer) {\n targetMap.addLayer(clonedLayer);\n }\n });\n};\n\nconst waitNextFrame = () =>\n new Promise(resolve => {\n requestAnimationFrame(() => {\n requestAnimationFrame(resolve);\n });\n });\n\nconst waitMapRender = mapInstance =>\n new Promise(resolve => {\n if (!mapInstance) {\n resolve();\n return;\n }\n\n let done = false;\n const finish = () => {\n if (done) {\n return;\n }\n done = true;\n resolve();\n };\n\n mapInstance.once('rendercomplete', finish);\n setTimeout(finish, 600);\n mapInstance.renderSync?.();\n });\n\nconst parseCanvasTransform = canvas => {\n const transformText =\n canvas.style.transform || window.getComputedStyle(canvas).transform || '';\n const match = transformText.match(/^matrix\\(([^)]+)\\)$/);\n\n if (!match) {\n return [1, 0, 0, 1, 0, 0];\n }\n\n return match[1]\n .split(',')\n .map(item => Number(item.trim()))\n .filter(item => Number.isFinite(item));\n};\n\n\nlet snapdomPromise = null;\n\nconst dynamicImport = specifier =>\n new Function('s', 'return import(s)')(specifier);\n\nconst getSnapdom = async () => {\n if (!snapdomPromise) {\n snapdomPromise = dynamicImport('@zumer/snapdom').then(mod => mod.snapdom);\n }\n return snapdomPromise;\n};\n\n\n// 优先直接合成 OpenLayers 实际渲染出来的各层 canvas,\n// 避免 html2canvas 再截图 DOM 时把地图细节压糊。\nconst captureDomCanvas = async (dom, width, height) => {\n const canvas = document.createElement('canvas');\n canvas.width = Math.max(1, Math.round(width));\n canvas.height = Math.max(1, Math.round(height));\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n const layerCanvases = Array.from(\n dom.querySelectorAll('.ol-layer canvas, canvas.ol-layer, canvas'),\n ).filter(item => item.width > 0 && item.height > 0);\n\n if (layerCanvases.length) {\n layerCanvases.forEach(layerCanvas => {\n const parentStyle = window.getComputedStyle(layerCanvas.parentElement || layerCanvas);\n const canvasStyle = window.getComputedStyle(layerCanvas);\n const opacity = Number(parentStyle.opacity || canvasStyle.opacity || 1);\n const transform = parseCanvasTransform(layerCanvas);\n const backgroundColor = parentStyle.backgroundColor;\n\n ctx.save();\n ctx.globalAlpha = Number.isFinite(opacity) ? opacity : 1;\n\n if (backgroundColor && backgroundColor !== 'rgba(0, 0, 0, 0)' && backgroundColor !== 'transparent') {\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n\n if (transform.length === 6) {\n ctx.setTransform(...transform);\n } else {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n\n ctx.drawImage(layerCanvas, 0, 0);\n ctx.restore();\n });\n\n return canvas;\n }\n\n // const snapshot = await html2canvas(dom, {\n // scale: 1,\n // backgroundColor: '#ffffff',\n // useCORS: true,\n // });\n\n const snapdom = await getSnapdom();\n const snapshot = await snapdom.toCanvas(dom, {\n scale: 1,\n backgroundColor: '#ffffff',\n });\n \n // const snapshot = await snapdom.toCanvas(dom, {\n // scale: 1,\n // backgroundColor: '#ffffff',\n // });\n ctx.drawImage(snapshot, 0, 0, canvas.width, canvas.height);\n\n return canvas;\n};\n\nconst loadImage = src =>\n new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = src;\n });\n\nconst createPdfFromImages = ({ images, pageWidthMm, pageHeightMm, title }) => {\n if (!images?.length) {\n return;\n }\n\n const orientation = pageWidthMm > pageHeightMm ? 'landscape' : 'portrait';\n const pdf = new jsPDF({\n orientation,\n unit: 'mm',\n format: [pageWidthMm, pageHeightMm],\n compress: true,\n });\n\n images.forEach((item, index) => {\n if (index > 0) {\n pdf.addPage([pageWidthMm, pageHeightMm], orientation);\n }\n\n pdf.addImage(item.url, 'PNG', 0, 0, pageWidthMm, pageHeightMm, undefined, 'FAST');\n });\n\n pdf.save(decodeURIComponent(`${title || 'map-sheet-print'}.pdf`));\n};\n\nexport default function(props) {\n const { onClose } = props;\n const { map, TextEnum } = useProps();\n const [form] = Form.useForm();\n const [previewVisible, setPreviewVisible] = useState(false);\n const [sheetVisible, setSheetVisible] = useState(false);\n const [formVal, setFormVal] = useState({});\n const [pageSizeValue, setPageSizeValue] = useState('A4');\n const [overlapMarginValue, setOverlapMarginValue] = useState(0);\n const [metrics, setMetrics] = useState(null);\n const [totalWidthMm, setTotalWidthMm] = useState(null);\n const [totalHeightMm, setTotalHeightMm] = useState(null);\n const [previewReady, setPreviewReady] = useState(false);\n const [previewImage, setPreviewImage] = useState('');\n const [sheetImages, setSheetImages] = useState([]);\n const [selectedSheetIds, setSelectedSheetIds] = useState([]);\n const [generating, setGenerating] = useState(false);\n const drawTool = useRef(null);\n const boxExtentRef = useRef(null);\n const boxLayerRef = useRef(null);\n const exportMapRef = useRef(null);\n const previewMapRef = useRef(null);\n const exportStageRef = useRef(null);\n const previewMasterCanvasRef = useRef(null);\n const previewMasterFramePixelsRef = useRef(null);\n const renderLayersSyncedRef = useRef(false);\n const previewRenderSeqRef = useRef(0);\n const previewRenderTimerRef = useRef(null);\n const [exportSize, setExportSize] = useState({ width: 1, height: 1 });\n\n useEffect(() => {\n form.setFieldsValue({\n range: '1',\n pageSize: 'A4',\n overlapMargin: 0,\n });\n }, []);\n\n useEffect(() => {\n const boxSource = new VectorSource();\n const boxLayer = new VectorLayer({\n source: boxSource,\n style: drawStyle(),\n zIndex: 9999,\n });\n const tool = new Draw({\n source: boxSource,\n type: 'Circle',\n style: feature => drawStyle(feature),\n geometryFunction: createBox(),\n });\n\n boxLayerRef.current = boxLayer;\n drawTool.current = tool;\n tool.setActive(false);\n\n tool.on('drawstart', () => {\n boxSource.clear();\n map.showTip(TextEnum.clickAgainToEnd);\n });\n\n tool.on('drawend', event => {\n const extent = event.feature.getGeometry().getExtent();\n boxExtentRef.current = extent;\n map.showTip(TextEnum.leftClickToStart);\n });\n\n map.addLayer(boxLayer);\n map.addInteraction(tool);\n\n return () => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n boxSource.clear();\n map.removeLayer(boxLayer);\n map.removeInteraction(tool);\n map.hideTip();\n };\n }, []);\n\n const splitPlan = useMemo(() => {\n return calcSplitPlan({\n totalWidthMm,\n totalHeightMm,\n pageSize: pageSizeValue,\n overlapMargin: overlapMarginValue,\n });\n }, [totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);\n\n const previewFrameExtent = useMemo(() => {\n return buildPreviewFrameExtent(splitPlan, metrics?.extent);\n }, [splitPlan, metrics?.extent]);\n\n // 预览里的“单张纸大小”应该只由纸张尺寸本身决定,\n // 不应该因为修改总宽高而把 A4/A3 的纸张框一起缩放掉。\n const previewScale = useMemo(() => {\n if (!splitPlan?.paperWidthMm || !splitPlan?.paperHeightMm) {\n return 1;\n }\n\n const scaleX = splitPlan.paperWidthMm / PREVIEW_WIDTH;\n const scaleY = splitPlan.paperHeightMm / PREVIEW_HEIGHT;\n return Math.max(scaleX, scaleY, 0.0001);\n }, [splitPlan]);\n\n const selectedMapPixels = useMemo(() => {\n if (!totalWidthMm || !totalHeightMm || !previewScale) {\n return null;\n }\n\n return {\n width: Math.max(1, totalWidthMm / previewScale),\n height: Math.max(1, totalHeightMm / previewScale),\n };\n }, [totalWidthMm, totalHeightMm, previewScale]);\n\n const previewFramePixels = useMemo(() => {\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n if (!frameSizeMm || !previewScale) {\n return null;\n }\n\n return {\n width: Math.max(1, frameSizeMm.width / previewScale),\n height: Math.max(1, frameSizeMm.height / previewScale),\n };\n }, [splitPlan, previewScale]);\n\n const selectedRangeCoverage = useMemo(() => {\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n if (!frameSizeMm || !totalWidthMm || !totalHeightMm) {\n return null;\n }\n\n return {\n widthPercent: (totalWidthMm / frameSizeMm.width) * 100,\n heightPercent: (totalHeightMm / frameSizeMm.height) * 100,\n };\n }, [splitPlan, totalWidthMm, totalHeightMm]);\n\n useEffect(() => {\n if (splitPlan) {\n setSelectedSheetIds(splitPlan.sheets.map(item => item.id));\n }\n }, [splitPlan]);\n\n const handleRangeChange = value => {\n if (value === '1') {\n map.hideTip();\n boxLayerRef.current?.getSource()?.clear();\n boxExtentRef.current = null;\n } else {\n map.showTip(TextEnum.leftClickToStart);\n }\n\n drawTool.current?.setActive(value === '2');\n };\n\n const handlePageSizeChange = value => {\n const nextPageSize = value || 'A4';\n setPageSizeValue(nextPageSize);\n form.setFieldValue('pageSize', nextPageSize);\n };\n\n const handleExportMapCreated = exportMap => {\n exportMapRef.current = exportMap;\n syncBusinessLayers(map, exportMap, boxLayerRef.current);\n };\n\n const handlePreviewMapCreated = previewMap => {\n previewMapRef.current = previewMap;\n syncBusinessLayers(map, previewMap, boxLayerRef.current);\n };\n\n // 隐藏导出地图只在第一次真正需要时补同步业务图层,\n // 后面同一轮预览/导出尽量复用,避免频繁清空重建。\n const ensureRenderMapLayers = () => {\n if (!exportMapRef.current) {\n return false;\n }\n\n if (!renderLayersSyncedRef.current) {\n syncBusinessLayers(map, exportMapRef.current, boxLayerRef.current);\n renderLayersSyncedRef.current = true;\n }\n\n return true;\n };\n\n const syncPreviewMapLayers = () => {\n if (!previewMapRef.current) {\n return false;\n }\n\n syncBusinessLayers(map, previewMapRef.current, boxLayerRef.current);\n return true;\n };\n\n // 点击“执行分幅”时,直接读取外部主地图当前层级,\n // 也就是“外面地图是什么层级,进去就按什么层级算”。\n const handleSubmit = values => {\n const pageSize = values.pageSize || form.getFieldValue('pageSize');\n const overlapMargin = Number(values.overlapMargin ?? form.getFieldValue('overlapMargin')) || 0;\n // const overlapMargin = 10\n\n console.log('overlapMargin', values.overlapMargin, form.getFieldValue('overlapMargin'), overlapMargin)\n const extent =\n values.range === '1'\n ? map.getView().calculateExtent(map.getSize())\n : boxExtentRef.current;\n\n if (!isValidExtent(extent)) {\n return;\n }\n\n const zoom = Math.round(map.getView().getZoom?.() || 0);\n const nextMetrics = calcMetricsFromZoom(extent, map.getView(), zoom);\n if (!nextMetrics) {\n return;\n }\n\n console.log('[MapSheetPrint] 执行分幅参数', {\n rangeMode: values.range,\n extent,\n zoom,\n pageSize,\n overlapMargin,\n metrics: {\n geoWidth: nextMetrics.geoWidth,\n geoHeight: nextMetrics.geoHeight,\n pixelWidth: nextMetrics.pixelWidth,\n pixelHeight: nextMetrics.pixelHeight,\n widthMm: nextMetrics.widthMm,\n heightMm: nextMetrics.heightMm,\n ratio: nextMetrics.ratio,\n },\n });\n\n setFormVal({\n ...values,\n pageSize,\n overlapMargin,\n printZoom: zoom,\n });\n setPageSizeValue(pageSize);\n setOverlapMarginValue(overlapMargin);\n setMetrics(nextMetrics);\n setTotalWidthMm(Number(nextMetrics.widthMm.toFixed(3)));\n setTotalHeightMm(Number(nextMetrics.heightMm.toFixed(3)));\n setPreviewReady(false);\n setPreviewImage('');\n previewMasterCanvasRef.current = null;\n previewMasterFramePixelsRef.current = null;\n renderLayersSyncedRef.current = false;\n setSheetImages([]);\n setSheetVisible(false);\n setPreviewVisible(true);\n };\n\n const handleWidthChange = value => {\n if (!metrics || !value) {\n return;\n }\n\n const nextWidth = Number(value);\n setTotalWidthMm(nextWidth);\n setTotalHeightMm(Number((nextWidth * metrics.ratio).toFixed(3)));\n };\n\n const handleHeightChange = value => {\n if (!metrics || !value) {\n return;\n }\n\n const nextHeight = Number(value);\n setTotalHeightMm(nextHeight);\n setTotalWidthMm(Number((nextHeight / metrics.ratio).toFixed(3)));\n };\n\n const renderSheetImage = async sheet => {\n if (!splitPlan || !previewMasterCanvasRef.current || !previewMasterFramePixelsRef.current) {\n return null;\n }\n\n const previewMasterCanvas = previewMasterCanvasRef.current;\n const previewMasterFramePixels = previewMasterFramePixelsRef.current;\n const frameSizeMm = getPreviewFrameSizeMm(splitPlan);\n const frameTotalWidthMm = frameSizeMm.width;\n const frameTotalHeightMm = frameSizeMm.height;\n const sourceX = (sheet.xMm / frameTotalWidthMm) * previewMasterFramePixels.width;\n const sourceY = (sheet.yMm / frameTotalHeightMm) * previewMasterFramePixels.height;\n const sourceWidth =\n (splitPlan.paperWidthMm / frameTotalWidthMm) * previewMasterFramePixels.width;\n const sourceHeight =\n (splitPlan.paperHeightMm / frameTotalHeightMm) * previewMasterFramePixels.height;\n const pageWidthPx = Math.max(1, Math.round(mmToPx(splitPlan.paperWidthMm, EXPORT_DPI)));\n const pageHeightPx = Math.max(1, Math.round(mmToPx(splitPlan.paperHeightMm, EXPORT_DPI)));\n\n console.log('[MapSheetPrint] 生成单张图幅', {\n sheetId: sheet.id,\n sheetIndex: sheet.index,\n sheetWidthMm: sheet.widthMm,\n sheetHeightMm: sheet.heightMm,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n pageWidthPx,\n pageHeightPx,\n });\n\n const pageCanvas = document.createElement('canvas');\n pageCanvas.width = pageWidthPx;\n pageCanvas.height = pageHeightPx;\n const ctx = pageCanvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, pageWidthPx, pageHeightPx);\n ctx.drawImage(\n previewMasterCanvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n pageWidthPx,\n pageHeightPx,\n );\n\n return {\n ...sheet,\n url: pageCanvas.toDataURL('image/png'),\n pixelWidth: pageWidthPx,\n pixelHeight: pageHeightPx,\n };\n };\n\n // 预览始终裁同一个原始 extent。\n // 宽高变大时,不改 extent,而是先把隐藏地图按更大的像素尺寸重新渲染,\n // 相当于“放大地图层级”,再把同一个 extent 裁成预览图。\n const renderPreviewImage = async seq => {\n if (\n !previewVisible ||\n !metrics?.extent ||\n !selectedMapPixels ||\n !previewFramePixels ||\n !exportMapRef.current ||\n !exportStageRef.current\n ) {\n return;\n }\n\n const widthScale = totalWidthMm / metrics.widthMm;\n const heightScale = totalHeightMm / metrics.heightMm;\n const captureWidthPx = Math.max(1, Math.round(metrics.pixelWidth * widthScale));\n const captureHeightPx = Math.max(1, Math.round(metrics.pixelHeight * heightScale));\n const targetResolution = Math.max(\n metrics.geoWidth / captureWidthPx,\n metrics.geoHeight / captureHeightPx,\n );\n const targetCenter = getExtentCenter(metrics.extent);\n\n console.log('[MapSheetPrint] 生成预览裁图', {\n seq,\n extent: metrics.extent,\n zoom: metrics.zoom,\n totalWidthMm,\n totalHeightMm,\n previewScale,\n previewFrameExtent,\n previewFramePixels,\n selectedMapPixels,\n captureWidthPx,\n captureHeightPx,\n targetResolution,\n targetCenter,\n splitPlan: splitPlan\n ? {\n cols: splitPlan.cols,\n rows: splitPlan.rows,\n totalSheets: splitPlan.totalSheets,\n paperWidthMm: splitPlan.paperWidthMm,\n paperHeightMm: splitPlan.paperHeightMm,\n stepX: splitPlan.stepX,\n stepY: splitPlan.stepY,\n }\n : null,\n });\n\n setPreviewReady(false);\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n if (!ensureRenderMapLayers()) {\n return;\n }\n syncPreviewMapLayers();\n\n setExportSize({\n width: captureWidthPx,\n height: captureHeightPx,\n });\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n exportMapRef.current.updateSize?.();\n const view = exportMapRef.current.getView();\n view.setCenter(targetCenter);\n view.setResolution(targetResolution);\n if (previewMapRef.current) {\n previewMapRef.current.updateSize?.();\n const previewView = previewMapRef.current.getView();\n previewView.setCenter(targetCenter);\n previewView.setResolution(targetResolution);\n }\n await waitMapRender(exportMapRef.current);\n if (previewMapRef.current) {\n await waitMapRender(previewMapRef.current);\n }\n await waitNextFrame();\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n const sourceCanvas = await captureDomCanvas(\n exportStageRef.current,\n captureWidthPx,\n captureHeightPx,\n );\n if (seq !== previewRenderSeqRef.current) {\n return;\n }\n\n const previewCanvas = document.createElement('canvas');\n previewCanvas.width = Math.max(1, Math.round(previewFramePixels.width));\n previewCanvas.height = Math.max(1, Math.round(previewFramePixels.height));\n const masterScaleX = captureWidthPx / Math.max(1, selectedMapPixels.width);\n const masterScaleY = captureHeightPx / Math.max(1, selectedMapPixels.height);\n const previewMasterCanvas = document.createElement('canvas');\n previewMasterCanvas.width = Math.max(\n 1,\n Math.round(previewFramePixels.width * masterScaleX),\n );\n previewMasterCanvas.height = Math.max(\n 1,\n Math.round(previewFramePixels.height * masterScaleY),\n );\n const masterCtx = previewMasterCanvas.getContext('2d');\n masterCtx.fillStyle = '#fff';\n masterCtx.fillRect(0, 0, previewMasterCanvas.width, previewMasterCanvas.height);\n masterCtx.drawImage(sourceCanvas, 0, 0, captureWidthPx, captureHeightPx);\n previewMasterCanvasRef.current = previewMasterCanvas;\n previewMasterFramePixelsRef.current = {\n width: previewMasterCanvas.width,\n height: previewMasterCanvas.height,\n };\n const ctx = previewCanvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, previewCanvas.width, previewCanvas.height);\n ctx.drawImage(previewMasterCanvas, 0, 0, previewCanvas.width, previewCanvas.height);\n\n setPreviewImage(previewCanvas.toDataURL('image/png'));\n setPreviewReady(true);\n };\n\n useEffect(() => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n\n if (!previewVisible) {\n return;\n }\n\n const seq = previewRenderSeqRef.current + 1;\n previewRenderSeqRef.current = seq;\n previewRenderTimerRef.current = setTimeout(() => {\n renderPreviewImage(seq);\n }, 120);\n\n return () => {\n if (previewRenderTimerRef.current) {\n clearTimeout(previewRenderTimerRef.current);\n }\n };\n }, [previewVisible, metrics?.extent, previewFrameExtent, previewFramePixels, selectedMapPixels, totalWidthMm, totalHeightMm]);\n\n useEffect(() => {\n if (!splitPlan) {\n return;\n }\n\n console.log('[MapSheetPrint] 分幅计算结果', {\n totalWidthMm,\n totalHeightMm,\n pageSize: pageSizeValue,\n overlapMargin: overlapMarginValue,\n cols: splitPlan.cols,\n rows: splitPlan.rows,\n totalSheets: splitPlan.totalSheets,\n paperWidthMm: splitPlan.paperWidthMm,\n paperHeightMm: splitPlan.paperHeightMm,\n sheets: splitPlan.sheets.map(item => ({\n id: item.id,\n index: item.index,\n xMm: item.xMm,\n yMm: item.yMm,\n widthMm: item.widthMm,\n heightMm: item.heightMm,\n isPartial: item.isPartial,\n })),\n });\n }, [splitPlan, totalWidthMm, totalHeightMm, pageSizeValue, overlapMarginValue]);\n\n const handleGenerateSheets = async () => {\n if (!splitPlan?.sheets?.length) {\n return;\n }\n\n setGenerating(true);\n try {\n const images = [];\n\n for (const sheet of splitPlan.sheets) {\n const image = await renderSheetImage(sheet);\n if (image) {\n images.push(image);\n }\n }\n\n setSheetImages(images);\n setSelectedSheetIds(images.map(item => item.id));\n setPreviewVisible(false);\n setSheetVisible(true);\n } finally {\n setGenerating(false);\n }\n };\n\n const handleExportPdf = () => {\n const selectedImages = sheetImages.filter(item => selectedSheetIds.includes(item.id));\n if (!selectedImages.length || !splitPlan) {\n return;\n }\n\n createPdfFromImages({\n images: selectedImages,\n pageWidthMm: splitPlan.paperWidthMm,\n pageHeightMm: splitPlan.paperHeightMm,\n title: formVal.title,\n });\n };\n\n return (\n <DivModal title={TextEnum.toolMapSheetPrint} onClose={onClose}>\n <Form\n form={form}\n name=\"mapSheetPrint\"\n labelCol={{ span: 8 }}\n wrapperCol={{ span: 16 }}\n onFinish={handleSubmit}\n >\n <Form.Item\n label={TextEnum.mapTitle}\n name=\"title\"\n rules={[{ required: true, message: TextEnum.pleaseInputTitle }]}\n >\n <Input placeholder={TextEnum.pleaseInput} />\n </Form.Item>\n\n <Form.Item\n label={TextEnum.downloadRange}\n name=\"range\"\n rules={[{ required: true, message: TextEnum.pleaseSelect }]}\n >\n <Select\n placeholder={TextEnum.pleaseSelect}\n allowClear\n onChange={handleRangeChange}\n options={[\n { value: '1', label: TextEnum.currentView },\n { value: '2', label: TextEnum.manualBoxSelect },\n ]}\n />\n </Form.Item>\n\n <Form.Item\n label=\"纸张尺寸\"\n name=\"pageSize\"\n rules={[{ required: true, message: TextEnum.pleaseSelect }]}\n >\n <Select\n placeholder={TextEnum.pleaseSelect}\n allowClear\n onChange={handlePageSizeChange}\n options={pageSizeOptions.map(item => ({\n value: item,\n label: item,\n }))}\n />\n </Form.Item>\n\n <Form.Item label=\"重叠边距\">\n <Form.Item name=\"overlapMargin\" noStyle>\n <InputNumber\n min={0}\n precision={0}\n changeOnBlur={false}\n style={{ width: 'calc(100% - 40px)' }}\n />\n </Form.Item>\n <span>(mm)</span>\n </Form.Item>\n\n <Form.Item wrapperCol={{ offset: 8, span: 16 }}>\n <Button type=\"primary\" htmlType=\"submit\">\n 执行分幅\n </Button>\n </Form.Item>\n </Form>\n\n <Modal\n open={previewVisible}\n title={TextEnum.preview}\n onCancel={() => setPreviewVisible(false)}\n onOk={handleGenerateSheets}\n okText=\"确定\"\n cancelText={TextEnum.cancel}\n width={map.getViewport().clientWidth - 80}\n centered\n wrapClassName=\"ol-mapprint-modal\"\n confirmLoading={generating}\n destroyOnHidden={false}\n >\n <div style={{ display: 'flex', gap: 12, alignItems: 'center', marginBottom: 12 }}>\n <span>宽</span>\n <InputNumber\n min={0.001}\n precision={3}\n value={totalWidthMm}\n onChange={handleWidthChange}\n />\n <span>mm</span>\n <span style={{ color: '#999' }}>固定比例</span>\n <span>高</span>\n <InputNumber\n min={0.001}\n precision={3}\n value={totalHeightMm}\n onChange={handleHeightChange}\n />\n <span>mm</span>\n {splitPlan && (\n <span style={{ marginLeft: 'auto', color: '#666' }}>\n {splitPlan.cols} 列 x {splitPlan.rows} 行,共 {splitPlan.totalSheets} 幅\n </span>\n )}\n </div>\n\n <div\n style={{\n position: 'relative',\n height: PREVIEW_HEIGHT,\n overflow: 'auto',\n background: '#f5f5f5',\n border: '1px solid #e5e5e5',\n }}\n >\n {!previewReady && (\n <div\n style={{\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n background: 'rgba(255,255,255,0.72)',\n }}\n >\n <Spin />\n </div>\n )}\n\n {metrics && previewFramePixels && splitPlan && selectedMapPixels && (\n <div\n style={{\n position: 'relative',\n width: previewFramePixels.width,\n height: previewFramePixels.height,\n transformOrigin: 'top left',\n }}\n >\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: selectedMapPixels.width,\n height: selectedMapPixels.height,\n overflow: 'hidden',\n zIndex: 0,\n display: 'none',\n }}\n >\n <OlMapComponent\n width={`${Math.max(1, Math.round(selectedMapPixels.width))}px`}\n height={`${Math.max(1, Math.round(selectedMapPixels.height))}px`}\n tk=\"1adbb6e47668cb33757cd799548bf1f4\"\n hidePopupTable={true}\n createdMap={handlePreviewMapCreated}\n />\n </div>\n\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: previewFramePixels.width,\n height: previewFramePixels.height,\n zIndex: 1,\n pointerEvents: 'none',\n }}\n >\n <img\n src={previewImage}\n alt=\"sheet-preview\"\n style={{\n width: '100%',\n height: '100%',\n display: previewImage ? 'block' : 'none',\n pointerEvents: 'none',\n opacity: 1,\n }}\n />\n </div>\n\n {selectedRangeCoverage && selectedRangeCoverage.widthPercent < 100 && (\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: `${100 - selectedRangeCoverage.widthPercent}%`,\n height: `${selectedRangeCoverage.heightPercent}%`,\n background: 'rgba(255,255,255,0.96)',\n pointerEvents: 'none',\n zIndex: 2,\n }}\n />\n )}\n\n {selectedRangeCoverage && selectedRangeCoverage.heightPercent < 100 && (\n <div\n style={{\n position: 'absolute',\n left: 0,\n bottom: 0,\n width: '100%',\n height: `${100 - selectedRangeCoverage.heightPercent}%`,\n background: 'rgba(255,255,255,0.96)',\n pointerEvents: 'none',\n zIndex: 2,\n }}\n />\n )}\n\n {selectedRangeCoverage && (\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: `${selectedRangeCoverage.widthPercent}%`,\n height: `${selectedRangeCoverage.heightPercent}%`,\n border: '2px solid rgba(24, 144, 255, 0.9)',\n boxSizing: 'border-box',\n pointerEvents: 'none',\n zIndex: 3,\n }}\n />\n )}\n\n {splitPlan?.sheets?.map(sheet => (\n <div\n key={sheet.id}\n style={{\n position: 'absolute',\n left: `${(sheet.xMm / getPreviewFrameSizeMm(splitPlan).width) * 100}%`,\n top: `${(sheet.yMm / getPreviewFrameSizeMm(splitPlan).height) * 100}%`,\n width: `${(splitPlan.paperWidthMm / getPreviewFrameSizeMm(splitPlan).width) * 100}%`,\n height: `${(splitPlan.paperHeightMm / getPreviewFrameSizeMm(splitPlan).height) * 100}%`,\n border: '2px dashed #333',\n boxSizing: 'border-box',\n pointerEvents: 'none',\n zIndex: 4,\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: 4,\n left: 4,\n background: 'rgba(255,255,255,0.92)',\n padding: '0 4px',\n fontSize: 12,\n }}\n >\n {sheet.index}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </Modal>\n\n <Modal\n open={sheetVisible}\n title=\"图幅结果\"\n onCancel={() => setSheetVisible(false)}\n onOk={handleExportPdf}\n okText=\"打印\"\n cancelText={TextEnum.cancel}\n width={map.getViewport().clientWidth - 80}\n centered\n wrapClassName=\"ol-mapprint-modal\"\n >\n <div style={{ marginBottom: 12 }}>\n <Checkbox\n indeterminate={\n selectedSheetIds.length > 0 && selectedSheetIds.length < sheetImages.length\n }\n checked={sheetImages.length > 0 && selectedSheetIds.length === sheetImages.length}\n onChange={e =>\n setSelectedSheetIds(e.target.checked ? sheetImages.map(item => item.id) : [])\n }\n >\n 全选\n </Checkbox>\n </div>\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(240px, 1fr))',\n gap: 16,\n maxHeight: '70vh',\n overflow: 'auto',\n }}\n >\n {sheetImages.map(item => (\n <label\n key={item.id}\n style={{\n display: 'block',\n border: '1px solid #ddd',\n borderRadius: 6,\n padding: 12,\n background: '#fff',\n }}\n >\n <div style={{ marginBottom: 8, display: 'flex', alignItems: 'center', gap: 8 }}>\n <Checkbox\n checked={selectedSheetIds.includes(item.id)}\n onChange={e => {\n setSelectedSheetIds(current =>\n e.target.checked\n ? [...current, item.id]\n : current.filter(id => id !== item.id),\n );\n }}\n />\n <span>\n 第 {item.index} 幅 ({item.row}-{item.col})\n </span>\n </div>\n <img\n src={item.url}\n alt={`sheet-${item.index}`}\n style={{ width: '100%', display: 'block', border: '1px solid #eee' }}\n />\n </label>\n ))}\n </div>\n </Modal>\n\n <div\n style={{\n position: 'absolute',\n left: '-100000px',\n top: 0,\n width: exportSize.width,\n height: exportSize.height,\n overflow: 'hidden',\n }}\n >\n <div ref={exportStageRef} style={{ width: exportSize.width, height: exportSize.height }}>\n <OlMapComponent\n width={`${exportSize.width}px`}\n height={`${exportSize.height}px`}\n tk=\"1adbb6e47668cb33757cd799548bf1f4\"\n hidePopupTable={true}\n createdMap={handleExportMapCreated}\n />\n </div>\n </div>\n </DivModal>\n );\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtx/ol-map",
3
- "version": "2.0.0-beta.14",
3
+ "version": "2.0.0-beta.16",
4
4
  "description": "React components for Vortex",
5
5
  "keywords": [
6
6
  "react",
@@ -60,7 +60,8 @@
60
60
  "ol": "6.15.1",
61
61
  "print-js": "^1.6.0",
62
62
  "prop-types": "^15.8.1",
63
- "dayjs": "^1.11.10"
63
+ "dayjs": "^1.11.10",
64
+ "@zumer/snapdom": "^2.9.0"
64
65
  },
65
66
  "peerDependencies": {
66
67
  "@ant-design/icons": "^6.0.0",
@@ -75,11 +76,9 @@
75
76
  "dayjs": "^1.11.10",
76
77
  "lodash-es": "^4.17.21",
77
78
  "react": "^18.0.0",
78
- "react-dom": "^18.0.0",
79
- "@zumer/snapdom": "^2.9.0"
79
+ "react-dom": "^18.0.0"
80
80
  },
81
81
  "devDependencies": {
82
- "@zumer/snapdom": "^2.9.0",
83
82
  "@ant-design/icons": "^6.0.0",
84
83
  "@babel/cli": "^7.6.4",
85
84
  "@babel/core": "^7.6.4",