@syncfusion/ej2-maps 23.2.7 → 24.1.47
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/CHANGELOG.md +22 -1
- package/README.md +1 -1
- package/dist/ej2-maps.min.js +2 -2
- package/dist/ej2-maps.umd.min.js +2 -2
- package/dist/ej2-maps.umd.min.js.map +1 -1
- package/dist/es6/ej2-maps.es2015.js +1122 -821
- package/dist/es6/ej2-maps.es2015.js.map +1 -1
- package/dist/es6/ej2-maps.es5.js +1190 -861
- package/dist/es6/ej2-maps.es5.js.map +1 -1
- package/dist/global/ej2-maps.min.js +2 -2
- package/dist/global/ej2-maps.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +13 -13
- package/src/global.js +1 -1
- package/src/maps/index.d.ts +1 -0
- package/src/maps/index.js +1 -0
- package/src/maps/layers/layer-panel.js +14 -3
- package/src/maps/layers/legend.js +1 -1
- package/src/maps/layers/marker.js +51 -35
- package/src/maps/layers/polygon.d.ts +31 -0
- package/src/maps/layers/polygon.js +58 -0
- package/src/maps/maps-model.d.ts +1 -1
- package/src/maps/maps.d.ts +25 -1
- package/src/maps/maps.js +79 -15
- package/src/maps/model/base-model.d.ts +112 -25
- package/src/maps/model/base.d.ts +80 -7
- package/src/maps/model/base.js +56 -0
- package/src/maps/model/interface.d.ts +24 -3
- package/src/maps/user-interaction/highlight.js +6 -0
- package/src/maps/user-interaction/selection.js +13 -0
- package/src/maps/user-interaction/tooltip.js +13 -21
- package/src/maps/user-interaction/zoom.js +131 -59
- package/src/maps/utils/helper.d.ts +19 -1
- package/src/maps/utils/helper.js +124 -81
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version :
|
|
3
|
+
* version : 24.1.47
|
|
4
4
|
* Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
|
|
5
5
|
* Use of this code is subject to the terms of our license.
|
|
6
6
|
* A copy of the current license can be obtained at any time by e-mailing
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "@syncfusion/ej2-maps@*",
|
|
3
|
-
"_id": "@syncfusion/ej2-maps@
|
|
3
|
+
"_id": "@syncfusion/ej2-maps@24.1.41",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-c5WmN2YgV4LUYns8pho6Db9uQ2AOOcKtuwF50pEeJNEQGLk/iML8AG9Wm7CtxR9VvQkCt/PySZ0AkEMYv4NdXg==",
|
|
6
6
|
"_location": "/@syncfusion/ej2-maps",
|
|
7
7
|
"_phantomChildren": {},
|
|
8
8
|
"_requested": {
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"/@syncfusion/ej2-react-maps",
|
|
24
24
|
"/@syncfusion/ej2-vue-maps"
|
|
25
25
|
],
|
|
26
|
-
"_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-maps/-/ej2-maps-
|
|
27
|
-
"_shasum": "
|
|
26
|
+
"_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-maps/-/ej2-maps-24.1.41.tgz",
|
|
27
|
+
"_shasum": "a1dd14ef6bfbd226fe87c023a62bd8feedf1587d",
|
|
28
28
|
"_spec": "@syncfusion/ej2-maps@*",
|
|
29
|
-
"_where": "/jenkins/workspace/elease-
|
|
29
|
+
"_where": "/jenkins/workspace/elease-automation_release_24.1.1/packages/included",
|
|
30
30
|
"author": {
|
|
31
31
|
"name": "Syncfusion Inc."
|
|
32
32
|
},
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
},
|
|
36
36
|
"bundleDependencies": false,
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@syncfusion/ej2-base": "~
|
|
39
|
-
"@syncfusion/ej2-buttons": "~
|
|
40
|
-
"@syncfusion/ej2-compression": "~
|
|
41
|
-
"@syncfusion/ej2-data": "~
|
|
42
|
-
"@syncfusion/ej2-file-utils": "~
|
|
43
|
-
"@syncfusion/ej2-pdf-export": "~
|
|
44
|
-
"@syncfusion/ej2-svg-base": "~
|
|
38
|
+
"@syncfusion/ej2-base": "~24.1.46",
|
|
39
|
+
"@syncfusion/ej2-buttons": "~24.1.46",
|
|
40
|
+
"@syncfusion/ej2-compression": "~24.1.41",
|
|
41
|
+
"@syncfusion/ej2-data": "~24.1.41",
|
|
42
|
+
"@syncfusion/ej2-file-utils": "~24.1.41",
|
|
43
|
+
"@syncfusion/ej2-pdf-export": "~24.1.47",
|
|
44
|
+
"@syncfusion/ej2-svg-base": "~24.1.47"
|
|
45
45
|
},
|
|
46
46
|
"deprecated": false,
|
|
47
47
|
"description": "The Maps component is used to visualize the geographical data and represent the statistical data of a particular geographical area on earth with user interactivity, and provides various customizing options",
|
|
@@ -93,6 +93,6 @@
|
|
|
93
93
|
"url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
|
|
94
94
|
},
|
|
95
95
|
"typings": "index.d.ts",
|
|
96
|
-
"version": "
|
|
96
|
+
"version": "24.1.47",
|
|
97
97
|
"sideEffects": false
|
|
98
98
|
}
|
package/src/global.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as index from './index';
|
|
2
|
-
index.Maps.Inject(index.Bubble, index.Legend, index.Marker, index.Highlight, index.Selection, index.MapsTooltip, index.Zoom, index.DataLabel, index.NavigationLine, index.Annotations, index.Print, index.PdfExport, index.ImageExport);
|
|
2
|
+
index.Maps.Inject(index.Bubble, index.Legend, index.Marker, index.Highlight, index.Selection, index.MapsTooltip, index.Zoom, index.DataLabel, index.NavigationLine, index.Annotations, index.Print, index.PdfExport, index.ImageExport, index.Polygon);
|
|
3
3
|
export * from './index';
|
package/src/maps/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export * from './layers/layer-panel';
|
|
|
13
13
|
export * from './layers/bubble';
|
|
14
14
|
export * from './layers/bing-map';
|
|
15
15
|
export * from './layers/marker';
|
|
16
|
+
export * from './layers/polygon';
|
|
16
17
|
export * from './layers/color-mapping';
|
|
17
18
|
export * from './layers/data-label';
|
|
18
19
|
export * from './layers/navigation-selected-line';
|
package/src/maps/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export * from './layers/layer-panel';
|
|
|
9
9
|
export * from './layers/bubble';
|
|
10
10
|
export * from './layers/bing-map';
|
|
11
11
|
export * from './layers/marker';
|
|
12
|
+
export * from './layers/polygon';
|
|
12
13
|
export * from './layers/color-mapping';
|
|
13
14
|
export * from './layers/data-label';
|
|
14
15
|
export * from './layers/navigation-selected-line';
|
|
@@ -196,6 +196,12 @@ var LayerPanel = /** @class */ (function () {
|
|
|
196
196
|
&& panel.mapObject.previousZoomFactor !== panel.mapObject.zoomSettings.zoomFactor) {
|
|
197
197
|
panel.mapObject.previousZoomFactor = panel.mapObject.zoomSettings.zoomFactor;
|
|
198
198
|
}
|
|
199
|
+
if (panel.mapObject.polygonModule) {
|
|
200
|
+
var polygonElement = panel.mapObject.polygonModule.polygonRender(this.mapObject, layerIndex, panel.mapObject.tileZoomLevel);
|
|
201
|
+
if (!isNullOrUndefined(polygonElement)) {
|
|
202
|
+
panel.layerObject.appendChild(polygonElement);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
199
205
|
if (panel.mapObject.navigationLineModule) {
|
|
200
206
|
var navigationLineElement = panel.mapObject.navigationLineModule.renderNavigation(panel.currentLayer, panel.mapObject.tileZoomLevel, layerIndex);
|
|
201
207
|
if (!isNullOrUndefined(navigationLineElement)) {
|
|
@@ -664,6 +670,9 @@ var LayerPanel = /** @class */ (function () {
|
|
|
664
670
|
layerIndex, colors, renderData, labelTemplateEle) {
|
|
665
671
|
var _this = this;
|
|
666
672
|
var bubbleG;
|
|
673
|
+
if (this.mapObject.polygonModule) {
|
|
674
|
+
this.groupElements.push(this.mapObject.polygonModule.polygonRender(this.mapObject, layerIndex, (this.mapObject.isTileMap ? Math.floor(this.currentFactor) : this.currentFactor)));
|
|
675
|
+
}
|
|
667
676
|
if (this.currentLayer.bubbleSettings.length && this.mapObject.bubbleModule) {
|
|
668
677
|
var length_1 = this.currentLayer.bubbleSettings.length;
|
|
669
678
|
var bubble_1;
|
|
@@ -1019,9 +1028,11 @@ var LayerPanel = /** @class */ (function () {
|
|
|
1019
1028
|
(!(childNode.id.indexOf('_bubble_Group') > -1)) &&
|
|
1020
1029
|
(!(childNode.id.indexOf('_dataLableIndex_Group') > -1)) &&
|
|
1021
1030
|
(!(childNode.id.indexOf('_line_Group') > -1))) {
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1031
|
+
if (childNode.id.indexOf('_Polygons_Group') === -1) {
|
|
1032
|
+
var transform = 'scale( ' + this.mapObject.scale + ' ) ' + 'translate( ' + this.mapObject.translatePoint.x
|
|
1033
|
+
+ ' ' + this.mapObject.translatePoint.y + ' ) ';
|
|
1034
|
+
childNode.setAttribute('transform', transform);
|
|
1035
|
+
}
|
|
1025
1036
|
}
|
|
1026
1037
|
}
|
|
1027
1038
|
}
|
|
@@ -1797,7 +1797,7 @@ var Legend = /** @class */ (function () {
|
|
|
1797
1797
|
var legendToggleBorderWidth = this.maps.legendSettings.toggleLegendSettings.border.width;
|
|
1798
1798
|
var legendToggleBorderOpacity = isNullOrUndefined(this.maps.legendSettings.toggleLegendSettings.border.opacity) ?
|
|
1799
1799
|
this.maps.legendSettings.toggleLegendSettings.opacity : this.maps.legendSettings.toggleLegendSettings.border.opacity;
|
|
1800
|
-
if (targetEle.parentNode['id'].indexOf(this.maps.element.id + '_Legend_Index_') > -1) {
|
|
1800
|
+
if (!isNullOrUndefined(targetEle.parentNode) && targetEle.parentNode['id'].indexOf(this.maps.element.id + '_Legend_Index_') > -1) {
|
|
1801
1801
|
var mapElement = void 0;
|
|
1802
1802
|
var legendIndex = parseFloat(targetEle.parentElement.id.substr((this.maps.element.id + '_Legend_Index_').length));
|
|
1803
1803
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -35,11 +35,20 @@ var Marker = /** @class */ (function () {
|
|
|
35
35
|
'left:' + maps.mapAreaRect.x + 'px;' +
|
|
36
36
|
'height:' + maps.mapAreaRect.height + 'px;' +
|
|
37
37
|
'width:' + maps.mapAreaRect.width + 'px;';
|
|
38
|
-
currentLayer.
|
|
38
|
+
var allowAnimation = (currentLayer.animationDuration !== 0 || animationMode === 'Enable') || isNullOrUndefined(maps.zoomModule);
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
var translatePoint;
|
|
41
|
+
if (!maps.isTileMap) {
|
|
42
|
+
translatePoint = !isNullOrUndefined(maps.zoomModule) && maps.zoomSettings.zoomFactor > 1 ?
|
|
43
|
+
getZoomTranslate(maps, currentLayer, allowAnimation) :
|
|
44
|
+
getTranslate(maps, currentLayer, allowAnimation);
|
|
45
|
+
}
|
|
46
|
+
var _loop_1 = function (markerIndex) {
|
|
47
|
+
var markerSettings = currentLayer.markerSettings[markerIndex];
|
|
39
48
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
49
|
var markerData = markerSettings.dataSource;
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
var _loop_2 = function (dataIndex) {
|
|
51
|
+
var data = markerData[dataIndex];
|
|
43
52
|
maps.markerNullCount = markerIndex > 0 && dataIndex === 0 ? 0 : maps.markerNullCount;
|
|
44
53
|
var eventArgs = {
|
|
45
54
|
cancel: false, name: markerRendering, fill: markerSettings.fill, height: markerSettings.height,
|
|
@@ -62,14 +71,11 @@ var Marker = /** @class */ (function () {
|
|
|
62
71
|
var markerID = maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_'
|
|
63
72
|
+ markerIndex + '_dataIndex_' + dataIndex;
|
|
64
73
|
var location_1 = (maps.isTileMap) ? convertTileLatLongToPoint(new MapLocation(lng, lat), factor, maps.tileTranslatePoint, true) : convertGeoToPoint(lat, lng, factor, currentLayer, maps);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
getTranslate(maps, currentLayer, animate);
|
|
71
|
-
var scale = type === 'AddMarker' ? maps.scale : translate['scale'];
|
|
72
|
-
var transPoint = type === 'AddMarker' ? maps.translatePoint : translate['location'];
|
|
74
|
+
if (maps.isTileMap) {
|
|
75
|
+
translatePoint = (currentLayer.type === 'SubLayer' && isNullOrUndefined(maps.zoomModule)) ? location_1 = convertTileLatLongToPoint(new MapLocation(lng, lat), maps.tileZoomLevel, maps.tileTranslatePoint, true) : new Object();
|
|
76
|
+
}
|
|
77
|
+
var scale = type === 'AddMarker' ? maps.scale : translatePoint['scale'];
|
|
78
|
+
var transPoint = type === 'AddMarker' ? maps.translatePoint : translatePoint['location'];
|
|
73
79
|
if (eventArgs.template && (!isNaN(location_1.x) && !isNaN(location_1.y))) {
|
|
74
80
|
markerTemplateCount++;
|
|
75
81
|
markerTemplate(eventArgs, templateFn, markerID, data, markerIndex, markerTemplateEle, location_1, transPoint, scale, offset, maps);
|
|
@@ -87,6 +93,7 @@ var Marker = /** @class */ (function () {
|
|
|
87
93
|
maps.markerNullCount = (isNullOrUndefined(lng) || isNullOrUndefined(lat)) ?
|
|
88
94
|
maps.markerNullCount + 1 : maps.markerNullCount;
|
|
89
95
|
var markerDataLength = markerData.length - maps.markerNullCount;
|
|
96
|
+
var isMarkersClustered = false;
|
|
90
97
|
if (_this.markerSVGObject.childElementCount === (markerDataLength - markerTemplateCount - nullCount) && (type !== 'Template')) {
|
|
91
98
|
layerElement.appendChild(_this.markerSVGObject);
|
|
92
99
|
if (currentLayer.markerClusterSettings.allowClustering) {
|
|
@@ -94,11 +101,11 @@ var Marker = /** @class */ (function () {
|
|
|
94
101
|
maps.element.appendChild(maps.svgObject);
|
|
95
102
|
if ((currentLayer.layerType === 'OSM' || (currentLayer.urlTemplate.indexOf('openstreetmap') !== -1 && isNullOrUndefined(currentLayer.shapeData)))
|
|
96
103
|
&& maps.zoomSettings.enable) {
|
|
97
|
-
clusterTemplate(currentLayer, _this.markerSVGObject, maps, layerIndex, _this.markerSVGObject, layerElement, true, false);
|
|
104
|
+
isMarkersClustered = clusterTemplate(currentLayer, _this.markerSVGObject, maps, layerIndex, _this.markerSVGObject, layerElement, true, false);
|
|
98
105
|
layerElement.appendChild(_this.markerSVGObject);
|
|
99
106
|
}
|
|
100
107
|
else {
|
|
101
|
-
clusterTemplate(currentLayer, _this.markerSVGObject, maps, layerIndex, _this.markerSVGObject, layerElement, true, false);
|
|
108
|
+
isMarkersClustered = clusterTemplate(currentLayer, _this.markerSVGObject, maps, layerIndex, _this.markerSVGObject, layerElement, true, false);
|
|
102
109
|
}
|
|
103
110
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
104
111
|
maps.renderReactTemplates();
|
|
@@ -107,7 +114,7 @@ var Marker = /** @class */ (function () {
|
|
|
107
114
|
if (markerTemplateEle.childElementCount === (markerDataLength - markerCount - nullCount) && getElementByID(maps.element.id + '_Secondary_Element')) {
|
|
108
115
|
getElementByID(maps.element.id + '_Secondary_Element').appendChild(markerTemplateEle);
|
|
109
116
|
if (maps.checkInitialRender) {
|
|
110
|
-
if (currentLayer.markerClusterSettings.allowClustering) {
|
|
117
|
+
if (currentLayer.markerClusterSettings.allowClustering && !isMarkersClustered) {
|
|
111
118
|
clusterTemplate(currentLayer, markerTemplateEle, maps, layerIndex, _this.markerSVGObject, layerElement, false, false);
|
|
112
119
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
120
|
maps.renderReactTemplates();
|
|
@@ -115,8 +122,15 @@ var Marker = /** @class */ (function () {
|
|
|
115
122
|
}
|
|
116
123
|
}
|
|
117
124
|
});
|
|
118
|
-
}
|
|
119
|
-
|
|
125
|
+
};
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
127
|
+
for (var dataIndex = 0; dataIndex < markerData.length; dataIndex++) {
|
|
128
|
+
_loop_2(dataIndex);
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
for (var markerIndex = 0; markerIndex < currentLayer.markerSettings.length; markerIndex++) {
|
|
132
|
+
_loop_1(markerIndex);
|
|
133
|
+
}
|
|
120
134
|
};
|
|
121
135
|
/**
|
|
122
136
|
* To find zoom level for individual layers like India, USA.
|
|
@@ -181,25 +195,27 @@ var Marker = /** @class */ (function () {
|
|
|
181
195
|
!isNullOrUndefined(data['Latitude']) ? parseFloat(data['Latitude']) : null;
|
|
182
196
|
var longitude = !isNullOrUndefined(data['longitude']) ? parseFloat(data['longitude']) :
|
|
183
197
|
!isNullOrUndefined(data['Longitude']) ? parseFloat(data['Longitude']) : null;
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
minLong_1
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
minLat_1
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
maxLong_1
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
maxLat_1
|
|
198
|
+
if (!isNullOrUndefined(latitude) && !isNullOrUndefined(longitude)) {
|
|
199
|
+
minLong_1 = isNullOrUndefined(minLong_1) && dataIndex === 0 ?
|
|
200
|
+
longitude : minLong_1;
|
|
201
|
+
maxLat_1 = isNullOrUndefined(maxLat_1) && dataIndex === 0 ?
|
|
202
|
+
latitude : maxLat_1;
|
|
203
|
+
minLat_1 = isNullOrUndefined(minLat_1) && dataIndex === 0 ?
|
|
204
|
+
latitude : minLat_1;
|
|
205
|
+
maxLong_1 = isNullOrUndefined(maxLong_1) && dataIndex === 0 ?
|
|
206
|
+
longitude : maxLong_1;
|
|
207
|
+
if (minLong_1 > longitude) {
|
|
208
|
+
minLong_1 = longitude;
|
|
209
|
+
}
|
|
210
|
+
if (minLat_1 > latitude) {
|
|
211
|
+
minLat_1 = latitude;
|
|
212
|
+
}
|
|
213
|
+
if (maxLong_1 < longitude) {
|
|
214
|
+
maxLong_1 = longitude;
|
|
215
|
+
}
|
|
216
|
+
if (maxLat_1 < latitude) {
|
|
217
|
+
maxLat_1 = latitude;
|
|
218
|
+
}
|
|
203
219
|
}
|
|
204
220
|
});
|
|
205
221
|
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Maps } from '../../index';
|
|
2
|
+
/**
|
|
3
|
+
* When injected, this module will be used to render polygon shapes over the Maps.
|
|
4
|
+
*/
|
|
5
|
+
export declare class Polygon {
|
|
6
|
+
private maps;
|
|
7
|
+
constructor(maps: Maps);
|
|
8
|
+
/**
|
|
9
|
+
* To render polygon for maps
|
|
10
|
+
*
|
|
11
|
+
* @param {Maps} maps - Specifies the layer instance to which the polygon is to be rendered.
|
|
12
|
+
* @param {number} layerIndex -Specifies the index of current layer.
|
|
13
|
+
* @param {number} factor - Specifies the current zoom factor of the Maps.
|
|
14
|
+
* @returns {Element} - Returns the polygon element.
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
polygonRender(maps: Maps, layerIndex: number, factor: number): Element;
|
|
18
|
+
/**
|
|
19
|
+
* Get module name.
|
|
20
|
+
*
|
|
21
|
+
* @returns {string} - Returns the module name
|
|
22
|
+
*/
|
|
23
|
+
protected getModuleName(): string;
|
|
24
|
+
/**
|
|
25
|
+
* To destroy the layers.
|
|
26
|
+
*
|
|
27
|
+
* @returns {void}
|
|
28
|
+
* @private
|
|
29
|
+
*/
|
|
30
|
+
destroy(): void;
|
|
31
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { PathOption, calculatePolygonPath, maintainSelection } from '../utils/helper';
|
|
2
|
+
/**
|
|
3
|
+
* When injected, this module will be used to render polygon shapes over the Maps.
|
|
4
|
+
*/
|
|
5
|
+
var Polygon = /** @class */ (function () {
|
|
6
|
+
function Polygon(maps) {
|
|
7
|
+
this.maps = maps;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* To render polygon for maps
|
|
11
|
+
*
|
|
12
|
+
* @param {Maps} maps - Specifies the layer instance to which the polygon is to be rendered.
|
|
13
|
+
* @param {number} layerIndex -Specifies the index of current layer.
|
|
14
|
+
* @param {number} factor - Specifies the current zoom factor of the Maps.
|
|
15
|
+
* @returns {Element} - Returns the polygon element.
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
Polygon.prototype.polygonRender = function (maps, layerIndex, factor) {
|
|
19
|
+
var _this = this;
|
|
20
|
+
var currentLayer = maps.layersCollection[layerIndex];
|
|
21
|
+
var polygonsSVGObject = maps.renderer.createGroup({
|
|
22
|
+
id: maps.element.id + '_LayerIndex_' + layerIndex + '_Polygons_Group'
|
|
23
|
+
});
|
|
24
|
+
currentLayer.polygonSettings.polygons.map(function (polygonSetting, polygonIndex) {
|
|
25
|
+
var polygonSVGObject = maps.renderer.createGroup({
|
|
26
|
+
id: maps.element.id + '_LayerIndex_' + layerIndex + '_Polygons_Group_' + polygonIndex
|
|
27
|
+
});
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
var polygonData = polygonSetting.points;
|
|
30
|
+
var path = calculatePolygonPath(maps, factor, currentLayer, polygonData);
|
|
31
|
+
var pathOptions = new PathOption(maps.element.id + '_LayerIndex_' + layerIndex + '_PolygonIndex_' + polygonIndex, polygonSetting.fill, (polygonSetting.borderWidth / factor), polygonSetting.borderColor, polygonSetting.opacity, polygonSetting.borderOpacity, '', path);
|
|
32
|
+
var polygonEle = maps.renderer.drawPath(pathOptions);
|
|
33
|
+
maintainSelection(_this.maps.selectedPolygonElementId, _this.maps.polygonSelectionClass, polygonEle, 'PolygonselectionMapStyle');
|
|
34
|
+
polygonSVGObject.appendChild(polygonEle);
|
|
35
|
+
polygonsSVGObject.appendChild(polygonSVGObject);
|
|
36
|
+
});
|
|
37
|
+
return polygonsSVGObject;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Get module name.
|
|
41
|
+
*
|
|
42
|
+
* @returns {string} - Returns the module name
|
|
43
|
+
*/
|
|
44
|
+
Polygon.prototype.getModuleName = function () {
|
|
45
|
+
return 'Polygon';
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* To destroy the layers.
|
|
49
|
+
*
|
|
50
|
+
* @returns {void}
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
Polygon.prototype.destroy = function () {
|
|
54
|
+
this.maps = null;
|
|
55
|
+
};
|
|
56
|
+
return Polygon;
|
|
57
|
+
}());
|
|
58
|
+
export { Polygon };
|
package/src/maps/maps-model.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, NotifyPropertyChanges, INotifyPropertyChanged, Property, Fetch } from '@syncfusion/ej2-base';import { EventHandler, Browser, EmitType, isNullOrUndefined, createElement, setValue, extend } from '@syncfusion/ej2-base';import { Event, remove, L10n, Collection, Internationalization, Complex } from '@syncfusion/ej2-base';import { ModuleDeclaration } from '@syncfusion/ej2-base';import { SvgRenderer } from '@syncfusion/ej2-svg-base';import { Size, createSvg, Point, removeElement, triggerShapeEvent, showTooltip, checkShapeDataFields, MapLocation, getMousePosition, calculateSize } from './utils/helper';import { getElement, removeClass, getTranslate, triggerItemSelectionEvent, mergeSeparateCluster, customizeStyle, querySelector } from './utils/helper';import { createStyle } from './utils/helper';import { ZoomSettings, LegendSettings } from './model/base';import { LayerSettings, TitleSettings, Border, Margin, MapsAreaSettings, Annotation, CenterPosition } from './model/base';import { ZoomSettingsModel, LegendSettingsModel, LayerSettingsModel, BubbleSettingsModel } from './model/base-model';import { MarkerSettingsModel, SelectionSettingsModel, InitialMarkerSelectionSettingsModel } from './model/base-model';import { TitleSettingsModel, BorderModel, MarginModel, CenterPositionModel, InitialShapeSelectionSettingsModel } from './model/base-model';import { MapsAreaSettingsModel, AnnotationModel } from './model/base-model';import { Bubble } from './layers/bubble';import { Legend } from './layers/legend';import { Marker } from './layers/marker';import { Highlight } from './user-interaction/highlight';import { Selection } from './user-interaction/selection';import { MapsTooltip } from './user-interaction/tooltip';import { Zoom } from './user-interaction/zoom';import { load, click, onclick, rightClick, loaded, doubleClick, resize, shapeSelected,
|
|
1
|
+
import { Component, NotifyPropertyChanges, INotifyPropertyChanged, Property, Fetch } from '@syncfusion/ej2-base';import { EventHandler, Browser, EmitType, isNullOrUndefined, createElement, setValue, extend } from '@syncfusion/ej2-base';import { Event, remove, L10n, Collection, Internationalization, Complex } from '@syncfusion/ej2-base';import { ModuleDeclaration } from '@syncfusion/ej2-base';import { SvgRenderer } from '@syncfusion/ej2-svg-base';import { Size, createSvg, Point, removeElement, triggerShapeEvent, showTooltip, checkShapeDataFields, MapLocation, getMousePosition, calculateSize } from './utils/helper';import { getElement, removeClass, getTranslate, triggerItemSelectionEvent, mergeSeparateCluster, customizeStyle, querySelector } from './utils/helper';import { createStyle } from './utils/helper';import { ZoomSettings, LegendSettings } from './model/base';import { LayerSettings, TitleSettings, Border, Margin, MapsAreaSettings, Annotation, CenterPosition } from './model/base';import { ZoomSettingsModel, LegendSettingsModel, LayerSettingsModel, BubbleSettingsModel, PolygonSettingsModel } from './model/base-model';import { MarkerSettingsModel, SelectionSettingsModel, InitialMarkerSelectionSettingsModel } from './model/base-model';import { TitleSettingsModel, BorderModel, MarginModel, CenterPositionModel, InitialShapeSelectionSettingsModel } from './model/base-model';import { MapsAreaSettingsModel, AnnotationModel } from './model/base-model';import { Bubble } from './layers/bubble';import { Legend } from './layers/legend';import { Marker } from './layers/marker';import { Highlight } from './user-interaction/highlight';import { Selection } from './user-interaction/selection';import { MapsTooltip } from './user-interaction/tooltip';import { Zoom } from './user-interaction/zoom';import { load, click, onclick, rightClick, loaded, doubleClick, resize, shapeSelected, zoomIn } from './model/constants';import { ProjectionType, MapsTheme, PanDirection, TooltipGesture } from './utils/enum';import { getThemeStyle, Theme } from './model/theme';import { ILoadEventArgs, ILoadedEventArgs, IMinMaxLatitudeLongitude, IMouseEventArgs, IResizeEventArgs, ITooltipRenderEventArgs } from './model/interface';import { GeoPosition, ITooltipRenderCompleteEventArgs, ILegendRenderingEventArgs } from './model/interface';import { ILayerRenderingEventArgs, IShapeRenderingEventArgs, IMarkerRenderingEventArgs, IMarkerClickEventArgs } from './model/interface';import { IMarkerMoveEventArgs, ILabelRenderingEventArgs, IBubbleMoveEventArgs, IBubbleClickEventArgs } from './model/interface';import { IMarkerClusterClickEventArgs, IMarkerClusterMoveEventArgs, IMarkerClusterRenderingEventArgs } from './model/interface';import { ISelectionEventArgs, IShapeSelectedEventArgs, IMapPanEventArgs, IMapZoomEventArgs } from './model/interface';import { IBubbleRenderingEventArgs, IAnimationCompleteEventArgs, IPrintEventArgs, IThemeStyle } from './model/interface';import { LayerPanel } from './layers/layer-panel';import { GeoLocation, Rect, RectOption, measureText, getElementByID, MapAjax, processResult, getElementsByClassName } from '../maps/utils/helper';import { findPosition, textTrim, TextOption, renderTextElement, calculateZoomLevel, convertTileLatLongToPoint, convertGeoToPoint} from '../maps/utils/helper';import { Annotations } from '../maps/user-interaction/annotation';import { FontModel, DataLabel, MarkerSettings, IAnnotationRenderingEventArgs, IMarkerDragEventArgs } from './index';import { NavigationLineSettingsModel, changeBorderWidth } from './index';import { NavigationLine } from './layers/navigation-selected-line';import { Polygon } from './layers/polygon';import { DataManager, Query } from '@syncfusion/ej2-data';import { ExportType } from '../maps/utils/enum';import { PdfPageOrientation } from '@syncfusion/ej2-pdf-export';import { Print } from './model/print';import { PdfExport } from './model/export-pdf';import { ImageExport } from './model/export-image';
|
|
2
2
|
import {ComponentModel} from '@syncfusion/ej2-base';
|
|
3
3
|
|
|
4
4
|
/**
|
package/src/maps/maps.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ import { MapsTooltip } from './user-interaction/tooltip';
|
|
|
21
21
|
import { Zoom } from './user-interaction/zoom';
|
|
22
22
|
import { ProjectionType, MapsTheme, PanDirection, TooltipGesture } from './utils/enum';
|
|
23
23
|
import { MapsModel } from './maps-model';
|
|
24
|
-
import { ILoadEventArgs, ILoadedEventArgs, IMouseEventArgs, IResizeEventArgs, ITooltipRenderEventArgs } from './model/interface';
|
|
24
|
+
import { ILoadEventArgs, ILoadedEventArgs, IMinMaxLatitudeLongitude, IMouseEventArgs, IResizeEventArgs, ITooltipRenderEventArgs } from './model/interface';
|
|
25
25
|
import { GeoPosition, ITooltipRenderCompleteEventArgs, ILegendRenderingEventArgs } from './model/interface';
|
|
26
26
|
import { ILayerRenderingEventArgs, IShapeRenderingEventArgs, IMarkerRenderingEventArgs, IMarkerClickEventArgs } from './model/interface';
|
|
27
27
|
import { IMarkerMoveEventArgs, ILabelRenderingEventArgs, IBubbleMoveEventArgs, IBubbleClickEventArgs } from './model/interface';
|
|
@@ -33,6 +33,7 @@ import { GeoLocation, Rect } from '../maps/utils/helper';
|
|
|
33
33
|
import { Annotations } from '../maps/user-interaction/annotation';
|
|
34
34
|
import { DataLabel, IAnnotationRenderingEventArgs, IMarkerDragEventArgs } from './index';
|
|
35
35
|
import { NavigationLine } from './layers/navigation-selected-line';
|
|
36
|
+
import { Polygon } from './layers/polygon';
|
|
36
37
|
import { ExportType } from '../maps/utils/enum';
|
|
37
38
|
import { PdfPageOrientation } from '@syncfusion/ej2-pdf-export';
|
|
38
39
|
import { Print } from './model/print';
|
|
@@ -80,6 +81,12 @@ export declare class Maps extends Component<HTMLElement> implements INotifyPrope
|
|
|
80
81
|
* @private
|
|
81
82
|
*/
|
|
82
83
|
navigationLineModule: NavigationLine;
|
|
84
|
+
/**
|
|
85
|
+
* Gets or sets the module to add the polygon shapes over the maps.
|
|
86
|
+
*
|
|
87
|
+
* @private
|
|
88
|
+
*/
|
|
89
|
+
polygonModule: Polygon;
|
|
83
90
|
/**
|
|
84
91
|
* Gets or sets the module to add the legend in maps.
|
|
85
92
|
*
|
|
@@ -674,6 +681,10 @@ export declare class Maps extends Component<HTMLElement> implements INotifyPrope
|
|
|
674
681
|
/** @private */
|
|
675
682
|
selectedNavigationElementId: string[];
|
|
676
683
|
/** @private */
|
|
684
|
+
polygonSelectionClass: Element;
|
|
685
|
+
/** @private */
|
|
686
|
+
selectedPolygonElementId: string[];
|
|
687
|
+
/** @private */
|
|
677
688
|
legendSelectionClass: SelectionSettingsModel;
|
|
678
689
|
/** @private */
|
|
679
690
|
selectedLegendElementId: number[];
|
|
@@ -700,6 +711,8 @@ export declare class Maps extends Component<HTMLElement> implements INotifyPrope
|
|
|
700
711
|
/** @private */
|
|
701
712
|
previousTileWidth: number;
|
|
702
713
|
/** @private */
|
|
714
|
+
isMarkerZoomCompleted: boolean;
|
|
715
|
+
/** @private */
|
|
703
716
|
markerDragId: string;
|
|
704
717
|
/** @private */
|
|
705
718
|
previousTileHeight: number;
|
|
@@ -767,6 +780,7 @@ export declare class Maps extends Component<HTMLElement> implements INotifyPrope
|
|
|
767
780
|
*/
|
|
768
781
|
processResponseJsonData(processType: string, data?: any | string, layer?: LayerSettings, dataType?: string): void;
|
|
769
782
|
private renderMap;
|
|
783
|
+
private triggerZoomEvent;
|
|
770
784
|
/**
|
|
771
785
|
* To apply color to the initial selected marker
|
|
772
786
|
*
|
|
@@ -805,6 +819,10 @@ export declare class Maps extends Component<HTMLElement> implements INotifyPrope
|
|
|
805
819
|
private setSecondaryElementPosition;
|
|
806
820
|
private zoomingChange;
|
|
807
821
|
private createSecondaryElement;
|
|
822
|
+
/**
|
|
823
|
+
* @returns {void}
|
|
824
|
+
*/
|
|
825
|
+
getMinMaxLatitudeLongitude(): IMinMaxLatitudeLongitude;
|
|
808
826
|
/**
|
|
809
827
|
* @returns {void}
|
|
810
828
|
* @private
|
|
@@ -1083,6 +1101,12 @@ export declare class Maps extends Component<HTMLElement> implements INotifyPrope
|
|
|
1083
1101
|
* @returns {boolean} - Returns whether the navigation lines are visible or not.
|
|
1084
1102
|
*/
|
|
1085
1103
|
private isNavigationVisible;
|
|
1104
|
+
/**
|
|
1105
|
+
* To find navigation line visibility
|
|
1106
|
+
*
|
|
1107
|
+
* @returns {boolean} - Returns whether the navigation lines are visible or not.
|
|
1108
|
+
*/
|
|
1109
|
+
private isPolygonVisible;
|
|
1086
1110
|
/**
|
|
1087
1111
|
* To find marker visibility
|
|
1088
1112
|
*/
|