@mint-ui/map 1.2.0-test.36 → 1.2.0-test.38

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.
@@ -25,6 +25,10 @@ export interface CanvasOption {
25
25
  tailHeight?: number;
26
26
  paths?: Paths;
27
27
  isDonutPolygon?: boolean;
28
+ /** 렌더링 오프셋 X (픽셀 단위, 기본값: 0) */
29
+ offsetX?: number;
30
+ /** 렌더링 오프셋 Y (픽셀 단위, 기본값: 0) */
31
+ offsetY?: number;
28
32
  }
29
33
  /**
30
34
  * 서버 데이터와 캔버스 옵션을 결합한 타입
@@ -35,7 +35,7 @@ export declare const isPointInPolygon: (point: Offset, polygon: number[][]) => b
35
35
  */
36
36
  export declare const isPointInPolygonData: (clickedOffset: Offset, polygonData: CanvasData<any>, getPolygonOffsets: (data: CanvasData<any>) => number[][][][] | null) => boolean;
37
37
  /**
38
- * 마커 히트 테스트 (꼬리 제외)
38
+ * 마커 히트 테스트 (꼬리 제외, 오프셋 지원)
39
39
  *
40
40
  * @param clickedOffset 클릭/마우스 위치 좌표
41
41
  * @param markerData 마커 데이터
@@ -149,7 +149,7 @@ var isPointInPolygonData = function (clickedOffset, polygonData, getPolygonOffse
149
149
  return false;
150
150
  };
151
151
  /**
152
- * 마커 히트 테스트 (꼬리 제외)
152
+ * 마커 히트 테스트 (꼬리 제외, 오프셋 지원)
153
153
  *
154
154
  * @param clickedOffset 클릭/마우스 위치 좌표
155
155
  * @param markerData 마커 데이터
@@ -162,10 +162,12 @@ var isPointInMarkerData = function (clickedOffset, markerData, getMarkerOffset)
162
162
  if (!markerOffset) return false;
163
163
  var boxWidth = markerData.boxWidth || 50;
164
164
  var boxHeight = markerData.boxHeight || 28;
165
- var tailHeight = markerData.tailHeight || 0; // 마커 중심점 기준으로 박스 영역 계산 (꼬리는 제외)
165
+ var tailHeight = markerData.tailHeight || 0;
166
+ var offsetX = markerData.offsetX || 0;
167
+ var offsetY = markerData.offsetY || 0; // 오프셋을 적용한 마커 중심점 기준으로 박스 영역 계산 (꼬리는 제외)
166
168
 
167
- var x = markerOffset.x - boxWidth / 2;
168
- var y = markerOffset.y - boxHeight - tailHeight; // 클릭 위치가 박스 영역 내부에 있는지 확인
169
+ var x = markerOffset.x + offsetX - boxWidth / 2;
170
+ var y = markerOffset.y + offsetY - boxHeight - tailHeight; // 클릭 위치가 박스 영역 내부에 있는지 확인
169
171
 
170
172
  return clickedOffset.x >= x && clickedOffset.x <= x + boxWidth && clickedOffset.y >= y && clickedOffset.y <= y + boxHeight;
171
173
  }; // Hex 색상을 RGBA로 변환
@@ -93,7 +93,7 @@ var WoongCanvasMarker = function (props) {
93
93
  if (!result) return null;
94
94
  offsetCacheRef.current.set(markerData.id, result);
95
95
  return result;
96
- }; // 마커 바운딩 박스 계산 (Viewport Culling 및 Hit Test)
96
+ }; // 마커 바운딩 박스 계산 (Viewport Culling 및 Hit Test용, 오프셋 지원)
97
97
 
98
98
 
99
99
  var computeBoundingBox = function (item) {
@@ -102,11 +102,14 @@ var WoongCanvasMarker = function (props) {
102
102
  var boxWidth = item.boxWidth || 50;
103
103
  var boxHeight = item.boxHeight || 28;
104
104
  var tailHeight = item.tailHeight || 0;
105
+ var offsetX = item.offsetX || 0;
106
+ var offsetY = item.offsetY || 0; // 오프셋을 적용한 마커 중심점 기준으로 바운딩 박스 계산
107
+
105
108
  return {
106
- minX: offset.x - boxWidth / 2,
107
- minY: offset.y - boxHeight - tailHeight,
108
- maxX: offset.x + boxWidth / 2,
109
- maxY: offset.y
109
+ minX: offset.x + offsetX - boxWidth / 2,
110
+ minY: offset.y + offsetY - boxHeight - tailHeight,
111
+ maxX: offset.x + offsetX + boxWidth / 2,
112
+ maxY: offset.y + offsetY
110
113
  };
111
114
  }; // 공간 인덱스 빌드 (빠른 Hit Test용)
112
115
 
package/dist/index.es.js CHANGED
@@ -936,7 +936,7 @@ var isPointInPolygonData = function (clickedOffset, polygonData, getPolygonOffse
936
936
  return false;
937
937
  };
938
938
  /**
939
- * 마커 히트 테스트 (꼬리 제외)
939
+ * 마커 히트 테스트 (꼬리 제외, 오프셋 지원)
940
940
  *
941
941
  * @param clickedOffset 클릭/마우스 위치 좌표
942
942
  * @param markerData 마커 데이터
@@ -949,10 +949,12 @@ var isPointInMarkerData = function (clickedOffset, markerData, getMarkerOffset)
949
949
  if (!markerOffset) return false;
950
950
  var boxWidth = markerData.boxWidth || 50;
951
951
  var boxHeight = markerData.boxHeight || 28;
952
- var tailHeight = markerData.tailHeight || 0; // 마커 중심점 기준으로 박스 영역 계산 (꼬리는 제외)
952
+ var tailHeight = markerData.tailHeight || 0;
953
+ var offsetX = markerData.offsetX || 0;
954
+ var offsetY = markerData.offsetY || 0; // 오프셋을 적용한 마커 중심점 기준으로 박스 영역 계산 (꼬리는 제외)
953
955
 
954
- var x = markerOffset.x - boxWidth / 2;
955
- var y = markerOffset.y - boxHeight - tailHeight; // 클릭 위치가 박스 영역 내부에 있는지 확인
956
+ var x = markerOffset.x + offsetX - boxWidth / 2;
957
+ var y = markerOffset.y + offsetY - boxHeight - tailHeight; // 클릭 위치가 박스 영역 내부에 있는지 확인
956
958
 
957
959
  return clickedOffset.x >= x && clickedOffset.x <= x + boxWidth && clickedOffset.y >= y && clickedOffset.y <= y + boxHeight;
958
960
  }; // Hex 색상을 RGBA로 변환
@@ -5638,7 +5640,7 @@ var WoongCanvasMarker = function (props) {
5638
5640
  if (!result) return null;
5639
5641
  offsetCacheRef.current.set(markerData.id, result);
5640
5642
  return result;
5641
- }; // 마커 바운딩 박스 계산 (Viewport Culling 및 Hit Test)
5643
+ }; // 마커 바운딩 박스 계산 (Viewport Culling 및 Hit Test용, 오프셋 지원)
5642
5644
 
5643
5645
 
5644
5646
  var computeBoundingBox = function (item) {
@@ -5647,11 +5649,14 @@ var WoongCanvasMarker = function (props) {
5647
5649
  var boxWidth = item.boxWidth || 50;
5648
5650
  var boxHeight = item.boxHeight || 28;
5649
5651
  var tailHeight = item.tailHeight || 0;
5652
+ var offsetX = item.offsetX || 0;
5653
+ var offsetY = item.offsetY || 0; // 오프셋을 적용한 마커 중심점 기준으로 바운딩 박스 계산
5654
+
5650
5655
  return {
5651
- minX: offset.x - boxWidth / 2,
5652
- minY: offset.y - boxHeight - tailHeight,
5653
- maxX: offset.x + boxWidth / 2,
5654
- maxY: offset.y
5656
+ minX: offset.x + offsetX - boxWidth / 2,
5657
+ minY: offset.y + offsetY - boxHeight - tailHeight,
5658
+ maxX: offset.x + offsetX + boxWidth / 2,
5659
+ maxY: offset.y + offsetY
5655
5660
  };
5656
5661
  }; // 공간 인덱스 빌드 (빠른 Hit Test용)
5657
5662
 
package/dist/index.umd.js CHANGED
@@ -940,7 +940,7 @@
940
940
  return false;
941
941
  };
942
942
  /**
943
- * 마커 히트 테스트 (꼬리 제외)
943
+ * 마커 히트 테스트 (꼬리 제외, 오프셋 지원)
944
944
  *
945
945
  * @param clickedOffset 클릭/마우스 위치 좌표
946
946
  * @param markerData 마커 데이터
@@ -953,10 +953,12 @@
953
953
  if (!markerOffset) return false;
954
954
  var boxWidth = markerData.boxWidth || 50;
955
955
  var boxHeight = markerData.boxHeight || 28;
956
- var tailHeight = markerData.tailHeight || 0; // 마커 중심점 기준으로 박스 영역 계산 (꼬리는 제외)
956
+ var tailHeight = markerData.tailHeight || 0;
957
+ var offsetX = markerData.offsetX || 0;
958
+ var offsetY = markerData.offsetY || 0; // 오프셋을 적용한 마커 중심점 기준으로 박스 영역 계산 (꼬리는 제외)
957
959
 
958
- var x = markerOffset.x - boxWidth / 2;
959
- var y = markerOffset.y - boxHeight - tailHeight; // 클릭 위치가 박스 영역 내부에 있는지 확인
960
+ var x = markerOffset.x + offsetX - boxWidth / 2;
961
+ var y = markerOffset.y + offsetY - boxHeight - tailHeight; // 클릭 위치가 박스 영역 내부에 있는지 확인
960
962
 
961
963
  return clickedOffset.x >= x && clickedOffset.x <= x + boxWidth && clickedOffset.y >= y && clickedOffset.y <= y + boxHeight;
962
964
  }; // Hex 색상을 RGBA로 변환
@@ -5642,7 +5644,7 @@
5642
5644
  if (!result) return null;
5643
5645
  offsetCacheRef.current.set(markerData.id, result);
5644
5646
  return result;
5645
- }; // 마커 바운딩 박스 계산 (Viewport Culling 및 Hit Test)
5647
+ }; // 마커 바운딩 박스 계산 (Viewport Culling 및 Hit Test용, 오프셋 지원)
5646
5648
 
5647
5649
 
5648
5650
  var computeBoundingBox = function (item) {
@@ -5651,11 +5653,14 @@
5651
5653
  var boxWidth = item.boxWidth || 50;
5652
5654
  var boxHeight = item.boxHeight || 28;
5653
5655
  var tailHeight = item.tailHeight || 0;
5656
+ var offsetX = item.offsetX || 0;
5657
+ var offsetY = item.offsetY || 0; // 오프셋을 적용한 마커 중심점 기준으로 바운딩 박스 계산
5658
+
5654
5659
  return {
5655
- minX: offset.x - boxWidth / 2,
5656
- minY: offset.y - boxHeight - tailHeight,
5657
- maxX: offset.x + boxWidth / 2,
5658
- maxY: offset.y
5660
+ minX: offset.x + offsetX - boxWidth / 2,
5661
+ minY: offset.y + offsetY - boxHeight - tailHeight,
5662
+ maxX: offset.x + offsetX + boxWidth / 2,
5663
+ maxY: offset.y + offsetY
5659
5664
  };
5660
5665
  }; // 공간 인덱스 빌드 (빠른 Hit Test용)
5661
5666
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mint-ui/map",
3
- "version": "1.2.0-test.36",
3
+ "version": "1.2.0-test.38",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.es.js",
6
6
  "browser": "./dist/index.umd.js",