@mint-ui/map 0.4.0-beta → 0.4.2-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/README.md +21 -1
- package/dist/components/mint-map/MintMap.d.ts +1 -0
- package/dist/components/mint-map/core/MintMapCanvasRenderer.d.ts +4 -0
- package/dist/components/mint-map/core/MintMapCanvasRenderer.js +13 -0
- package/dist/components/mint-map/core/MintMapController.d.ts +4 -1
- package/dist/components/mint-map/core/MintMapController.js +33 -1
- package/dist/components/mint-map/core/MintMapCore.d.ts +1 -1
- package/dist/components/mint-map/core/MintMapCore.js +6 -4
- package/dist/components/mint-map/core/index.d.ts +1 -0
- package/dist/components/mint-map/core/wrapper/MapCanvasMarkerWrapper.d.ts +19 -0
- package/dist/components/mint-map/core/wrapper/MapCanvasMarkerWrapper.js +15 -0
- package/dist/components/mint-map/core/wrapper/MapCanvasWrapper.d.ts +4 -0
- package/dist/components/mint-map/core/wrapper/MapCanvasWrapper.js +271 -0
- package/dist/components/mint-map/core/wrapper/index.d.ts +2 -0
- package/dist/components/mint-map/google/GoogleMintMapController.js +1 -6
- package/dist/components/mint-map/kakao/KakaoMintMapController.js +1 -5
- package/dist/components/mint-map/naver/NaverMintMapController.js +3 -8
- package/dist/index.es.js +313 -26
- package/dist/index.js +6 -0
- package/dist/index.umd.js +314 -24
- package/package.json +2 -2
package/dist/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter, __generator, __extends, __assign, __rest, __spreadArray } from 'tslib';
|
|
2
|
-
import React, { createContext, useContext, useRef, useState, useEffect, useMemo } from 'react';
|
|
2
|
+
import React, { createContext, useContext, useRef, useState, useEffect, useMemo, useCallback } from 'react';
|
|
3
3
|
import classNames from 'classnames/bind';
|
|
4
4
|
import styleInject from 'style-inject';
|
|
5
5
|
import { ObjectPool } from '@mint-ui/tools';
|
|
@@ -40,13 +40,15 @@ function MintMapCore(_a) {
|
|
|
40
40
|
visible = _b === void 0 ? true : _b,
|
|
41
41
|
zoomLevel = _a.zoomLevel,
|
|
42
42
|
center = _a.center,
|
|
43
|
+
_c = _a.centerMoveWithPanning,
|
|
44
|
+
centerMoveWithPanning = _c === void 0 ? false : _c,
|
|
43
45
|
children = _a.children;
|
|
44
46
|
var controller = useMintMapController();
|
|
45
47
|
var elementRef = useRef(null);
|
|
46
48
|
|
|
47
|
-
var
|
|
48
|
-
mapInitialized =
|
|
49
|
-
setMapInitialized =
|
|
49
|
+
var _d = useState(false),
|
|
50
|
+
mapInitialized = _d[0],
|
|
51
|
+
setMapInitialized = _d[1];
|
|
50
52
|
|
|
51
53
|
useEffect(function () {
|
|
52
54
|
(function () {
|
|
@@ -91,7 +93,7 @@ function MintMapCore(_a) {
|
|
|
91
93
|
var prevCenter = controller.getCenter();
|
|
92
94
|
|
|
93
95
|
if (!Position.equals(prevCenter, center)) {
|
|
94
|
-
controller === null || controller === void 0 ? void 0 : controller.setCenter(center);
|
|
96
|
+
centerMoveWithPanning ? controller === null || controller === void 0 ? void 0 : controller.panningTo(center) : controller === null || controller === void 0 ? void 0 : controller.setCenter(center);
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
}, [center]);
|
|
@@ -341,12 +343,43 @@ var MintMapController = function () {
|
|
|
341
343
|
return this.type;
|
|
342
344
|
};
|
|
343
345
|
|
|
346
|
+
MintMapController.prototype.positionToOffset = function (position) {
|
|
347
|
+
var div = this.mapDivElement;
|
|
348
|
+
var w = div === null || div === void 0 ? void 0 : div.offsetWidth;
|
|
349
|
+
var h = div === null || div === void 0 ? void 0 : div.offsetHeight;
|
|
350
|
+
var bounds = this.getCurrBounds();
|
|
351
|
+
var maxLng = bounds.ne.lng;
|
|
352
|
+
var minLng = bounds.sw.lng;
|
|
353
|
+
var lng = Math.abs(maxLng - minLng);
|
|
354
|
+
var x = w * (position.lng - minLng) / lng;
|
|
355
|
+
var maxLat = bounds.ne.lat;
|
|
356
|
+
var minLat = bounds.sw.lat;
|
|
357
|
+
var lat = Math.abs(maxLat - minLat);
|
|
358
|
+
var y = h * (maxLat - position.lat) / lat;
|
|
359
|
+
return new Offset(x, y);
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
MintMapController.prototype.offsetToPosition = function (offset) {
|
|
363
|
+
var div = this.mapDivElement;
|
|
364
|
+
var w = div === null || div === void 0 ? void 0 : div.offsetWidth;
|
|
365
|
+
var h = div === null || div === void 0 ? void 0 : div.offsetHeight;
|
|
366
|
+
var bounds = this.getCurrBounds();
|
|
367
|
+
var maxLng = bounds.ne.lng;
|
|
368
|
+
var minLng = bounds.sw.lng;
|
|
369
|
+
var lng = Math.abs(maxLng - minLng);
|
|
370
|
+
var lngVal = offset.x * lng / w + minLng;
|
|
371
|
+
var maxLat = bounds.ne.lat;
|
|
372
|
+
var minLat = bounds.sw.lat;
|
|
373
|
+
var lat = Math.abs(maxLat - minLat);
|
|
374
|
+
var latVal = (offset.y * lat / h - maxLat) * -1;
|
|
375
|
+
return new Position(latVal, lngVal);
|
|
376
|
+
};
|
|
377
|
+
|
|
344
378
|
MintMapController.prototype.loadScript = function (url, id) {
|
|
345
379
|
return __awaiter(this, void 0, void 0, function () {
|
|
346
380
|
return __generator(this, function (_a) {
|
|
347
381
|
return [2, new Promise(function (resolve) {
|
|
348
382
|
if (id && document.getElementById(id)) {
|
|
349
|
-
console.log("already loaded script => ".concat(id));
|
|
350
383
|
resolve();
|
|
351
384
|
return;
|
|
352
385
|
}
|
|
@@ -646,7 +679,6 @@ var NaverMintMapController = function (_super) {
|
|
|
646
679
|
_this.markerEvents = ['click', 'mouseover', 'mouseout'];
|
|
647
680
|
_this.dragStartPoint = [0, 0];
|
|
648
681
|
_this.dragged = false;
|
|
649
|
-
console.log("".concat(_this.type, " controller loadded"));
|
|
650
682
|
return _this;
|
|
651
683
|
}
|
|
652
684
|
|
|
@@ -932,7 +964,7 @@ var NaverMintMapController = function (_super) {
|
|
|
932
964
|
var _this = this;
|
|
933
965
|
|
|
934
966
|
return __generator(this, function (_a) {
|
|
935
|
-
return [2, new Promise(function (resolve) {
|
|
967
|
+
return [2, new Promise(function (resolve, error) {
|
|
936
968
|
return __awaiter(_this, void 0, void 0, function () {
|
|
937
969
|
var callbackName, loaded, params, ok;
|
|
938
970
|
return __generator(this, function (_a) {
|
|
@@ -942,7 +974,6 @@ var NaverMintMapController = function (_super) {
|
|
|
942
974
|
loaded = false;
|
|
943
975
|
|
|
944
976
|
window[callbackName] = function () {
|
|
945
|
-
console.log('naver api loaded');
|
|
946
977
|
loaded = true;
|
|
947
978
|
delete window[callbackName];
|
|
948
979
|
};
|
|
@@ -965,12 +996,11 @@ var NaverMintMapController = function (_super) {
|
|
|
965
996
|
ok = _a.sent();
|
|
966
997
|
|
|
967
998
|
if (!ok) {
|
|
968
|
-
|
|
999
|
+
error('naver script api load failed!!');
|
|
969
1000
|
}
|
|
970
1001
|
|
|
971
1002
|
this.mapApiLoaded = true;
|
|
972
1003
|
resolve(true);
|
|
973
|
-
console.log("".concat(this.type, " map script loaded"));
|
|
974
1004
|
return [2];
|
|
975
1005
|
}
|
|
976
1006
|
});
|
|
@@ -985,6 +1015,7 @@ var NaverMintMapController = function (_super) {
|
|
|
985
1015
|
var _this = this;
|
|
986
1016
|
|
|
987
1017
|
return __generator(this, function (_a) {
|
|
1018
|
+
this.mapDivElement = divElement;
|
|
988
1019
|
return [2, new Promise(function (resolve) {
|
|
989
1020
|
return __awaiter(_this, void 0, void 0, function () {
|
|
990
1021
|
var options, maxZoom, minZoom, map;
|
|
@@ -1077,7 +1108,6 @@ var NaverMintMapController = function (_super) {
|
|
|
1077
1108
|
});
|
|
1078
1109
|
this.mapInitialized = true;
|
|
1079
1110
|
this.initMarkerPool();
|
|
1080
|
-
console.log("".concat(this.type, " map script initialized"), divElement);
|
|
1081
1111
|
resolve(map);
|
|
1082
1112
|
map.trigger('idle');
|
|
1083
1113
|
return [2];
|
|
@@ -1108,8 +1138,6 @@ var NaverMintMapController = function (_super) {
|
|
|
1108
1138
|
} catch (e) {
|
|
1109
1139
|
console.log('naver map destroy error', e);
|
|
1110
1140
|
}
|
|
1111
|
-
|
|
1112
|
-
console.log("".concat(this.type, " map destroyed"));
|
|
1113
1141
|
};
|
|
1114
1142
|
|
|
1115
1143
|
NaverMintMapController.prototype.getCurrBounds = function () {
|
|
@@ -1175,11 +1203,8 @@ var GoogleMintMapController = function (_super) {
|
|
|
1175
1203
|
} catch (e) {
|
|
1176
1204
|
console.log('google map destroy error', e);
|
|
1177
1205
|
}
|
|
1178
|
-
|
|
1179
|
-
console.log("".concat(_this.type, " map destroyed"));
|
|
1180
1206
|
};
|
|
1181
1207
|
|
|
1182
|
-
console.log("".concat(_this.type, " controller loadded"));
|
|
1183
1208
|
return _this;
|
|
1184
1209
|
}
|
|
1185
1210
|
|
|
@@ -1475,7 +1500,6 @@ var GoogleMintMapController = function (_super) {
|
|
|
1475
1500
|
loaded = false;
|
|
1476
1501
|
|
|
1477
1502
|
window[callbackName] = function () {
|
|
1478
|
-
console.log('google api loaded');
|
|
1479
1503
|
loaded = true;
|
|
1480
1504
|
delete window[callbackName];
|
|
1481
1505
|
};
|
|
@@ -1504,7 +1528,6 @@ var GoogleMintMapController = function (_super) {
|
|
|
1504
1528
|
|
|
1505
1529
|
this.mapApiLoaded = true;
|
|
1506
1530
|
resolve(true);
|
|
1507
|
-
console.log("".concat(this.type, " map script api loaded"));
|
|
1508
1531
|
return [2];
|
|
1509
1532
|
}
|
|
1510
1533
|
});
|
|
@@ -1519,6 +1542,7 @@ var GoogleMintMapController = function (_super) {
|
|
|
1519
1542
|
var _this = this;
|
|
1520
1543
|
|
|
1521
1544
|
return __generator(this, function (_a) {
|
|
1545
|
+
this.mapDivElement = divElement;
|
|
1522
1546
|
return [2, new Promise(function (resolve) {
|
|
1523
1547
|
return __awaiter(_this, void 0, void 0, function () {
|
|
1524
1548
|
var map;
|
|
@@ -1579,7 +1603,6 @@ var GoogleMintMapController = function (_super) {
|
|
|
1579
1603
|
_this.mapProps.onMouseMove(pos);
|
|
1580
1604
|
});
|
|
1581
1605
|
this.mapInitialized = true;
|
|
1582
|
-
console.log("".concat(this.type, " map script initialized"), divElement);
|
|
1583
1606
|
resolve(map);
|
|
1584
1607
|
return [2];
|
|
1585
1608
|
}
|
|
@@ -1654,7 +1677,6 @@ var KakaoMintMapController = function (_super) {
|
|
|
1654
1677
|
_this.markerEvents = ['click', 'mouseover', 'mouseout'];
|
|
1655
1678
|
_this.dragStartPoint = [0, 0];
|
|
1656
1679
|
_this.dragged = false;
|
|
1657
|
-
console.log("".concat(_this.type, " controller loadded"));
|
|
1658
1680
|
return _this;
|
|
1659
1681
|
}
|
|
1660
1682
|
|
|
@@ -1972,7 +1994,6 @@ var KakaoMintMapController = function (_super) {
|
|
|
1972
1994
|
|
|
1973
1995
|
this.mapApiLoaded = true;
|
|
1974
1996
|
resolve(true);
|
|
1975
|
-
console.log("".concat(this.type, " map script loaded"));
|
|
1976
1997
|
return [2];
|
|
1977
1998
|
}
|
|
1978
1999
|
});
|
|
@@ -1987,6 +2008,7 @@ var KakaoMintMapController = function (_super) {
|
|
|
1987
2008
|
var _this = this;
|
|
1988
2009
|
|
|
1989
2010
|
return __generator(this, function (_a) {
|
|
2011
|
+
this.mapDivElement = divElement;
|
|
1990
2012
|
return [2, new Promise(function (resolve) {
|
|
1991
2013
|
return __awaiter(_this, void 0, void 0, function () {
|
|
1992
2014
|
var options, maxZoom, minZoom, map;
|
|
@@ -2064,7 +2086,6 @@ var KakaoMintMapController = function (_super) {
|
|
|
2064
2086
|
});
|
|
2065
2087
|
this.mapInitialized = true;
|
|
2066
2088
|
this.initMarkerPool();
|
|
2067
|
-
console.log("".concat(this.type, " map script initialized"), divElement);
|
|
2068
2089
|
resolve(map);
|
|
2069
2090
|
return [2];
|
|
2070
2091
|
}
|
|
@@ -2095,8 +2116,6 @@ var KakaoMintMapController = function (_super) {
|
|
|
2095
2116
|
} catch (e) {
|
|
2096
2117
|
console.log('kakao map destroy error', e);
|
|
2097
2118
|
}
|
|
2098
|
-
|
|
2099
|
-
console.log("".concat(this.type, " map destroyed"));
|
|
2100
2119
|
};
|
|
2101
2120
|
|
|
2102
2121
|
KakaoMintMapController.prototype.getCurrBounds = function () {
|
|
@@ -2421,6 +2440,14 @@ function PointLoading(_a) {
|
|
|
2421
2440
|
}, "".concat(text, " ").concat(pointString)));
|
|
2422
2441
|
}
|
|
2423
2442
|
|
|
2443
|
+
var MintMapCanvasRenderer = function () {
|
|
2444
|
+
function MintMapCanvasRenderer(context) {
|
|
2445
|
+
this.context = context;
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2448
|
+
return MintMapCanvasRenderer;
|
|
2449
|
+
}();
|
|
2450
|
+
|
|
2424
2451
|
var AnimationPlayer = function () {
|
|
2425
2452
|
function AnimationPlayer(drawFunction, fps) {
|
|
2426
2453
|
this.prevtime = 0;
|
|
@@ -3196,4 +3223,264 @@ function MapPolylineWrapper(_a) {
|
|
|
3196
3223
|
return React.createElement(React.Fragment, null, options && children);
|
|
3197
3224
|
}
|
|
3198
3225
|
|
|
3199
|
-
|
|
3226
|
+
var console$1 = {
|
|
3227
|
+
log: function () {
|
|
3228
|
+
}
|
|
3229
|
+
};
|
|
3230
|
+
function MapCanvasWrapper(_a) {
|
|
3231
|
+
var children = _a.children;
|
|
3232
|
+
__rest(_a, ["children"]);
|
|
3233
|
+
var controller = useMintMapController();
|
|
3234
|
+
|
|
3235
|
+
var _b = useState(false),
|
|
3236
|
+
renderFlag = _b[0],
|
|
3237
|
+
setRenderFlag = _b[1];
|
|
3238
|
+
|
|
3239
|
+
var invokeRender = useCallback(function () {
|
|
3240
|
+
setRenderFlag(!renderFlag);
|
|
3241
|
+
}, []);
|
|
3242
|
+
var renderer = useRef();
|
|
3243
|
+
var containerRef = useRef(null);
|
|
3244
|
+
var canvasRef = useRef(null);
|
|
3245
|
+
var contextRef = useRef();
|
|
3246
|
+
var clearRect = useCallback(function () {
|
|
3247
|
+
if (contextRef.current && canvasRef.current) {
|
|
3248
|
+
contextRef.current.clearRect(canvasRef.current.width * -1, canvasRef.current.height * -1, canvasRef.current.width * 3, canvasRef.current.height * 3);
|
|
3249
|
+
}
|
|
3250
|
+
|
|
3251
|
+
return true;
|
|
3252
|
+
}, []);
|
|
3253
|
+
var scaleCanvas = useCallback(function (containerRef, canvasElement, canvasContext) {
|
|
3254
|
+
var devicePixelRatio = window.devicePixelRatio;
|
|
3255
|
+
var width = containerRef.offsetWidth;
|
|
3256
|
+
var height = containerRef.offsetHeight;
|
|
3257
|
+
canvasElement.width = width * devicePixelRatio;
|
|
3258
|
+
canvasElement.height = height * devicePixelRatio;
|
|
3259
|
+
canvasElement.style.width = "".concat(width, "px");
|
|
3260
|
+
canvasElement.style.height = "".concat(height, "px");
|
|
3261
|
+
canvasContext.scale(devicePixelRatio, devicePixelRatio);
|
|
3262
|
+
}, []);
|
|
3263
|
+
var parseClickParamToPosition = useCallback(function (mapType, e) {
|
|
3264
|
+
var latlng = e.latlng || e.latLng;
|
|
3265
|
+
|
|
3266
|
+
if (!latlng) {
|
|
3267
|
+
throw new Error("Map Type ".concat(mapType, " canvas marker click not supported (latlng not found)"));
|
|
3268
|
+
}
|
|
3269
|
+
|
|
3270
|
+
var clickPosition = new Position(0, 0);
|
|
3271
|
+
|
|
3272
|
+
if (mapType === 'naver') {
|
|
3273
|
+
clickPosition.lat = latlng._lat;
|
|
3274
|
+
clickPosition.lng = latlng._lng;
|
|
3275
|
+
} else if (mapType === 'google') {
|
|
3276
|
+
clickPosition.lat = latlng.lat();
|
|
3277
|
+
clickPosition.lng = latlng.lng();
|
|
3278
|
+
} else if (mapType === 'kakao') {
|
|
3279
|
+
clickPosition.lat = latlng.Ma;
|
|
3280
|
+
clickPosition.lng = latlng.La;
|
|
3281
|
+
} else {
|
|
3282
|
+
throw new Error("Map Type ".concat(mapType, " canvas marker click not supported"));
|
|
3283
|
+
}
|
|
3284
|
+
|
|
3285
|
+
return clickPosition;
|
|
3286
|
+
}, []);
|
|
3287
|
+
|
|
3288
|
+
var includes = function (point, targetPoint, width, height) {
|
|
3289
|
+
if (point.x >= targetPoint.x && point.x <= targetPoint.x + width && point.y >= targetPoint.y && point.y <= targetPoint.y + height) {
|
|
3290
|
+
return true;
|
|
3291
|
+
}
|
|
3292
|
+
|
|
3293
|
+
return false;
|
|
3294
|
+
};
|
|
3295
|
+
|
|
3296
|
+
var processMouseEvent = useCallback(function (clickedOffset, eventName) {
|
|
3297
|
+
var items = renderItemsOnView.current;
|
|
3298
|
+
var hitSet = new Set();
|
|
3299
|
+
|
|
3300
|
+
for (var i = items.length - 1; i >= 0; i--) {
|
|
3301
|
+
var item = items[i];
|
|
3302
|
+
|
|
3303
|
+
if (item.visible === undefined || item.visible) {
|
|
3304
|
+
var event_1 = item[eventName];
|
|
3305
|
+
|
|
3306
|
+
if (!event_1) {
|
|
3307
|
+
continue;
|
|
3308
|
+
}
|
|
3309
|
+
|
|
3310
|
+
var pos = item.position;
|
|
3311
|
+
|
|
3312
|
+
if (pos && !pos.offset) {
|
|
3313
|
+
pos.offset = controller.positionToOffset(pos);
|
|
3314
|
+
}
|
|
3315
|
+
|
|
3316
|
+
if (!pos || !pos.offset || !includes(clickedOffset, pos.offset, item.boxWidth, item.boxHeight)) {
|
|
3317
|
+
continue;
|
|
3318
|
+
}
|
|
3319
|
+
|
|
3320
|
+
event_1(clickedOffset);
|
|
3321
|
+
hitSet.add(item);
|
|
3322
|
+
break;
|
|
3323
|
+
}
|
|
3324
|
+
}
|
|
3325
|
+
|
|
3326
|
+
return hitSet;
|
|
3327
|
+
}, []);
|
|
3328
|
+
useEffect(function () {
|
|
3329
|
+
var resizeObserver;
|
|
3330
|
+
|
|
3331
|
+
if (canvasRef.current && containerRef.current) {
|
|
3332
|
+
resizeObserver = new ResizeObserver(function (entries) {
|
|
3333
|
+
var elem = entries[0];
|
|
3334
|
+
canvasRef.current && contextRef.current && scaleCanvas(elem.target, canvasRef.current, contextRef.current);
|
|
3335
|
+
renderMain();
|
|
3336
|
+
});
|
|
3337
|
+
resizeObserver.observe(containerRef.current);
|
|
3338
|
+
var map = controller.getMap();
|
|
3339
|
+
|
|
3340
|
+
if (map) {
|
|
3341
|
+
map.addListener('zooming', function () {
|
|
3342
|
+
clearRect();
|
|
3343
|
+
});
|
|
3344
|
+
map.addListener('zoom_start', function () {
|
|
3345
|
+
clearRect();
|
|
3346
|
+
});
|
|
3347
|
+
map.addListener('center_changed', function () {
|
|
3348
|
+
|
|
3349
|
+
if (containerRef.current) {
|
|
3350
|
+
containerRef.current.style.visibility = 'hidden';
|
|
3351
|
+
}
|
|
3352
|
+
});
|
|
3353
|
+
map.addListener('idle', function () {
|
|
3354
|
+
|
|
3355
|
+
if (containerRef.current) {
|
|
3356
|
+
containerRef.current.style.visibility = '';
|
|
3357
|
+
}
|
|
3358
|
+
|
|
3359
|
+
clearRect();
|
|
3360
|
+
invokeRender();
|
|
3361
|
+
});
|
|
3362
|
+
map.addListener('mousemove', function (e) {
|
|
3363
|
+
var clickPosition = parseClickParamToPosition(controller.getMapType(), e);
|
|
3364
|
+
var clickedOffset = controller.positionToOffset(clickPosition);
|
|
3365
|
+
var hitSet = processMouseEvent(clickedOffset, 'onMouseOver');
|
|
3366
|
+
renderItemsMouseOverStatus.current.forEach(function (item) {
|
|
3367
|
+
if (!hitSet.has(item)) {
|
|
3368
|
+
item.onMouseOut && item.onMouseOut(clickedOffset);
|
|
3369
|
+
}
|
|
3370
|
+
});
|
|
3371
|
+
renderItemsMouseOverStatus.current = hitSet;
|
|
3372
|
+
});
|
|
3373
|
+
map.addListener('click', function (e) {
|
|
3374
|
+
var clickPosition = parseClickParamToPosition(controller.getMapType(), e);
|
|
3375
|
+
var clickedOffset = controller.positionToOffset(clickPosition);
|
|
3376
|
+
processMouseEvent(clickedOffset, 'onClick');
|
|
3377
|
+
});
|
|
3378
|
+
}
|
|
3379
|
+
|
|
3380
|
+
contextRef.current = canvasRef.current.getContext('2d');
|
|
3381
|
+
|
|
3382
|
+
if (contextRef.current) {
|
|
3383
|
+
scaleCanvas(containerRef.current, canvasRef.current, contextRef.current);
|
|
3384
|
+
renderer.current = new MintMapCanvasRenderer(contextRef.current);
|
|
3385
|
+
}
|
|
3386
|
+
}
|
|
3387
|
+
|
|
3388
|
+
return function () {
|
|
3389
|
+
resizeObserver && resizeObserver.disconnect();
|
|
3390
|
+
};
|
|
3391
|
+
}, []);
|
|
3392
|
+
var renderItems = useRef([]);
|
|
3393
|
+
var renderItemsOnView = useRef([]);
|
|
3394
|
+
var renderItemsMouseOverStatus = useRef(new Set());
|
|
3395
|
+
useEffect(function () {
|
|
3396
|
+
renderItems.current = (Array.isArray(children) ? children : [children]).map(function (item) {
|
|
3397
|
+
return item.props;
|
|
3398
|
+
});
|
|
3399
|
+
var zIndexList = [];
|
|
3400
|
+
var undefinedList = [];
|
|
3401
|
+
|
|
3402
|
+
for (var _i = 0, _a = renderItems.current; _i < _a.length; _i++) {
|
|
3403
|
+
var item = _a[_i];
|
|
3404
|
+
|
|
3405
|
+
if (item.zIndex !== undefined) {
|
|
3406
|
+
zIndexList.push(item);
|
|
3407
|
+
} else {
|
|
3408
|
+
undefinedList.push(item);
|
|
3409
|
+
}
|
|
3410
|
+
}
|
|
3411
|
+
|
|
3412
|
+
renderItems.current = undefinedList;
|
|
3413
|
+
zIndexList.sort(function (a, b) {
|
|
3414
|
+
return a > b ? 1 : -1;
|
|
3415
|
+
}).forEach(function (item) {
|
|
3416
|
+
renderItems.current.push(item);
|
|
3417
|
+
});
|
|
3418
|
+
}, [children]);
|
|
3419
|
+
var renderMain = useCallback(function () {
|
|
3420
|
+
var ctx = contextRef.current;
|
|
3421
|
+
var container = containerRef.current;
|
|
3422
|
+
|
|
3423
|
+
if (!ctx || !container || !renderer.current) {
|
|
3424
|
+
return;
|
|
3425
|
+
}
|
|
3426
|
+
|
|
3427
|
+
clearRect();
|
|
3428
|
+
var t = new Date().getTime();
|
|
3429
|
+
var items = renderItems.current;
|
|
3430
|
+
renderItemsOnView.current.length = 0;
|
|
3431
|
+
var newSet = new Set();
|
|
3432
|
+
|
|
3433
|
+
for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
|
|
3434
|
+
var item = items_1[_i];
|
|
3435
|
+
|
|
3436
|
+
if (item.visible === undefined || item.visible) {
|
|
3437
|
+
var pos = item.position;
|
|
3438
|
+
pos.offset = controller.positionToOffset(pos);
|
|
3439
|
+
|
|
3440
|
+
if (item.anchor) {
|
|
3441
|
+
pos.offset.x += item.anchor.x;
|
|
3442
|
+
pos.offset.y += item.anchor.y;
|
|
3443
|
+
}
|
|
3444
|
+
|
|
3445
|
+
console$1.log('canvas marker', pos.offset);
|
|
3446
|
+
|
|
3447
|
+
if (pos.offset.x < 0 || pos.offset.x > container.offsetWidth || pos.offset.y < 0 || pos.offset.y > container.offsetHeight) {
|
|
3448
|
+
continue;
|
|
3449
|
+
}
|
|
3450
|
+
|
|
3451
|
+
item.renderer(renderer.current, pos.offset, item.payload);
|
|
3452
|
+
renderItemsOnView.current.push(item);
|
|
3453
|
+
newSet.add(item);
|
|
3454
|
+
}
|
|
3455
|
+
}
|
|
3456
|
+
|
|
3457
|
+
renderItemsMouseOverStatus.current.forEach(function (item) {
|
|
3458
|
+
if (!newSet.has(item)) {
|
|
3459
|
+
renderItemsMouseOverStatus.current.delete(item);
|
|
3460
|
+
}
|
|
3461
|
+
});
|
|
3462
|
+
console$1.log("[render ends] ".concat(new Date().getTime() - t, " ms"));
|
|
3463
|
+
}, []);
|
|
3464
|
+
renderMain();
|
|
3465
|
+
return React.createElement("div", {
|
|
3466
|
+
ref: containerRef,
|
|
3467
|
+
style: {
|
|
3468
|
+
position: 'absolute',
|
|
3469
|
+
width: '100%',
|
|
3470
|
+
height: '100%',
|
|
3471
|
+
zIndex: 2,
|
|
3472
|
+
pointerEvents: 'none'
|
|
3473
|
+
}
|
|
3474
|
+
}, React.createElement("canvas", {
|
|
3475
|
+
ref: canvasRef,
|
|
3476
|
+
style: {
|
|
3477
|
+
pointerEvents: 'revert-layer'
|
|
3478
|
+
}
|
|
3479
|
+
}), renderFlag && React.createElement(React.Fragment, null));
|
|
3480
|
+
}
|
|
3481
|
+
|
|
3482
|
+
function MapCanvasMarkerWrapper(_props) {
|
|
3483
|
+
return React.createElement(React.Fragment, null);
|
|
3484
|
+
}
|
|
3485
|
+
|
|
3486
|
+
export { AnimationPlayer, Bounds, Drawable, GeoCalulator, GoogleMintMapController, MapBuildingProjection, MapCanvasMarkerWrapper, MapCanvasWrapper, MapControlWrapper, MapMarkerWrapper, MapPolygonWrapper, MapPolylineWrapper, Marker, MintMap, MintMapCanvasRenderer, MintMapController, MintMapCore, MintMapProvider, NaverMintMapController, Offset, Polygon, PolygonCalculator, Polyline, Position, getClusterInfo, useMarkerMoving, useMintMapController, waiting };
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var MintMap = require('./components/mint-map/MintMap.js');
|
|
6
6
|
var MintMapCore = require('./components/mint-map/core/MintMapCore.js');
|
|
7
7
|
var MintMapController = require('./components/mint-map/core/MintMapController.js');
|
|
8
|
+
var MintMapCanvasRenderer = require('./components/mint-map/core/MintMapCanvasRenderer.js');
|
|
8
9
|
var MapBuildingProjection = require('./components/mint-map/core/advanced/MapBuildingProjection.js');
|
|
9
10
|
var MarkerMovingHook = require('./components/mint-map/core/hooks/MarkerMovingHook.js');
|
|
10
11
|
var MintMapProvider = require('./components/mint-map/core/provider/MintMapProvider.js');
|
|
@@ -16,6 +17,8 @@ var MapControlWrapper = require('./components/mint-map/core/wrapper/MapControlWr
|
|
|
16
17
|
var MapMarkerWrapper = require('./components/mint-map/core/wrapper/MapMarkerWrapper.js');
|
|
17
18
|
var MapPolygonWrapper = require('./components/mint-map/core/wrapper/MapPolygonWrapper.js');
|
|
18
19
|
var MapPolylineWrapper = require('./components/mint-map/core/wrapper/MapPolylineWrapper.js');
|
|
20
|
+
var MapCanvasWrapper = require('./components/mint-map/core/wrapper/MapCanvasWrapper.js');
|
|
21
|
+
var MapCanvasMarkerWrapper = require('./components/mint-map/core/wrapper/MapCanvasMarkerWrapper.js');
|
|
19
22
|
var NaverMintMapController = require('./components/mint-map/naver/NaverMintMapController.js');
|
|
20
23
|
var GoogleMintMapController = require('./components/mint-map/google/GoogleMintMapController.js');
|
|
21
24
|
|
|
@@ -31,6 +34,7 @@ exports.Polyline = MintMap.Polyline;
|
|
|
31
34
|
exports.Position = MintMap.Position;
|
|
32
35
|
exports.MintMapCore = MintMapCore.MintMapCore;
|
|
33
36
|
exports.MintMapController = MintMapController.MintMapController;
|
|
37
|
+
exports.MintMapCanvasRenderer = MintMapCanvasRenderer.MintMapCanvasRenderer;
|
|
34
38
|
exports.MapBuildingProjection = MapBuildingProjection.MapBuildingProjection;
|
|
35
39
|
exports.useMarkerMoving = MarkerMovingHook.useMarkerMoving;
|
|
36
40
|
exports.MintMapProvider = MintMapProvider.MintMapProvider;
|
|
@@ -44,5 +48,7 @@ exports.MapControlWrapper = MapControlWrapper.MapControlWrapper;
|
|
|
44
48
|
exports.MapMarkerWrapper = MapMarkerWrapper.MapMarkerWrapper;
|
|
45
49
|
exports.MapPolygonWrapper = MapPolygonWrapper.MapPolygonWrapper;
|
|
46
50
|
exports.MapPolylineWrapper = MapPolylineWrapper.MapPolylineWrapper;
|
|
51
|
+
exports.MapCanvasWrapper = MapCanvasWrapper.MapCanvasWrapper;
|
|
52
|
+
exports.MapCanvasMarkerWrapper = MapCanvasMarkerWrapper.MapCanvasMarkerWrapper;
|
|
47
53
|
exports.NaverMintMapController = NaverMintMapController.NaverMintMapController;
|
|
48
54
|
exports.GoogleMintMapController = GoogleMintMapController.GoogleMintMapController;
|