@mint-ui/map 0.5.5-beta → 0.5.7-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +109 -109
- package/LICENSE +21 -21
- package/README.md +73 -73
- package/dist/components/mint-map/MintMap.d.ts +10 -10
- package/dist/components/mint-map/MintMap.js +6 -6
- package/dist/components/mint-map/core/MintMapCanvasRenderer.d.ts +4 -4
- package/dist/components/mint-map/core/MintMapController.d.ts +65 -64
- package/dist/components/mint-map/core/MintMapController.js +17 -9
- package/dist/components/mint-map/core/MintMapCore.d.ts +3 -3
- package/dist/components/mint-map/core/advanced/MapBuildingProjection.d.ts +15 -15
- package/dist/components/mint-map/core/advanced/MapLoadingComponents.d.ts +17 -17
- package/dist/components/mint-map/core/advanced/index.d.ts +3 -3
- package/dist/components/mint-map/core/advanced/shapes/CircleMarker.d.ts +20 -20
- package/dist/components/mint-map/core/advanced/shapes/CircleMarker.js +7 -6
- package/dist/components/mint-map/core/advanced/shapes/PolygonMarker.d.ts +26 -23
- package/dist/components/mint-map/core/advanced/shapes/PolygonMarker.js +7 -6
- package/dist/components/mint-map/core/advanced/shapes/base/SVGCircle.d.ts +8 -8
- package/dist/components/mint-map/core/advanced/shapes/base/SVGPolygon.d.ts +12 -12
- package/dist/components/mint-map/core/advanced/shapes/base/SVGRect.d.ts +10 -10
- package/dist/components/mint-map/core/advanced/shapes/base/index.d.ts +3 -3
- package/dist/components/mint-map/core/advanced/shapes/index.d.ts +3 -3
- package/dist/components/mint-map/core/hooks/MarkerMovingHook.d.ts +6 -6
- package/dist/components/mint-map/core/hooks/index.d.ts +1 -1
- package/dist/components/mint-map/core/index.d.ts +8 -8
- package/dist/components/mint-map/core/provider/MintMapProvider.d.ts +8 -8
- package/dist/components/mint-map/core/provider/index.d.ts +1 -1
- package/dist/components/mint-map/core/util/animation.d.ts +16 -16
- package/dist/components/mint-map/core/util/cluster.d.ts +18 -18
- package/dist/components/mint-map/core/util/geo.d.ts +38 -38
- package/dist/components/mint-map/core/util/index.d.ts +7 -5
- package/dist/components/mint-map/core/util/log.d.ts +1 -0
- package/dist/components/mint-map/core/util/log.js +18 -0
- package/dist/components/mint-map/core/util/polygon.d.ts +42 -40
- package/dist/components/mint-map/core/util/polygon.js +37 -8
- package/dist/components/mint-map/core/util/status.d.ts +9 -0
- package/dist/components/mint-map/core/util/status.js +58 -0
- package/dist/components/mint-map/core/util/waiting.d.ts +1 -1
- package/dist/components/mint-map/core/wrapper/MapCanvasMarkerWrapper.d.ts +27 -27
- package/dist/components/mint-map/core/wrapper/MapCanvasMarkerWrapper.js +6 -6
- package/dist/components/mint-map/core/wrapper/MapCanvasWrapper.d.ts +11 -11
- package/dist/components/mint-map/core/wrapper/MapCanvasWrapper.js +6 -6
- package/dist/components/mint-map/core/wrapper/MapControlWrapper.d.ts +18 -18
- package/dist/components/mint-map/core/wrapper/MapControlWrapper.js +6 -6
- package/dist/components/mint-map/core/wrapper/MapMarkerWrapper.d.ts +42 -42
- package/dist/components/mint-map/core/wrapper/MapMarkerWrapper.js +6 -6
- package/dist/components/mint-map/core/wrapper/MapPolygonWrapper.d.ts +12 -12
- package/dist/components/mint-map/core/wrapper/MapPolygonWrapper.js +6 -6
- package/dist/components/mint-map/core/wrapper/MapPolylineWrapper.d.ts +12 -12
- package/dist/components/mint-map/core/wrapper/MapPolylineWrapper.js +6 -6
- package/dist/components/mint-map/core/wrapper/index.d.ts +6 -6
- package/dist/components/mint-map/google/GoogleMintMapController.d.ts +51 -51
- package/dist/components/mint-map/google/GoogleMintMapController.js +8 -0
- package/dist/components/mint-map/index.d.ts +5 -5
- package/dist/components/mint-map/kakao/KakaoMintMapController.d.ts +56 -56
- package/dist/components/mint-map/kakao/KakaoMintMapController.js +14 -7
- package/dist/components/mint-map/naver/NaverMintMapController.d.ts +54 -54
- package/dist/components/mint-map/naver/NaverMintMapController.js +16 -9
- package/dist/components/mint-map/types/CommonTypes.d.ts +11 -11
- package/dist/components/mint-map/types/MapDrawables.d.ts +118 -110
- package/dist/components/mint-map/types/MapDrawables.js +8 -8
- package/dist/components/mint-map/types/MapEventTypes.d.ts +44 -44
- package/dist/components/mint-map/types/MapTypes.d.ts +60 -60
- package/dist/components/mint-map/types/MapTypes.js +13 -13
- package/dist/components/mint-map/types/MintMapEvents.d.ts +25 -25
- package/dist/components/mint-map/types/MintMapProps.d.ts +96 -92
- package/dist/components/mint-map/types/index.d.ts +6 -6
- package/dist/index.d.ts +7 -7
- package/dist/index.es.js +462 -349
- package/dist/index.js +4 -0
- package/dist/index.umd.js +462 -347
- package/package.json +77 -77
package/dist/index.umd.js
CHANGED
|
@@ -365,9 +365,30 @@
|
|
|
365
365
|
return false;
|
|
366
366
|
};
|
|
367
367
|
|
|
368
|
-
PolygonCalculator.simplifyPoints = function (polygon, tolerance,
|
|
369
|
-
|
|
370
|
-
|
|
368
|
+
PolygonCalculator.simplifyPoints = function (polygon, tolerance, _lastRepeated) {
|
|
369
|
+
return this.simplify(this.pathCleaning(polygon), tolerance !== undefined ? tolerance : this.TOLERANCE_NAVER_STYLE);
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
PolygonCalculator.pathCleaning = function (polygon) {
|
|
373
|
+
if (polygon.length < 3) {
|
|
374
|
+
return polygon;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
var main = polygon[0];
|
|
378
|
+
var delCount = 0;
|
|
379
|
+
|
|
380
|
+
for (var i = polygon.length - 1; i >= 0; i--) {
|
|
381
|
+
if (main.equals(polygon[i])) {
|
|
382
|
+
delCount += 1;
|
|
383
|
+
} else {
|
|
384
|
+
break;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
delCount > 0 && polygon.splice(polygon.length - delCount, delCount);
|
|
389
|
+
var out = [];
|
|
390
|
+
out.push.apply(out, polygon);
|
|
391
|
+
return out;
|
|
371
392
|
};
|
|
372
393
|
|
|
373
394
|
PolygonCalculator.simplify = function (points, tolerance) {
|
|
@@ -378,8 +399,10 @@
|
|
|
378
399
|
var dMax = 0;
|
|
379
400
|
var index = 0; // Find the point with the maximum distance from the line segment
|
|
380
401
|
|
|
402
|
+
var denominator = this.perpendicularDistanceDenominator(points[0], points[points.length - 1]);
|
|
403
|
+
|
|
381
404
|
for (var i = 1; i < points.length - 1; i++) {
|
|
382
|
-
var d = this.perpendicularDistance(points[i], points[0], points[points.length - 1]);
|
|
405
|
+
var d = this.perpendicularDistance(points[i], points[0], points[points.length - 1], denominator);
|
|
383
406
|
|
|
384
407
|
if (d > dMax) {
|
|
385
408
|
dMax = d;
|
|
@@ -397,19 +420,25 @@
|
|
|
397
420
|
// If the maximum distance is less than or equal to the tolerance, return the endpoints
|
|
398
421
|
return [points[0], points[points.length - 1]];
|
|
399
422
|
}
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
PolygonCalculator.perpendicularDistanceDenominator = function (lineStart, lineEnd) {
|
|
426
|
+
var x1 = lineStart.x,
|
|
427
|
+
y1 = lineStart.y;
|
|
428
|
+
var x2 = lineEnd.x,
|
|
429
|
+
y2 = lineEnd.y;
|
|
430
|
+
return Math.sqrt(Math.pow(y2 - y1, 2) + Math.pow(x2 - x1, 2));
|
|
400
431
|
}; // Calculate the perpendicular distance from a point to a line segment
|
|
401
432
|
|
|
402
433
|
|
|
403
|
-
PolygonCalculator.perpendicularDistance = function (point, lineStart, lineEnd) {
|
|
434
|
+
PolygonCalculator.perpendicularDistance = function (point, lineStart, lineEnd, denominator) {
|
|
404
435
|
var x = point.x;
|
|
405
436
|
var y = point.y;
|
|
406
437
|
var x1 = lineStart.x;
|
|
407
438
|
var y1 = lineStart.y;
|
|
408
439
|
var x2 = lineEnd.x;
|
|
409
440
|
var y2 = lineEnd.y;
|
|
410
|
-
|
|
411
|
-
var denominator = Math.sqrt(Math.pow(y2 - y1, 2) + Math.pow(x2 - x1, 2));
|
|
412
|
-
return numerator / denominator;
|
|
441
|
+
return Math.abs((y2 - y1) * x - (x2 - x1) * y + x2 * y1 - y2 * x1) / denominator;
|
|
413
442
|
};
|
|
414
443
|
|
|
415
444
|
PolygonCalculator.calculatePolygonSize = function (polygon, innerPolygons) {
|
|
@@ -448,23 +477,23 @@
|
|
|
448
477
|
return PolygonCalculator;
|
|
449
478
|
}();
|
|
450
479
|
|
|
451
|
-
/**
|
|
452
|
-
* 좌표값
|
|
453
|
-
* @description 위도/경도, DOM 상의 X/Y 좌표
|
|
480
|
+
/**
|
|
481
|
+
* 좌표값
|
|
482
|
+
* @description 위도/경도, DOM 상의 X/Y 좌표
|
|
454
483
|
*/
|
|
455
484
|
|
|
456
485
|
var Position =
|
|
457
486
|
/** @class */
|
|
458
487
|
function () {
|
|
459
488
|
function Position(lat, lng) {
|
|
460
|
-
/**
|
|
461
|
-
* 위도
|
|
462
|
-
* @description 위도(latitude)
|
|
489
|
+
/**
|
|
490
|
+
* 위도
|
|
491
|
+
* @description 위도(latitude)
|
|
463
492
|
*/
|
|
464
493
|
this.lat = 0;
|
|
465
|
-
/**
|
|
466
|
-
* 경도
|
|
467
|
-
* @description 경도(longitude)
|
|
494
|
+
/**
|
|
495
|
+
* 경도
|
|
496
|
+
* @description 경도(longitude)
|
|
468
497
|
*/
|
|
469
498
|
|
|
470
499
|
this.lng = 0;
|
|
@@ -572,15 +601,15 @@
|
|
|
572
601
|
|
|
573
602
|
return Bounds;
|
|
574
603
|
}();
|
|
575
|
-
/**
|
|
576
|
-
* DOM 상에서의 좌표를 표현 (픽셀을 나타내는 숫자)
|
|
604
|
+
/**
|
|
605
|
+
* DOM 상에서의 좌표를 표현 (픽셀을 나타내는 숫자)
|
|
577
606
|
*/
|
|
578
607
|
|
|
579
608
|
var Offset =
|
|
580
609
|
/** @class */
|
|
581
610
|
function () {
|
|
582
|
-
/**
|
|
583
|
-
* DOM 상에서의 좌표를 표현 (픽셀을 나타내는 숫자)
|
|
611
|
+
/**
|
|
612
|
+
* DOM 상에서의 좌표를 표현 (픽셀을 나타내는 숫자)
|
|
584
613
|
*/
|
|
585
614
|
function Offset(x, y) {
|
|
586
615
|
this.x = x;
|
|
@@ -707,6 +736,309 @@
|
|
|
707
736
|
}));
|
|
708
737
|
}
|
|
709
738
|
|
|
739
|
+
var AnimationPlayer =
|
|
740
|
+
/** @class */
|
|
741
|
+
function () {
|
|
742
|
+
function AnimationPlayer(drawFunction, fps) {
|
|
743
|
+
this.prevtime = 0;
|
|
744
|
+
this.elapsedTime = 0;
|
|
745
|
+
this.fps = null;
|
|
746
|
+
this.baseDrawGapTime = null;
|
|
747
|
+
this.deltaTime = 0;
|
|
748
|
+
this.playing = false;
|
|
749
|
+
this.draw = drawFunction;
|
|
750
|
+
this.fps = fps || null;
|
|
751
|
+
|
|
752
|
+
if (fps !== undefined) {
|
|
753
|
+
this.baseDrawGapTime = 1000 / fps;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
this.init();
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
AnimationPlayer.prototype.init = function () {
|
|
760
|
+
this.deltaTime = 0;
|
|
761
|
+
this.prevtime = 0;
|
|
762
|
+
this.elapsedTime = 0;
|
|
763
|
+
this.playing = false;
|
|
764
|
+
};
|
|
765
|
+
|
|
766
|
+
AnimationPlayer.prototype.start = function () {
|
|
767
|
+
this.init();
|
|
768
|
+
this.resume();
|
|
769
|
+
};
|
|
770
|
+
|
|
771
|
+
AnimationPlayer.prototype.stop = function () {
|
|
772
|
+
this.playing = false;
|
|
773
|
+
};
|
|
774
|
+
|
|
775
|
+
AnimationPlayer.prototype.resume = function () {
|
|
776
|
+
this.playing = true; //@ts-ignore
|
|
777
|
+
|
|
778
|
+
window.requestAnimationFrame(this.makeFrame.bind(this));
|
|
779
|
+
};
|
|
780
|
+
|
|
781
|
+
AnimationPlayer.prototype.makeFrame = function (timestamp) {
|
|
782
|
+
//frame 간 시간 변화
|
|
783
|
+
if (this.prevtime === 0) {
|
|
784
|
+
this.prevtime = timestamp;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
this.deltaTime += timestamp - this.prevtime; //정해진 시간이 없거나, 정해진 시간이 지났으면 draw 호출
|
|
788
|
+
|
|
789
|
+
this.prevtime = timestamp;
|
|
790
|
+
|
|
791
|
+
if (!this.baseDrawGapTime || this.baseDrawGapTime <= this.deltaTime) {
|
|
792
|
+
//다음 루프 준비
|
|
793
|
+
this.elapsedTime += this.deltaTime; //draw 콜백에서 stop 신호오면 멈춤
|
|
794
|
+
|
|
795
|
+
var stopFlag = this.draw(this.deltaTime, this.elapsedTime); //delta 초기화
|
|
796
|
+
|
|
797
|
+
this.deltaTime = 0;
|
|
798
|
+
|
|
799
|
+
if (stopFlag) {
|
|
800
|
+
this.stop();
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
if (this.playing) {
|
|
805
|
+
//@ts-ignore
|
|
806
|
+
window.requestAnimationFrame(this.makeFrame.bind(this));
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
|
|
810
|
+
return AnimationPlayer;
|
|
811
|
+
}();
|
|
812
|
+
|
|
813
|
+
function waiting(evaluation, timeoutSeconds) {
|
|
814
|
+
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
815
|
+
var max;
|
|
816
|
+
return tslib.__generator(this, function (_a) {
|
|
817
|
+
max = (timeoutSeconds || 5) * 1000;
|
|
818
|
+
return [2
|
|
819
|
+
/*return*/
|
|
820
|
+
, new Promise(function (resolve) {
|
|
821
|
+
var start = new Date().getTime();
|
|
822
|
+
var inter = setInterval(function () {
|
|
823
|
+
//타임아웃 체크
|
|
824
|
+
var time = new Date().getTime();
|
|
825
|
+
|
|
826
|
+
if (time - start > max) {
|
|
827
|
+
clearInterval(inter);
|
|
828
|
+
resolve(false);
|
|
829
|
+
return;
|
|
830
|
+
} //평가식 체크
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
if (evaluation()) {
|
|
834
|
+
clearInterval(inter);
|
|
835
|
+
resolve(true);
|
|
836
|
+
}
|
|
837
|
+
}, 100);
|
|
838
|
+
})];
|
|
839
|
+
});
|
|
840
|
+
});
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
var getClusterInfo = function (basePixelSize, mapBounds, mapWidth, mapHeight, itemList, sizeFunction) {
|
|
844
|
+
var _a; //1. basePixelSize 기준으로 현재 지도 크기를 베이스로 영역 갯수 정하기
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
var rowCount = Number((mapWidth / basePixelSize).toFixed(0)) || 1;
|
|
848
|
+
var colCount = Number((mapHeight / basePixelSize).toFixed(0)) || 1; //console.log('rowCount', rowCount, 'colCount', colCount)
|
|
849
|
+
|
|
850
|
+
var boundsLineSizeX = Number(((mapBounds.ne.lng - mapBounds.nw.lng) / rowCount).toFixed(7));
|
|
851
|
+
var boundsLineSizeY = Number(((mapBounds.nw.lat - mapBounds.se.lat) / colCount).toFixed(7)); //console.log('boundsLineSize', boundsLineSizeX, boundsLineSizeY)
|
|
852
|
+
var boundsPos = [];
|
|
853
|
+
var tempX1, tempY1, tempX2, tempY2;
|
|
854
|
+
|
|
855
|
+
for (var i = 0; i < rowCount; i++) {
|
|
856
|
+
tempX1 = mapBounds.nw.lng + boundsLineSizeX * i;
|
|
857
|
+
tempX2 = mapBounds.nw.lng + boundsLineSizeX * (i + 1);
|
|
858
|
+
var rows = [];
|
|
859
|
+
boundsPos.push(rows);
|
|
860
|
+
|
|
861
|
+
for (var k = 0; k < colCount; k++) {
|
|
862
|
+
tempY2 = mapBounds.se.lat + boundsLineSizeY * k;
|
|
863
|
+
tempY1 = mapBounds.se.lat + boundsLineSizeY * (k + 1);
|
|
864
|
+
var thisBounds = Bounds.fromNWSE(new Position(tempY1, tempX1), new Position(tempY2, tempX2));
|
|
865
|
+
var includedList = thisBounds.getIncludedPositions(itemList);
|
|
866
|
+
rows.push({
|
|
867
|
+
bounds: thisBounds,
|
|
868
|
+
checked: false,
|
|
869
|
+
center: false,
|
|
870
|
+
centerPosition: thisBounds.getCenter(),
|
|
871
|
+
incList: [],
|
|
872
|
+
itemList: includedList,
|
|
873
|
+
size: basePixelSize
|
|
874
|
+
});
|
|
875
|
+
}
|
|
876
|
+
} //좌표마다 검사해서 인접셀 병합 처리
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
var centerList = [];
|
|
880
|
+
var totalItemCount = 0;
|
|
881
|
+
var min;
|
|
882
|
+
var max;
|
|
883
|
+
|
|
884
|
+
for (var i = 0; i < boundsPos.length; i++) {
|
|
885
|
+
for (var k = 0; k < boundsPos[i].length; k++) {
|
|
886
|
+
var curr = boundsPos[i][k];
|
|
887
|
+
if (curr.checked) continue;
|
|
888
|
+
curr.checked = true; //현재기준 8방향 객체 모으기
|
|
889
|
+
|
|
890
|
+
var incList = [];
|
|
891
|
+
|
|
892
|
+
if (boundsPos[i]) {
|
|
893
|
+
boundsPos[i][k - 1] && incList.push(boundsPos[i][k - 1]);
|
|
894
|
+
boundsPos[i][k + 1] && incList.push(boundsPos[i][k + 1]);
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
if (boundsPos[i - 1]) {
|
|
898
|
+
boundsPos[i - 1][k - 1] && incList.push(boundsPos[i - 1][k - 1]);
|
|
899
|
+
boundsPos[i - 1][k] && incList.push(boundsPos[i - 1][k]);
|
|
900
|
+
boundsPos[i - 1][k + 1] && incList.push(boundsPos[i - 1][k + 1]);
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
if (boundsPos[i + 1]) {
|
|
904
|
+
boundsPos[i + 1][k + 1] && incList.push(boundsPos[i + 1][k + 1]);
|
|
905
|
+
boundsPos[i + 1][k] && incList.push(boundsPos[i + 1][k]);
|
|
906
|
+
boundsPos[i + 1][k - 1] && incList.push(boundsPos[i + 1][k - 1]);
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
for (var _i = 0, incList_1 = incList; _i < incList_1.length; _i++) {
|
|
910
|
+
var inc = incList_1[_i];
|
|
911
|
+
if (inc.checked) continue;
|
|
912
|
+
inc.checked = true;
|
|
913
|
+
|
|
914
|
+
if (inc.itemList && inc.itemList.length > 0) {
|
|
915
|
+
curr.incList.push(inc);
|
|
916
|
+
|
|
917
|
+
(_a = curr.itemList).push.apply(_a, inc.itemList);
|
|
918
|
+
|
|
919
|
+
curr.center = true;
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
if (curr.center) {
|
|
924
|
+
centerList.push(curr);
|
|
925
|
+
var avrLat = calculateAverage(curr.itemList.map(function (item) {
|
|
926
|
+
return item.lat;
|
|
927
|
+
}));
|
|
928
|
+
var avrLng = calculateAverage(curr.itemList.map(function (item) {
|
|
929
|
+
return item.lng;
|
|
930
|
+
}));
|
|
931
|
+
curr.centerPosition = new Position(avrLat, avrLng);
|
|
932
|
+
totalItemCount += curr.itemList.length;
|
|
933
|
+
|
|
934
|
+
if (!min || curr.itemList.length < min) {
|
|
935
|
+
min = curr.itemList.length;
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
if (!max || curr.itemList.length > max) {
|
|
939
|
+
max = curr.itemList.length;
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
var status = {
|
|
946
|
+
total: totalItemCount,
|
|
947
|
+
average: totalItemCount / centerList.length,
|
|
948
|
+
min: min,
|
|
949
|
+
max: max
|
|
950
|
+
};
|
|
951
|
+
|
|
952
|
+
sizeFunction = sizeFunction || function (info, status) {
|
|
953
|
+
var minSize = basePixelSize / 4;
|
|
954
|
+
var maxSize = basePixelSize;
|
|
955
|
+
return Math.min(Math.max(basePixelSize * info.itemList.length / status.average, minSize), maxSize);
|
|
956
|
+
};
|
|
957
|
+
|
|
958
|
+
for (var _b = 0, centerList_1 = centerList; _b < centerList_1.length; _b++) {
|
|
959
|
+
var center = centerList_1[_b];
|
|
960
|
+
center.size = sizeFunction(center, status);
|
|
961
|
+
} // console.log('centerList', centerList, status);
|
|
962
|
+
|
|
963
|
+
|
|
964
|
+
return centerList;
|
|
965
|
+
};
|
|
966
|
+
|
|
967
|
+
var calculateAverage = function (nums) {
|
|
968
|
+
var sum = 0;
|
|
969
|
+
|
|
970
|
+
for (var _i = 0, nums_1 = nums; _i < nums_1.length; _i++) {
|
|
971
|
+
var num = nums_1[_i];
|
|
972
|
+
sum += num;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
return Number((sum / nums.length).toFixed(7));
|
|
976
|
+
};
|
|
977
|
+
|
|
978
|
+
function log(debug, label) {
|
|
979
|
+
var args = [];
|
|
980
|
+
|
|
981
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
982
|
+
args[_i - 2] = arguments[_i];
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
if (!debug) return;
|
|
986
|
+
args && console.log.apply(console, tslib.__spreadArray(['[mint-map debug]', label || ''], args, false));
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
var MintMapStatus =
|
|
990
|
+
/** @class */
|
|
991
|
+
function () {
|
|
992
|
+
function MintMapStatus() {
|
|
993
|
+
this.marker = 0;
|
|
994
|
+
this.byLabel = new Map();
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
MintMapStatus.prototype.init = function () {
|
|
998
|
+
this.marker = 0;
|
|
999
|
+
this.byLabel.clear();
|
|
1000
|
+
};
|
|
1001
|
+
|
|
1002
|
+
MintMapStatus.prototype.print = function () {
|
|
1003
|
+
var str = "[mint-map status]\n\nmarker : ".concat(this.marker, "\n ");
|
|
1004
|
+
|
|
1005
|
+
if (this.byLabel.size > 0) {
|
|
1006
|
+
str += '\n-------- status detail (by label) ----------';
|
|
1007
|
+
this.byLabel.forEach(function (val, key) {
|
|
1008
|
+
str += "\n(".concat(key, ") : ").concat(val);
|
|
1009
|
+
});
|
|
1010
|
+
str += '\n\n';
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
console.log(str);
|
|
1014
|
+
};
|
|
1015
|
+
|
|
1016
|
+
MintMapStatus.prototype.setMarker = function (inc, label) {
|
|
1017
|
+
this.marker += inc;
|
|
1018
|
+
|
|
1019
|
+
if (label) {
|
|
1020
|
+
var curr = this.byLabel.get(label);
|
|
1021
|
+
var calc = 0;
|
|
1022
|
+
|
|
1023
|
+
if (curr === undefined) {
|
|
1024
|
+
calc = inc;
|
|
1025
|
+
} else {
|
|
1026
|
+
calc = curr + inc;
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
if (calc === 0) {
|
|
1030
|
+
this.byLabel.delete(label);
|
|
1031
|
+
} else {
|
|
1032
|
+
this.byLabel.set(label, calc);
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
};
|
|
1036
|
+
|
|
1037
|
+
return MintMapStatus;
|
|
1038
|
+
}();
|
|
1039
|
+
|
|
1040
|
+
var Status = new MintMapStatus();
|
|
1041
|
+
|
|
710
1042
|
var MintMapController =
|
|
711
1043
|
/** @class */
|
|
712
1044
|
function () {
|
|
@@ -808,12 +1140,12 @@
|
|
|
808
1140
|
MintMapController.prototype.getRandomFunctionName = function (prefix) {
|
|
809
1141
|
return "".concat(prefix, "_").concat(uuid.v4().replace(/-/g, '_'));
|
|
810
1142
|
};
|
|
811
|
-
/**
|
|
812
|
-
* URL 빌더 메서드
|
|
813
|
-
*
|
|
814
|
-
* @param {string} baseUrl: 기본 URL
|
|
815
|
-
* @param {{ [ key: string ]: string | string[] }} param: 파라미터 JSON
|
|
816
|
-
* @returns {string} URL
|
|
1143
|
+
/**
|
|
1144
|
+
* URL 빌더 메서드
|
|
1145
|
+
*
|
|
1146
|
+
* @param {string} baseUrl: 기본 URL
|
|
1147
|
+
* @param {{ [ key: string ]: string | string[] }} param: 파라미터 JSON
|
|
1148
|
+
* @returns {string} URL
|
|
817
1149
|
*/
|
|
818
1150
|
|
|
819
1151
|
|
|
@@ -826,9 +1158,9 @@
|
|
|
826
1158
|
}).join('&');
|
|
827
1159
|
return "".concat(baseUrl, "?").concat(params);
|
|
828
1160
|
};
|
|
829
|
-
/**
|
|
830
|
-
* 쓰로틀링 처리
|
|
831
|
-
* @returns
|
|
1161
|
+
/**
|
|
1162
|
+
* 쓰로틀링 처리
|
|
1163
|
+
* @returns
|
|
832
1164
|
*/
|
|
833
1165
|
|
|
834
1166
|
|
|
@@ -869,6 +1201,10 @@
|
|
|
869
1201
|
throw new Error("[getMapToBaseZoom][".concat(mapZoom, "] is not valid zoom level"));
|
|
870
1202
|
};
|
|
871
1203
|
|
|
1204
|
+
MintMapController.prototype.printStatus = function () {
|
|
1205
|
+
Status.print();
|
|
1206
|
+
};
|
|
1207
|
+
|
|
872
1208
|
return MintMapController;
|
|
873
1209
|
}();
|
|
874
1210
|
|
|
@@ -1066,36 +1402,6 @@
|
|
|
1066
1402
|
return MapZoomInfo;
|
|
1067
1403
|
}();
|
|
1068
1404
|
|
|
1069
|
-
function waiting(evaluation, timeoutSeconds) {
|
|
1070
|
-
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
1071
|
-
var max;
|
|
1072
|
-
return tslib.__generator(this, function (_a) {
|
|
1073
|
-
max = (timeoutSeconds || 5) * 1000;
|
|
1074
|
-
return [2
|
|
1075
|
-
/*return*/
|
|
1076
|
-
, new Promise(function (resolve) {
|
|
1077
|
-
var start = new Date().getTime();
|
|
1078
|
-
var inter = setInterval(function () {
|
|
1079
|
-
//타임아웃 체크
|
|
1080
|
-
var time = new Date().getTime();
|
|
1081
|
-
|
|
1082
|
-
if (time - start > max) {
|
|
1083
|
-
clearInterval(inter);
|
|
1084
|
-
resolve(false);
|
|
1085
|
-
return;
|
|
1086
|
-
} //평가식 체크
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
if (evaluation()) {
|
|
1090
|
-
clearInterval(inter);
|
|
1091
|
-
resolve(true);
|
|
1092
|
-
}
|
|
1093
|
-
}, 100);
|
|
1094
|
-
})];
|
|
1095
|
-
});
|
|
1096
|
-
});
|
|
1097
|
-
}
|
|
1098
|
-
|
|
1099
1405
|
// export type MapEvent = 'bounds_changed'|'center_changed'|'idle'|'zoom_changed'|'zoomstart'
|
|
1100
1406
|
// export type MapUIEvent = 'click'|'dblclick'|''
|
|
1101
1407
|
var MapEvent =
|
|
@@ -1356,8 +1662,7 @@
|
|
|
1356
1662
|
map: this.map,
|
|
1357
1663
|
position: marker.options.position,
|
|
1358
1664
|
visible: marker.options.visible === undefined || marker.options.visible
|
|
1359
|
-
};
|
|
1360
|
-
|
|
1665
|
+
};
|
|
1361
1666
|
marker.element && (options.icon = {
|
|
1362
1667
|
content: marker.element,
|
|
1363
1668
|
anchor: marker.options.anchor
|
|
@@ -1375,6 +1680,8 @@
|
|
|
1375
1680
|
marker.native = naverMarker_1;
|
|
1376
1681
|
}
|
|
1377
1682
|
|
|
1683
|
+
log(this.mapProps.debug || marker.options.debug, marker.options.debugLabel, this.type + ' marker created');
|
|
1684
|
+
Status.setMarker(1, marker.options.debugLabel);
|
|
1378
1685
|
((_a = marker.options) === null || _a === void 0 ? void 0 : _a.event) && marker.options.event.forEach(function (handler, key) {
|
|
1379
1686
|
if (_this.markerEvents.includes(key)) {
|
|
1380
1687
|
naver.maps.Event.addListener(naverMarker_1, key, handler);
|
|
@@ -1389,11 +1696,11 @@
|
|
|
1389
1696
|
var map = marker.native.getMap();
|
|
1390
1697
|
|
|
1391
1698
|
if (map) {
|
|
1392
|
-
/** 중요!!!!
|
|
1393
|
-
* naver 마커의 setOption(MarkerOptions) 은 내부적으로 setMap 을 무조건 강제 처리한다!!!
|
|
1394
|
-
* setMap 을 처리하면 맵의 이벤트리스너 등등이 모두 초기화 되고 다시 맵을 add 하면서 마커관련된 모든 초기화가 다시 일어난다.
|
|
1395
|
-
* (심지어 map 이 기존과 같은 객체인데도 초기화 처리함)
|
|
1396
|
-
* 그래서 민트맵에서는 update 를 지원하는 항목별로 명시적으로 각각 처리한다.
|
|
1699
|
+
/** 중요!!!!
|
|
1700
|
+
* naver 마커의 setOption(MarkerOptions) 은 내부적으로 setMap 을 무조건 강제 처리한다!!!
|
|
1701
|
+
* setMap 을 처리하면 맵의 이벤트리스너 등등이 모두 초기화 되고 다시 맵을 add 하면서 마커관련된 모든 초기화가 다시 일어난다.
|
|
1702
|
+
* (심지어 map 이 기존과 같은 객체인데도 초기화 처리함)
|
|
1703
|
+
* 그래서 민트맵에서는 update 를 지원하는 항목별로 명시적으로 각각 처리한다.
|
|
1397
1704
|
*/
|
|
1398
1705
|
//Position
|
|
1399
1706
|
if (options.position && options.position instanceof Position) {
|
|
@@ -1408,7 +1715,9 @@
|
|
|
1408
1715
|
marker.native.setIcon(tslib.__assign(tslib.__assign({}, marker.native.getIcon()), {
|
|
1409
1716
|
anchor: options.anchor
|
|
1410
1717
|
}));
|
|
1411
|
-
}
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
log(this.mapProps.debug || options.debug, marker.options.debugLabel, this.type + ' marker updated'); // const newOption = {
|
|
1412
1721
|
// map:map,
|
|
1413
1722
|
// position:options.position instanceof Position?options.position:marker.native.getPosition(),
|
|
1414
1723
|
// visible:options.visible === undefined || options.visible,
|
|
@@ -1422,7 +1731,6 @@
|
|
|
1422
1731
|
// visible:options.visible === undefined || options.visible,
|
|
1423
1732
|
// icon:{...marker.native.getIcon(), anchor:options.anchor}
|
|
1424
1733
|
// })
|
|
1425
|
-
|
|
1426
1734
|
}
|
|
1427
1735
|
}
|
|
1428
1736
|
};
|
|
@@ -1480,6 +1788,9 @@
|
|
|
1480
1788
|
} else {
|
|
1481
1789
|
drawable.native.setMap(null);
|
|
1482
1790
|
}
|
|
1791
|
+
|
|
1792
|
+
log(this.mapProps.debug || drawable.options.debug, drawable.options.debugLabel, this.type + ' marker cleared');
|
|
1793
|
+
Status.setMarker(-1, drawable.options.debugLabel);
|
|
1483
1794
|
} else {
|
|
1484
1795
|
drawable.native.setMap(null);
|
|
1485
1796
|
}
|
|
@@ -2085,6 +2396,8 @@
|
|
|
2085
2396
|
googleMarker_1 = new google.maps.Marker(options);
|
|
2086
2397
|
}
|
|
2087
2398
|
|
|
2399
|
+
log(this.mapProps.debug || marker.options.debug, marker.options.debugLabel, this.type + ' marker created');
|
|
2400
|
+
Status.setMarker(1, marker.options.debugLabel);
|
|
2088
2401
|
marker.native = googleMarker_1;
|
|
2089
2402
|
((_a = marker.options) === null || _a === void 0 ? void 0 : _a.event) && marker.options.event.forEach(function (handler, key) {
|
|
2090
2403
|
if (_this.markerEvents.includes(key)) {
|
|
@@ -2123,6 +2436,8 @@
|
|
|
2123
2436
|
marker.native.position = options.position;
|
|
2124
2437
|
}
|
|
2125
2438
|
}
|
|
2439
|
+
|
|
2440
|
+
log(this.mapProps.debug || options.debug, marker.options.debugLabel, this.type + ' marker updated');
|
|
2126
2441
|
}
|
|
2127
2442
|
};
|
|
2128
2443
|
|
|
@@ -2189,6 +2504,8 @@
|
|
|
2189
2504
|
} else if (drawable.native instanceof google.maps.marker.AdvancedMarkerView) {
|
|
2190
2505
|
google.maps.event.clearInstanceListeners(drawable.native);
|
|
2191
2506
|
drawable.native.map = null;
|
|
2507
|
+
log(this.mapProps.debug || drawable.options.debug, drawable.options.debugLabel, this.type + ' marker cleared');
|
|
2508
|
+
Status.setMarker(-1, drawable.options.debugLabel);
|
|
2192
2509
|
return true;
|
|
2193
2510
|
}
|
|
2194
2511
|
}
|
|
@@ -2771,6 +3088,8 @@
|
|
|
2771
3088
|
this.updateMarker(marker, marker.options);
|
|
2772
3089
|
} else {
|
|
2773
3090
|
kakaoMarker_1 = new kakao.maps.CustomOverlay(options);
|
|
3091
|
+
log(this.mapProps.debug || marker.options.debug, marker.options.debugLabel, this.type + ' marker created');
|
|
3092
|
+
Status.setMarker(1, marker.options.debugLabel);
|
|
2774
3093
|
marker.options.visible !== undefined && kakaoMarker_1.setVisible(marker.options.visible);
|
|
2775
3094
|
this.removeParentElementsMargin(marker);
|
|
2776
3095
|
marker.native = kakaoMarker_1;
|
|
@@ -2799,6 +3118,7 @@
|
|
|
2799
3118
|
marker.native.setVisible(options.visible);
|
|
2800
3119
|
}
|
|
2801
3120
|
|
|
3121
|
+
log(this.mapProps.debug || options.debug, marker.options.debugLabel, this.type + ' marker updated');
|
|
2802
3122
|
this.removeParentElementsMargin(marker);
|
|
2803
3123
|
}
|
|
2804
3124
|
}
|
|
@@ -2871,6 +3191,8 @@
|
|
|
2871
3191
|
(_a = this.markerPool) === null || _a === void 0 ? void 0 : _a.releasePoolItem(drawable.native);
|
|
2872
3192
|
} else {
|
|
2873
3193
|
drawable.native.setMap(null);
|
|
3194
|
+
log(this.mapProps.debug || drawable.options.debug, drawable.options.debugLabel, this.type + ' marker cleared');
|
|
3195
|
+
Status.setMarker(-1, drawable.options.debugLabel);
|
|
2874
3196
|
}
|
|
2875
3197
|
} else {
|
|
2876
3198
|
drawable.native.setMap(null);
|
|
@@ -3075,13 +3397,13 @@
|
|
|
3075
3397
|
};
|
|
3076
3398
|
|
|
3077
3399
|
KakaoMintMapController.prototype.getSafeZoomValue = function (value) {
|
|
3078
|
-
/**
|
|
3079
|
-
* 카카오는 구글/네이버와 다르게 줌레벨이 작아질수록 확대된다 (가장 확대된 것이 0)
|
|
3080
|
-
* - 가장 확대된 값 : 1
|
|
3081
|
-
* - 가장 축소된 값 : 14
|
|
3082
|
-
*
|
|
3083
|
-
* 그래서 세계지도가 없는 카카오는 동일한 사정인 네이버와 매핑하기로 한다.
|
|
3084
|
-
* 문제는 둘 간의 줌 레벨별 축척이 일치하지 않는다. 그래서 가장 유사한 레벨 끼리 매핑이 필요하다
|
|
3400
|
+
/**
|
|
3401
|
+
* 카카오는 구글/네이버와 다르게 줌레벨이 작아질수록 확대된다 (가장 확대된 것이 0)
|
|
3402
|
+
* - 가장 확대된 값 : 1
|
|
3403
|
+
* - 가장 축소된 값 : 14
|
|
3404
|
+
*
|
|
3405
|
+
* 그래서 세계지도가 없는 카카오는 동일한 사정인 네이버와 매핑하기로 한다.
|
|
3406
|
+
* 문제는 둘 간의 줌 레벨별 축척이 일치하지 않는다. 그래서 가장 유사한 레벨 끼리 매핑이 필요하다
|
|
3085
3407
|
*/
|
|
3086
3408
|
var mapValue = this.getBaseToMapZoom(value);
|
|
3087
3409
|
|
|
@@ -3266,12 +3588,12 @@
|
|
|
3266
3588
|
lat: 37.5036845,
|
|
3267
3589
|
lng: 127.0448698
|
|
3268
3590
|
};
|
|
3269
|
-
/**
|
|
3270
|
-
* Mint Map 컴포넌트
|
|
3271
|
-
*
|
|
3272
|
-
* @param {MintMapProps} MintMapProps
|
|
3273
|
-
*
|
|
3274
|
-
* @returns {JSX.Element} JSX
|
|
3591
|
+
/**
|
|
3592
|
+
* Mint Map 컴포넌트
|
|
3593
|
+
*
|
|
3594
|
+
* @param {MintMapProps} MintMapProps
|
|
3595
|
+
*
|
|
3596
|
+
* @returns {JSX.Element} JSX
|
|
3275
3597
|
*/
|
|
3276
3598
|
|
|
3277
3599
|
function MintMap(_a) {
|
|
@@ -3608,80 +3930,6 @@
|
|
|
3608
3930
|
}, children));
|
|
3609
3931
|
}
|
|
3610
3932
|
|
|
3611
|
-
var AnimationPlayer =
|
|
3612
|
-
/** @class */
|
|
3613
|
-
function () {
|
|
3614
|
-
function AnimationPlayer(drawFunction, fps) {
|
|
3615
|
-
this.prevtime = 0;
|
|
3616
|
-
this.elapsedTime = 0;
|
|
3617
|
-
this.fps = null;
|
|
3618
|
-
this.baseDrawGapTime = null;
|
|
3619
|
-
this.deltaTime = 0;
|
|
3620
|
-
this.playing = false;
|
|
3621
|
-
this.draw = drawFunction;
|
|
3622
|
-
this.fps = fps || null;
|
|
3623
|
-
|
|
3624
|
-
if (fps !== undefined) {
|
|
3625
|
-
this.baseDrawGapTime = 1000 / fps;
|
|
3626
|
-
}
|
|
3627
|
-
|
|
3628
|
-
this.init();
|
|
3629
|
-
}
|
|
3630
|
-
|
|
3631
|
-
AnimationPlayer.prototype.init = function () {
|
|
3632
|
-
this.deltaTime = 0;
|
|
3633
|
-
this.prevtime = 0;
|
|
3634
|
-
this.elapsedTime = 0;
|
|
3635
|
-
this.playing = false;
|
|
3636
|
-
};
|
|
3637
|
-
|
|
3638
|
-
AnimationPlayer.prototype.start = function () {
|
|
3639
|
-
this.init();
|
|
3640
|
-
this.resume();
|
|
3641
|
-
};
|
|
3642
|
-
|
|
3643
|
-
AnimationPlayer.prototype.stop = function () {
|
|
3644
|
-
this.playing = false;
|
|
3645
|
-
};
|
|
3646
|
-
|
|
3647
|
-
AnimationPlayer.prototype.resume = function () {
|
|
3648
|
-
this.playing = true; //@ts-ignore
|
|
3649
|
-
|
|
3650
|
-
window.requestAnimationFrame(this.makeFrame.bind(this));
|
|
3651
|
-
};
|
|
3652
|
-
|
|
3653
|
-
AnimationPlayer.prototype.makeFrame = function (timestamp) {
|
|
3654
|
-
//frame 간 시간 변화
|
|
3655
|
-
if (this.prevtime === 0) {
|
|
3656
|
-
this.prevtime = timestamp;
|
|
3657
|
-
}
|
|
3658
|
-
|
|
3659
|
-
this.deltaTime += timestamp - this.prevtime; //정해진 시간이 없거나, 정해진 시간이 지났으면 draw 호출
|
|
3660
|
-
|
|
3661
|
-
this.prevtime = timestamp;
|
|
3662
|
-
|
|
3663
|
-
if (!this.baseDrawGapTime || this.baseDrawGapTime <= this.deltaTime) {
|
|
3664
|
-
//다음 루프 준비
|
|
3665
|
-
this.elapsedTime += this.deltaTime; //draw 콜백에서 stop 신호오면 멈춤
|
|
3666
|
-
|
|
3667
|
-
var stopFlag = this.draw(this.deltaTime, this.elapsedTime); //delta 초기화
|
|
3668
|
-
|
|
3669
|
-
this.deltaTime = 0;
|
|
3670
|
-
|
|
3671
|
-
if (stopFlag) {
|
|
3672
|
-
this.stop();
|
|
3673
|
-
}
|
|
3674
|
-
}
|
|
3675
|
-
|
|
3676
|
-
if (this.playing) {
|
|
3677
|
-
//@ts-ignore
|
|
3678
|
-
window.requestAnimationFrame(this.makeFrame.bind(this));
|
|
3679
|
-
}
|
|
3680
|
-
};
|
|
3681
|
-
|
|
3682
|
-
return AnimationPlayer;
|
|
3683
|
-
}();
|
|
3684
|
-
|
|
3685
3933
|
var Drawable =
|
|
3686
3934
|
/** @class */
|
|
3687
3935
|
function () {
|
|
@@ -3694,8 +3942,8 @@
|
|
|
3694
3942
|
/** @class */
|
|
3695
3943
|
function (_super) {
|
|
3696
3944
|
tslib.__extends(Marker, _super);
|
|
3697
|
-
/**
|
|
3698
|
-
* 지도에 표시할 마커정보
|
|
3945
|
+
/**
|
|
3946
|
+
* 지도에 표시할 마커정보
|
|
3699
3947
|
*/
|
|
3700
3948
|
|
|
3701
3949
|
|
|
@@ -3713,8 +3961,8 @@
|
|
|
3713
3961
|
/** @class */
|
|
3714
3962
|
function (_super) {
|
|
3715
3963
|
tslib.__extends(Polyline, _super);
|
|
3716
|
-
/**
|
|
3717
|
-
* 지도에 표시할 폴리곤정보
|
|
3964
|
+
/**
|
|
3965
|
+
* 지도에 표시할 폴리곤정보
|
|
3718
3966
|
*/
|
|
3719
3967
|
|
|
3720
3968
|
|
|
@@ -3732,8 +3980,8 @@
|
|
|
3732
3980
|
/** @class */
|
|
3733
3981
|
function (_super) {
|
|
3734
3982
|
tslib.__extends(Polygon, _super);
|
|
3735
|
-
/**
|
|
3736
|
-
* 지도에 표시할 폴리곤정보
|
|
3983
|
+
/**
|
|
3984
|
+
* 지도에 표시할 폴리곤정보
|
|
3737
3985
|
*/
|
|
3738
3986
|
|
|
3739
3987
|
|
|
@@ -3743,8 +3991,8 @@
|
|
|
3743
3991
|
_this.options = options;
|
|
3744
3992
|
return _this;
|
|
3745
3993
|
}
|
|
3746
|
-
/**
|
|
3747
|
-
* 폴리곤의 중점을 구한다.
|
|
3994
|
+
/**
|
|
3995
|
+
* 폴리곤의 중점을 구한다.
|
|
3748
3996
|
*/
|
|
3749
3997
|
|
|
3750
3998
|
|
|
@@ -3914,12 +4162,12 @@
|
|
|
3914
4162
|
divElement.style.transform = "translate(-".concat(options.anchor ? options.anchor.x : '0', "px, -").concat(options.anchor ? options.anchor.y : '0', "px)");
|
|
3915
4163
|
}
|
|
3916
4164
|
};
|
|
3917
|
-
/**
|
|
3918
|
-
* Mint Map 컴포넌트
|
|
3919
|
-
*
|
|
3920
|
-
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
3921
|
-
*
|
|
3922
|
-
* @returns {JSX.Element} JSX
|
|
4165
|
+
/**
|
|
4166
|
+
* Mint Map 컴포넌트
|
|
4167
|
+
*
|
|
4168
|
+
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
4169
|
+
*
|
|
4170
|
+
* @returns {JSX.Element} JSX
|
|
3923
4171
|
*/
|
|
3924
4172
|
|
|
3925
4173
|
|
|
@@ -4072,147 +4320,12 @@
|
|
|
4072
4320
|
return reactDom.createPortal(children, divElement);
|
|
4073
4321
|
}
|
|
4074
4322
|
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
var boundsLineSizeX = Number(((mapBounds.ne.lng - mapBounds.nw.lng) / rowCount).toFixed(7));
|
|
4083
|
-
var boundsLineSizeY = Number(((mapBounds.nw.lat - mapBounds.se.lat) / colCount).toFixed(7)); //console.log('boundsLineSize', boundsLineSizeX, boundsLineSizeY)
|
|
4084
|
-
var boundsPos = [];
|
|
4085
|
-
var tempX1, tempY1, tempX2, tempY2;
|
|
4086
|
-
|
|
4087
|
-
for (var i = 0; i < rowCount; i++) {
|
|
4088
|
-
tempX1 = mapBounds.nw.lng + boundsLineSizeX * i;
|
|
4089
|
-
tempX2 = mapBounds.nw.lng + boundsLineSizeX * (i + 1);
|
|
4090
|
-
var rows = [];
|
|
4091
|
-
boundsPos.push(rows);
|
|
4092
|
-
|
|
4093
|
-
for (var k = 0; k < colCount; k++) {
|
|
4094
|
-
tempY2 = mapBounds.se.lat + boundsLineSizeY * k;
|
|
4095
|
-
tempY1 = mapBounds.se.lat + boundsLineSizeY * (k + 1);
|
|
4096
|
-
var thisBounds = Bounds.fromNWSE(new Position(tempY1, tempX1), new Position(tempY2, tempX2));
|
|
4097
|
-
var includedList = thisBounds.getIncludedPositions(itemList);
|
|
4098
|
-
rows.push({
|
|
4099
|
-
bounds: thisBounds,
|
|
4100
|
-
checked: false,
|
|
4101
|
-
center: false,
|
|
4102
|
-
centerPosition: thisBounds.getCenter(),
|
|
4103
|
-
incList: [],
|
|
4104
|
-
itemList: includedList,
|
|
4105
|
-
size: basePixelSize
|
|
4106
|
-
});
|
|
4107
|
-
}
|
|
4108
|
-
} //좌표마다 검사해서 인접셀 병합 처리
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
var centerList = [];
|
|
4112
|
-
var totalItemCount = 0;
|
|
4113
|
-
var min;
|
|
4114
|
-
var max;
|
|
4115
|
-
|
|
4116
|
-
for (var i = 0; i < boundsPos.length; i++) {
|
|
4117
|
-
for (var k = 0; k < boundsPos[i].length; k++) {
|
|
4118
|
-
var curr = boundsPos[i][k];
|
|
4119
|
-
if (curr.checked) continue;
|
|
4120
|
-
curr.checked = true; //현재기준 8방향 객체 모으기
|
|
4121
|
-
|
|
4122
|
-
var incList = [];
|
|
4123
|
-
|
|
4124
|
-
if (boundsPos[i]) {
|
|
4125
|
-
boundsPos[i][k - 1] && incList.push(boundsPos[i][k - 1]);
|
|
4126
|
-
boundsPos[i][k + 1] && incList.push(boundsPos[i][k + 1]);
|
|
4127
|
-
}
|
|
4128
|
-
|
|
4129
|
-
if (boundsPos[i - 1]) {
|
|
4130
|
-
boundsPos[i - 1][k - 1] && incList.push(boundsPos[i - 1][k - 1]);
|
|
4131
|
-
boundsPos[i - 1][k] && incList.push(boundsPos[i - 1][k]);
|
|
4132
|
-
boundsPos[i - 1][k + 1] && incList.push(boundsPos[i - 1][k + 1]);
|
|
4133
|
-
}
|
|
4134
|
-
|
|
4135
|
-
if (boundsPos[i + 1]) {
|
|
4136
|
-
boundsPos[i + 1][k + 1] && incList.push(boundsPos[i + 1][k + 1]);
|
|
4137
|
-
boundsPos[i + 1][k] && incList.push(boundsPos[i + 1][k]);
|
|
4138
|
-
boundsPos[i + 1][k - 1] && incList.push(boundsPos[i + 1][k - 1]);
|
|
4139
|
-
}
|
|
4140
|
-
|
|
4141
|
-
for (var _i = 0, incList_1 = incList; _i < incList_1.length; _i++) {
|
|
4142
|
-
var inc = incList_1[_i];
|
|
4143
|
-
if (inc.checked) continue;
|
|
4144
|
-
inc.checked = true;
|
|
4145
|
-
|
|
4146
|
-
if (inc.itemList && inc.itemList.length > 0) {
|
|
4147
|
-
curr.incList.push(inc);
|
|
4148
|
-
|
|
4149
|
-
(_a = curr.itemList).push.apply(_a, inc.itemList);
|
|
4150
|
-
|
|
4151
|
-
curr.center = true;
|
|
4152
|
-
}
|
|
4153
|
-
}
|
|
4154
|
-
|
|
4155
|
-
if (curr.center) {
|
|
4156
|
-
centerList.push(curr);
|
|
4157
|
-
var avrLat = calculateAverage(curr.itemList.map(function (item) {
|
|
4158
|
-
return item.lat;
|
|
4159
|
-
}));
|
|
4160
|
-
var avrLng = calculateAverage(curr.itemList.map(function (item) {
|
|
4161
|
-
return item.lng;
|
|
4162
|
-
}));
|
|
4163
|
-
curr.centerPosition = new Position(avrLat, avrLng);
|
|
4164
|
-
totalItemCount += curr.itemList.length;
|
|
4165
|
-
|
|
4166
|
-
if (!min || curr.itemList.length < min) {
|
|
4167
|
-
min = curr.itemList.length;
|
|
4168
|
-
}
|
|
4169
|
-
|
|
4170
|
-
if (!max || curr.itemList.length > max) {
|
|
4171
|
-
max = curr.itemList.length;
|
|
4172
|
-
}
|
|
4173
|
-
}
|
|
4174
|
-
}
|
|
4175
|
-
}
|
|
4176
|
-
|
|
4177
|
-
var status = {
|
|
4178
|
-
total: totalItemCount,
|
|
4179
|
-
average: totalItemCount / centerList.length,
|
|
4180
|
-
min: min,
|
|
4181
|
-
max: max
|
|
4182
|
-
};
|
|
4183
|
-
|
|
4184
|
-
sizeFunction = sizeFunction || function (info, status) {
|
|
4185
|
-
var minSize = basePixelSize / 4;
|
|
4186
|
-
var maxSize = basePixelSize;
|
|
4187
|
-
return Math.min(Math.max(basePixelSize * info.itemList.length / status.average, minSize), maxSize);
|
|
4188
|
-
};
|
|
4189
|
-
|
|
4190
|
-
for (var _b = 0, centerList_1 = centerList; _b < centerList_1.length; _b++) {
|
|
4191
|
-
var center = centerList_1[_b];
|
|
4192
|
-
center.size = sizeFunction(center, status);
|
|
4193
|
-
} // console.log('centerList', centerList, status);
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
return centerList;
|
|
4197
|
-
};
|
|
4198
|
-
|
|
4199
|
-
var calculateAverage = function (nums) {
|
|
4200
|
-
var sum = 0;
|
|
4201
|
-
|
|
4202
|
-
for (var _i = 0, nums_1 = nums; _i < nums_1.length; _i++) {
|
|
4203
|
-
var num = nums_1[_i];
|
|
4204
|
-
sum += num;
|
|
4205
|
-
}
|
|
4206
|
-
|
|
4207
|
-
return Number((sum / nums.length).toFixed(7));
|
|
4208
|
-
};
|
|
4209
|
-
|
|
4210
|
-
/**
|
|
4211
|
-
* CircleMarker
|
|
4212
|
-
*
|
|
4213
|
-
* @param {CircleMarkerProps} CircleMarkerProps
|
|
4214
|
-
*
|
|
4215
|
-
* @returns {JSX.Element} JSX
|
|
4323
|
+
/**
|
|
4324
|
+
* CircleMarker
|
|
4325
|
+
*
|
|
4326
|
+
* @param {CircleMarkerProps} CircleMarkerProps
|
|
4327
|
+
*
|
|
4328
|
+
* @returns {JSX.Element} JSX
|
|
4216
4329
|
*/
|
|
4217
4330
|
|
|
4218
4331
|
function CircleMarker(_a) {
|
|
@@ -4324,12 +4437,12 @@
|
|
|
4324
4437
|
}, children)));
|
|
4325
4438
|
}
|
|
4326
4439
|
|
|
4327
|
-
/**
|
|
4328
|
-
*PolygonMarker
|
|
4329
|
-
*
|
|
4330
|
-
* @param {PolygonMarkerProps} PolygonMarkerProps
|
|
4331
|
-
*
|
|
4332
|
-
* @returns {JSX.Element} JSX
|
|
4440
|
+
/**
|
|
4441
|
+
*PolygonMarker
|
|
4442
|
+
*
|
|
4443
|
+
* @param {PolygonMarkerProps} PolygonMarkerProps
|
|
4444
|
+
*
|
|
4445
|
+
* @returns {JSX.Element} JSX
|
|
4333
4446
|
*/
|
|
4334
4447
|
|
|
4335
4448
|
function PolygonMarker(_a) {
|
|
@@ -4480,12 +4593,12 @@
|
|
|
4480
4593
|
}, children)));
|
|
4481
4594
|
}
|
|
4482
4595
|
|
|
4483
|
-
/**
|
|
4484
|
-
* Mint Map 컴포넌트
|
|
4485
|
-
*
|
|
4486
|
-
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
4487
|
-
*
|
|
4488
|
-
* @returns {JSX.Element} JSX
|
|
4596
|
+
/**
|
|
4597
|
+
* Mint Map 컴포넌트
|
|
4598
|
+
*
|
|
4599
|
+
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
4600
|
+
*
|
|
4601
|
+
* @returns {JSX.Element} JSX
|
|
4489
4602
|
*/
|
|
4490
4603
|
|
|
4491
4604
|
function MapPolygonWrapper(_a) {
|
|
@@ -4973,12 +5086,12 @@
|
|
|
4973
5086
|
|
|
4974
5087
|
throw new Error("Size [".concat(value, "] is not valid. (Should be % or pixel number)"));
|
|
4975
5088
|
};
|
|
4976
|
-
/**
|
|
4977
|
-
* Mint Map 컴포넌트
|
|
4978
|
-
*
|
|
4979
|
-
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
4980
|
-
*
|
|
4981
|
-
* @returns {JSX.Element} JSX
|
|
5089
|
+
/**
|
|
5090
|
+
* Mint Map 컴포넌트
|
|
5091
|
+
*
|
|
5092
|
+
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
5093
|
+
*
|
|
5094
|
+
* @returns {JSX.Element} JSX
|
|
4982
5095
|
*/
|
|
4983
5096
|
|
|
4984
5097
|
|
|
@@ -5003,12 +5116,12 @@
|
|
|
5003
5116
|
}, children);
|
|
5004
5117
|
}
|
|
5005
5118
|
|
|
5006
|
-
/**
|
|
5007
|
-
* Mint Map 컴포넌트
|
|
5008
|
-
*
|
|
5009
|
-
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
5010
|
-
*
|
|
5011
|
-
* @returns {JSX.Element} JSX
|
|
5119
|
+
/**
|
|
5120
|
+
* Mint Map 컴포넌트
|
|
5121
|
+
*
|
|
5122
|
+
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
5123
|
+
*
|
|
5124
|
+
* @returns {JSX.Element} JSX
|
|
5012
5125
|
*/
|
|
5013
5126
|
|
|
5014
5127
|
function MapPolylineWrapper(_a) {
|
|
@@ -5049,12 +5162,12 @@
|
|
|
5049
5162
|
log: function () {
|
|
5050
5163
|
}
|
|
5051
5164
|
};
|
|
5052
|
-
/**
|
|
5053
|
-
* Mint Map 컴포넌트
|
|
5054
|
-
*
|
|
5055
|
-
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
5056
|
-
*
|
|
5057
|
-
* @returns {JSX.Element} JSX
|
|
5165
|
+
/**
|
|
5166
|
+
* Mint Map 컴포넌트
|
|
5167
|
+
*
|
|
5168
|
+
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
5169
|
+
*
|
|
5170
|
+
* @returns {JSX.Element} JSX
|
|
5058
5171
|
*/
|
|
5059
5172
|
|
|
5060
5173
|
function MapCanvasWrapper(_a) {
|
|
@@ -5373,12 +5486,12 @@
|
|
|
5373
5486
|
}), renderFlag && React__default["default"].createElement(React__default["default"].Fragment, null));
|
|
5374
5487
|
}
|
|
5375
5488
|
|
|
5376
|
-
/**
|
|
5377
|
-
* Mint Map 컴포넌트
|
|
5378
|
-
*
|
|
5379
|
-
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
5380
|
-
*
|
|
5381
|
-
* @returns {JSX.Element} JSX
|
|
5489
|
+
/**
|
|
5490
|
+
* Mint Map 컴포넌트
|
|
5491
|
+
*
|
|
5492
|
+
* @param {MapControlWrapperProps} MapControlWrapperProps
|
|
5493
|
+
*
|
|
5494
|
+
* @returns {JSX.Element} JSX
|
|
5382
5495
|
*/
|
|
5383
5496
|
|
|
5384
5497
|
function MapCanvasMarkerWrapper(_props) {
|
|
@@ -5419,7 +5532,9 @@
|
|
|
5419
5532
|
exports.SVGCircle = SVGCircle;
|
|
5420
5533
|
exports.SVGPolygon = SVGPolygon;
|
|
5421
5534
|
exports.SVGRect = SVGRect;
|
|
5535
|
+
exports.Status = Status;
|
|
5422
5536
|
exports.getClusterInfo = getClusterInfo;
|
|
5537
|
+
exports.log = log;
|
|
5423
5538
|
exports.useMarkerMoving = useMarkerMoving;
|
|
5424
5539
|
exports.useMintMapController = useMintMapController;
|
|
5425
5540
|
exports.waiting = waiting;
|