@supermapgis/iclient-ol 11.1.2

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.
Files changed (91) hide show
  1. package/README.md +56 -0
  2. package/control/ChangeTileVersion.js +438 -0
  3. package/control/Logo.js +99 -0
  4. package/control/ScaleLine.js +164 -0
  5. package/control/index.js +6 -0
  6. package/core/MapExtend.js +49 -0
  7. package/core/StyleUtils.js +1253 -0
  8. package/core/Util.js +478 -0
  9. package/core/index.js +6 -0
  10. package/css/ChangeTileVersion.css +347 -0
  11. package/css/index.js +5 -0
  12. package/dist/iclient-openlayers-es6.js +121806 -0
  13. package/dist/iclient-openlayers-es6.min.js +8 -0
  14. package/dist/iclient-openlayers.css +668 -0
  15. package/dist/iclient-openlayers.js +132335 -0
  16. package/dist/iclient-openlayers.min.css +8 -0
  17. package/dist/iclient-openlayers.min.js +8 -0
  18. package/index.js +9 -0
  19. package/mapping/BaiduMap.js +121 -0
  20. package/mapping/ImageSuperMapRest.js +252 -0
  21. package/mapping/ImageTileSuperMapRest.js +99 -0
  22. package/mapping/InitMap.js +125 -0
  23. package/mapping/SuperMapCloud.js +56 -0
  24. package/mapping/Tianditu.js +152 -0
  25. package/mapping/TileSuperMapRest.js +358 -0
  26. package/mapping/WebMap.js +5185 -0
  27. package/mapping/index.js +11 -0
  28. package/mapping/webmap/Util.js +176 -0
  29. package/mapping/webmap/config/MunicipalCenter.json +1 -0
  30. package/mapping/webmap/config/ProvinceCenter.json +1 -0
  31. package/mapping/webmap/config/SampleDataInfo.json +55 -0
  32. package/namespace.js +150 -0
  33. package/overlay/DataFlow.js +114 -0
  34. package/overlay/FGB.js +97 -0
  35. package/overlay/Graph.js +436 -0
  36. package/overlay/GraphMap.js +91 -0
  37. package/overlay/Graphic.js +587 -0
  38. package/overlay/HeatMap.js +444 -0
  39. package/overlay/Label.js +964 -0
  40. package/overlay/Mapv.js +146 -0
  41. package/overlay/Range.js +127 -0
  42. package/overlay/RankSymbol.js +94 -0
  43. package/overlay/Turf.js +298 -0
  44. package/overlay/Unique.js +123 -0
  45. package/overlay/VectorTileSuperMapRest.js +466 -0
  46. package/overlay/graphic/CanvasRenderer.js +177 -0
  47. package/overlay/graphic/CloverShape.js +133 -0
  48. package/overlay/graphic/Graphic.js +174 -0
  49. package/overlay/graphic/HitCloverShape.js +63 -0
  50. package/overlay/graphic/WebGLRenderer.js +356 -0
  51. package/overlay/graphic/index.js +9 -0
  52. package/overlay/index.js +21 -0
  53. package/overlay/mapv/MapvCanvasLayer.js +104 -0
  54. package/overlay/mapv/MapvLayer.js +410 -0
  55. package/overlay/mapv/index.js +5 -0
  56. package/overlay/theme/GeoFeature.js +275 -0
  57. package/overlay/theme/Theme.js +585 -0
  58. package/overlay/theme/ThemeFeature.js +46 -0
  59. package/overlay/theme/index.js +6 -0
  60. package/overlay/vectortile/DeafultCanvasStyle.js +125 -0
  61. package/overlay/vectortile/MapboxStyles.js +375 -0
  62. package/overlay/vectortile/StyleMap.js +252 -0
  63. package/overlay/vectortile/VectorTileStyles.js +554 -0
  64. package/overlay/vectortile/index.js +7 -0
  65. package/overlay/vectortile/olExtends.js +382 -0
  66. package/package.json +29 -0
  67. package/services/AddressMatchService.js +60 -0
  68. package/services/ChartService.js +74 -0
  69. package/services/DataFlowService.js +118 -0
  70. package/services/DatasetService.js +104 -0
  71. package/services/DatasourceService.js +76 -0
  72. package/services/FeatureService.js +196 -0
  73. package/services/FieldService.js +53 -0
  74. package/services/GeoprocessingService.js +156 -0
  75. package/services/GridCellInfosService.js +53 -0
  76. package/services/ImageCollectionService.js +92 -0
  77. package/services/ImageService.js +69 -0
  78. package/services/KnowledgeGraphService.js +82 -0
  79. package/services/LayerInfoService.js +85 -0
  80. package/services/MapService.js +85 -0
  81. package/services/MeasureService.js +77 -0
  82. package/services/NetworkAnalyst3DService.js +88 -0
  83. package/services/NetworkAnalystService.js +252 -0
  84. package/services/ProcessingService.js +478 -0
  85. package/services/QueryService.js +116 -0
  86. package/services/ServiceBase.js +26 -0
  87. package/services/SpatialAnalystService.js +432 -0
  88. package/services/ThemeService.js +50 -0
  89. package/services/TrafficTransferAnalystService.js +88 -0
  90. package/services/WebPrintingJobService.js +112 -0
  91. package/services/index.js +27 -0
@@ -0,0 +1,432 @@
1
+ /* Copyright© 2000 - 2024 SuperMap Software Co.Ltd. All rights reserved.
2
+ * This program are made available under the terms of the Apache License, Version 2.0
3
+ * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/
4
+ import {Util} from '../core/Util';
5
+ import { DataFormat } from '@supermapgis/iclient-common/REST';
6
+ import { Point as GeometryPoint } from '@supermapgis/iclient-common/commontypes/geometry/Point';
7
+ import { SpatialAnalystService as CommonSpatialAnalystService } from '@supermapgis/iclient-common/iServer/SpatialAnalystService';
8
+ import {ServiceBase} from './ServiceBase';
9
+ import LineString from 'ol/geom/LineString';
10
+ import GeoJSON from 'ol/format/GeoJSON';
11
+
12
+ /**
13
+ * @class SpatialAnalystService
14
+ * @extends {ServiceBase}
15
+ * @category iServer SpatialAnalyst
16
+ * @classdesc 空间分析服务类。提供:地区太阳辐射、缓冲区分析、点密度分析、动态分段分析、空间关系分析、插值分析、栅格代数运算、叠加分析、路由定位、路由测量计算、表面分析、地形曲率计算、泰森多边形分析。
17
+ * @modulecategory Services
18
+ * @example
19
+ * new SpatialAnalystService(url).bufferAnalysis(params,function(result){
20
+ * //doSomething
21
+ * })
22
+ * @param {string} url - 服务地址。
23
+ * @param {Object} options - 参数。
24
+ * @param {string} [options.proxy] - 服务代理地址。
25
+ * @param {boolean} [options.withCredentials=false] - 请求是否携带 cookie。
26
+ * @param {boolean} [options.crossOrigin] - 是否允许跨域请求。
27
+ * @param {Object} [options.headers] - 请求头。
28
+ * @usage
29
+ */
30
+ export class SpatialAnalystService extends ServiceBase {
31
+
32
+ constructor(url, options) {
33
+ super(url, options);
34
+ this._spatialAnalystService = new CommonSpatialAnalystService(url, options);
35
+ }
36
+
37
+ /**
38
+ * @function SpatialAnalystService.prototype.getAreaSolarRadiationResult
39
+ * @description 地区太阳辐射。
40
+ * @param {AreaSolarRadiationParameters} params - 地区太阳辐射参数类。
41
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
42
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
43
+ * @returns {Promise} Promise 对象。
44
+ */
45
+ getAreaSolarRadiationResult(params, callback, resultFormat) {
46
+ return this._spatialAnalystService.getAreaSolarRadiationResult(params, callback, resultFormat);
47
+ }
48
+
49
+ /**
50
+ * @function SpatialAnalystService.prototype.bufferAnalysis
51
+ * @description 缓冲区分析。
52
+ * @param {DatasetBufferAnalystParameters} params - 数据集缓冲区分析参数类。
53
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
54
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
55
+ * @returns {Promise} Promise 对象。
56
+ */
57
+ bufferAnalysis(params, callback, resultFormat) {
58
+ params = this._processParams(params);
59
+ return this._spatialAnalystService.bufferAnalysis(params, callback, resultFormat);
60
+ }
61
+
62
+ /**
63
+ * @function SpatialAnalystService.prototype.densityAnalysis
64
+ * @description 点密度分析。
65
+ * @param {DensityKernelAnalystParameters} params - 核密度分析参数类。
66
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
67
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
68
+ * @returns {Promise} Promise 对象。
69
+ */
70
+ densityAnalysis(params, callback, resultFormat) {
71
+ params = this._processParams(params);
72
+ return this._spatialAnalystService.densityAnalysis(params, callback, resultFormat);
73
+ }
74
+
75
+ /**
76
+ * @function SpatialAnalystService.prototype.generateSpatialData
77
+ * @description 动态分段分析。
78
+ * @param {GenerateSpatialDataParameters} params - 动态分段操作参数类。
79
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
80
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
81
+ * @returns {Promise} Promise 对象。
82
+ */
83
+ generateSpatialData(params, callback, resultFormat) {
84
+ return this._spatialAnalystService.generateSpatialData(params, callback, resultFormat);
85
+ }
86
+
87
+ /**
88
+ * @function SpatialAnalystService.prototype.geoRelationAnalysis
89
+ * @description 空间关系分析。
90
+ * @param {GeoRelationAnalystParameters} params - 空间关系分析服务参数类。
91
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
92
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
93
+ * @returns {Promise} Promise 对象。
94
+ */
95
+ geoRelationAnalysis(params, callback, resultFormat) {
96
+ params = this._processParams(params);
97
+ return this._spatialAnalystService.geoRelationAnalysis(params, callback, resultFormat);
98
+ }
99
+
100
+ /**
101
+ * @function SpatialAnalystService.prototype.interpolationAnalysis
102
+ * @description 插值分析。
103
+ * @param {InterpolationRBFAnalystParameters|InterpolationDensityAnalystParameters|InterpolationIDWAnalystParameters|InterpolationKrigingAnalystParameters} params - 样条插值分析参数类。
104
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
105
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
106
+ * @returns {Promise} Promise 对象。
107
+ */
108
+ interpolationAnalysis(params, callback, resultFormat) {
109
+ params = this._processParams(params);
110
+ return this._spatialAnalystService.interpolationAnalysis(params, callback, resultFormat);
111
+ }
112
+ /**
113
+ * @function SpatialAnalystService.prototype.mathExpressionAnalysis
114
+ * @description 栅格代数运算。
115
+ * @param {MathExpressionAnalysisParameters} params - 栅格代数运算参数类。
116
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
117
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
118
+ * @returns {Promise} Promise 对象。
119
+ */
120
+ mathExpressionAnalysis(params, callback, resultFormat) {
121
+ params = this._processParams(params);
122
+ return this._spatialAnalystService.mathExpressionAnalysis(params, callback, resultFormat);
123
+ }
124
+
125
+ /**
126
+ * @function SpatialAnalystService.prototype.overlayAnalysis
127
+ * @description 叠加分析。
128
+ * @param {DatasetOverlayAnalystParameters|GeometryOverlayAnalystParameters} params - 数据集叠加分析参数类或几何对象叠加分析参数类。
129
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
130
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
131
+ * @returns {Promise} Promise 对象。
132
+ */
133
+ overlayAnalysis(params, callback, resultFormat) {
134
+ params = this._processParams(params);
135
+ return this._spatialAnalystService.overlayAnalysis(params, callback, resultFormat);
136
+ }
137
+
138
+ /**
139
+ * @function SpatialAnalystService.prototype.routeCalculateMeasure
140
+ * @description 路由测量计算。
141
+ * @param {RouteCalculateMeasureParameters} params - 基于路由对象计算指定点 M 值操作的参数类。
142
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
143
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
144
+ * @returns {Promise} Promise 对象。
145
+ */
146
+ routeCalculateMeasure(params, callback, resultFormat) {
147
+ params = this._processParams(params);
148
+ return this._spatialAnalystService.routeCalculateMeasure(params, callback, resultFormat);
149
+ }
150
+
151
+ /**
152
+ * @function SpatialAnalystService.prototype.routeLocate
153
+ * @description 路由定位。
154
+ * @param {RouteLocatorParameters} params - 路由对象定位空间对象的参数类。
155
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
156
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
157
+ * @returns {Promise} Promise 对象。
158
+ */
159
+ routeLocate(params, callback, resultFormat) {
160
+ params = this._processParams(params);
161
+ return this._spatialAnalystService.routeLocate(params, callback, resultFormat);
162
+ }
163
+
164
+ /**
165
+ * @function SpatialAnalystService.prototype.surfaceAnalysis
166
+ * @description 表面分析。
167
+ * @param {SurfaceAnalystParameters} params - 表面分析提取操作参数类。
168
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
169
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
170
+ * @returns {Promise} Promise 对象。
171
+ */
172
+ surfaceAnalysis(params, callback, resultFormat) {
173
+ params = this._processParams(params);
174
+ return this._spatialAnalystService.surfaceAnalysis(params, callback, resultFormat);
175
+ }
176
+
177
+ /**
178
+ * @function SpatialAnalystService.prototype.terrainCurvatureCalculate
179
+ * @description 地形曲率计算。
180
+ * @param {TerrainCurvatureCalculationParameters} params - 地形曲率计算参数类。
181
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
182
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
183
+ * @returns {Promise} Promise 对象。
184
+ */
185
+ terrainCurvatureCalculate(params, callback, resultFormat) {
186
+ return this._spatialAnalystService.terrainCurvatureCalculate(params, callback, resultFormat);
187
+ }
188
+
189
+ /**
190
+ * @function SpatialAnalystService.prototype.terrainCutFillCalculate
191
+ * @description 填挖方计算。
192
+ * @version 11.1.1
193
+ * @param {TerrainCutFillCalculationParameters} params - 填挖方计算参数类。
194
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
195
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
196
+ * @returns {Promise} Promise 对象。
197
+ */
198
+ terrainCutFillCalculate(params, callback, resultFormat) {
199
+ params = this._processParams(params);
200
+ return this._spatialAnalystService.terrainCutFillCalculate(params, callback, resultFormat);
201
+ }
202
+
203
+ /**
204
+ * @function SpatialAnalystService.prototype.terrainAspectCalculate
205
+ * @description 地形坡向分析。
206
+ * @version 11.1.1
207
+ * @param {TerrainAspectCalculationParameters} params - 地形坡向分析参数类。
208
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
209
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
210
+ * @returns {Promise} Promise 对象。
211
+ */
212
+ terrainAspectCalculate(params, callback, resultFormat) {
213
+ params = this._processParams(params);
214
+ return this._spatialAnalystService.terrainAspectCalculate(params, callback, resultFormat);
215
+ }
216
+
217
+ /**
218
+ * @function SpatialAnalystService.prototype.terrainSlopeCalculate
219
+ * @description 地形坡度分析。
220
+ * @version 11.1.1
221
+ * @param {TerrainSlopeCalculationParameters} params - 地形坡度分析参数类。
222
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
223
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
224
+ */
225
+ terrainSlopeCalculate(params, callback, resultFormat) {
226
+ params = this._processParams(params);
227
+ return this._spatialAnalystService.terrainSlopeCalculate(params, callback, resultFormat);
228
+ }
229
+
230
+ /**
231
+ * @function SpatialAnalystService.prototype.thiessenAnalysis
232
+ * @description 泰森多边形分析。
233
+ * @param {DatasetThiessenAnalystParameters|GeometryThiessenAnalystParameters} params - 数据集泰森多边形分析参数类。
234
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
235
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
236
+ * @returns {Promise} Promise 对象。
237
+ */
238
+ thiessenAnalysis(params, callback, resultFormat) {
239
+ params = this._processParams(params);
240
+ return this._spatialAnalystService.thiessenAnalysis(params, callback, resultFormat);
241
+ }
242
+
243
+ /**
244
+ * @function SpatialAnalystService.prototype.minDistanceAnalysis
245
+ * @description 最近距离计算。
246
+ * @version 11.1.1
247
+ * @param {DatasetMinDistanceAnalystParameters|GeometryMinDistanceAnalystParameters} params - 最近距离计算参数类。
248
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
249
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
250
+ * @returns {Promise} Promise 对象。
251
+ */
252
+ minDistanceAnalysis(params, callback, resultFormat) {
253
+ params = this._processParams(params);
254
+ return this._spatialAnalystService.minDistanceAnalysis(params, callback, resultFormat);
255
+ }
256
+
257
+ /**
258
+ * @function SpatialAnalystService.prototype.convexHullAnalysis
259
+ * @description 凸包计算。
260
+ * @version 11.1.1
261
+ * @param {ConvexHullAnalystParameters} params - 凸包计算参数类。
262
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
263
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
264
+ * @returns {Promise} Promise 对象。
265
+ */
266
+ convexHullAnalysis(params, callback, resultFormat) {
267
+ params = this._processParams(params);
268
+ return this._spatialAnalystService.convexHullAnalysis(params, callback, resultFormat);
269
+ }
270
+
271
+ /**
272
+ * @function SpatialAnalystService.prototype.geometrybatchAnalysis
273
+ * @description 批量空间分析。
274
+ * @param {Array.<Object>} params - 批量分析参数对象数组。
275
+ * @param {Array.<Object>} params.analystName - 空间分析方法的名称。包括:</br>
276
+ * "buffer","overlay","interpolationDensity","interpolationidw","interpolationRBF","interpolationKriging","isoregion","isoline"。
277
+ * @param {Object} params.param - 空间分析类型对应的请求参数,包括:</br>
278
+ * {@link GeometryBufferAnalystParameters} 缓冲区分析参数类。</br>
279
+ * {@link GeometryOverlayAnalystParameters} 叠加分析参数类。</br>
280
+ * {@link InterpolationAnalystParameters} 插值分析参数类。</br>
281
+ * {@link SurfaceAnalystParameters} 表面分析参数类。</br>
282
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
283
+ * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。
284
+ * @returns {Promise} Promise 对象。
285
+ */
286
+ geometrybatchAnalysis(params, callback, resultFormat) {
287
+ for (var i = 0; i < params.length; i++) {
288
+ params[i].param = this._processParams(params[i].param)
289
+ }
290
+ return this._spatialAnalystService.geometrybatchAnalysis(params, callback, resultFormat);
291
+ }
292
+
293
+ _processParams(params) {
294
+ if (!params) {
295
+ return {};
296
+ }
297
+ if (params.bounds) {
298
+ params.bounds = Util.toSuperMapBounds(params.bounds);
299
+ }
300
+ if (params.inputPoints) {
301
+ for (let i = 0; i < params.inputPoints.length; i++) {
302
+ var inputPoint = params.inputPoints[i];
303
+ if (Util.isArray(inputPoint)) {
304
+ params.inputPoints[i] = {x: inputPoint[0], y: inputPoint[1], tag: inputPoint[2]};
305
+ } else {
306
+ params.inputPoints[i] = {
307
+ x: inputPoint.getCoordinates()[0],
308
+ y: inputPoint.getCoordinates()[1],
309
+ tag: inputPoint.tag
310
+ };
311
+ }
312
+
313
+ }
314
+ }
315
+ if (params.points) {
316
+ for (let i = 0; i < params.points.length; i++) {
317
+ let point = params.points[i];
318
+ if (Util.isArray(point)) {
319
+ point.setCoordinates(point);
320
+ }
321
+ params.points[i] = new GeometryPoint(point.getCoordinates()[0], point.getCoordinates()[1]);
322
+ }
323
+ }
324
+ if (params.point) {
325
+ let point = params.point;
326
+ if (Util.isArray(point)) {
327
+ point.setCoordinates(point);
328
+ }
329
+ params.point = new GeometryPoint(point.getCoordinates()[0], point.getCoordinates()[1]);
330
+ }
331
+ if (params.extractRegion) {
332
+ params.extractRegion = this.convertGeometry(params.extractRegion);
333
+ }
334
+ if (params.extractParameter && params.extractParameter.clipRegion) {
335
+ params.extractParameter.clipRegion = this.convertGeometry(params.extractParameter.clipRegion);
336
+ }
337
+ if (params.clipParam && params.clipParam.clipRegion) {
338
+ params.clipParam.clipRegion = this.convertGeometry(params.clipParam.clipRegion);
339
+ }
340
+ if (params.clipRegion) {
341
+ params.clipRegion = this.convertGeometry(params.clipRegion);
342
+ }
343
+ //支持格式:Vector Layers; GeoJson
344
+ if (params.sourceGeometry) {
345
+ var SRID = null;
346
+ if (params.sourceGeometrySRID) {
347
+ SRID = params.sourceGeometrySRID;
348
+ }
349
+ params.sourceGeometry = this.convertGeometry(params.sourceGeometry);
350
+ if (SRID) {
351
+ params.sourceGeometry.SRID = SRID;
352
+ }
353
+ delete params.sourceGeometry.sourceGeometrySRID;
354
+ }
355
+ if (params.operateGeometry) {
356
+ params.operateGeometry = this.convertGeometry(params.operateGeometry);
357
+ }
358
+ //支持传入多个几何要素进行叠加分析:
359
+ if (params.sourceGeometries) {
360
+ var sourceGeometries = [];
361
+ for (var k = 0; k < params.sourceGeometries.length; k++) {
362
+ sourceGeometries.push(this.convertGeometry(params.sourceGeometries[k]));
363
+ }
364
+ params.sourceGeometries = sourceGeometries;
365
+ }
366
+ //支持传入多个几何要素进行叠加分析:
367
+ if (params.operateGeometries) {
368
+ var operateGeometries = [];
369
+ for (var j = 0; j < params.operateGeometries.length; j++) {
370
+ operateGeometries.push(this.convertGeometry(params.operateGeometries[j]));
371
+ }
372
+ params.operateGeometries = operateGeometries;
373
+ }
374
+
375
+ // 最近距离
376
+ if (params.inputGeometries) {
377
+ var inputGeometries = [];
378
+ for (var l = 0; l < params.inputGeometries.length; l++) {
379
+ inputGeometries.push(this.convertGeometry(params.inputGeometries[l]));
380
+ }
381
+ params.inputGeometries = inputGeometries;
382
+ }
383
+
384
+ if (params.sourceRoute) {
385
+ if (params.sourceRoute instanceof LineString && params.sourceRoute.getCoordinates()) {
386
+ var target = {};
387
+ target.type = "LINEM";
388
+ target.parts = [params.sourceRoute.getCoordinates()[0].length];
389
+ target.points = [];
390
+ for (let i = 0; i < params.sourceRoute.getCoordinates()[0].length; i++) {
391
+ let point = params.sourceRoute.getCoordinates()[0][i];
392
+ target.points = target.points.concat({x: point[0], y: point[1], measure: point[2]})
393
+ }
394
+ params.sourceRoute = target;
395
+ }
396
+
397
+ }
398
+ var me = this;
399
+ if (params.operateRegions && Util.isArray(params.operateRegions)) {
400
+ params.operateRegions.map(function (geometry, key) {
401
+ params.operateRegions[key] = me.convertGeometry(geometry);
402
+ return params.operateRegions[key];
403
+ });
404
+ }
405
+ if (params.sourceRoute && params.sourceRoute.components && Util.isArray(params.sourceRoute.components)) {
406
+ params.sourceRoute.components.map(function (geometry, key) {
407
+ params.sourceRoute.components[key] = me.convertGeometry(geometry);
408
+ return params.sourceRoute.components[key];
409
+ });
410
+ }
411
+ return params;
412
+ }
413
+
414
+ _processFormat(resultFormat) {
415
+ return (resultFormat) ? resultFormat : DataFormat.GEOJSON;
416
+ }
417
+
418
+ /**
419
+ * @private
420
+ * @function SpatialAnalystService.prototype.convertGeometry
421
+ * @description 转换几何对象。
422
+ * @param {Object} ol3Geometry - 待转换的几何对象。
423
+ */
424
+
425
+ convertGeometry(ol3Geometry) {
426
+ //判断是否传入的是geojson 并作相应处理
427
+ if(["FeatureCollection", "Feature", "Geometry"].indexOf(ol3Geometry.type) != -1){
428
+ return Util.toSuperMapGeometry(ol3Geometry);
429
+ }
430
+ return Util.toSuperMapGeometry(JSON.parse((new GeoJSON()).writeGeometry(ol3Geometry)));
431
+ }
432
+ }
@@ -0,0 +1,50 @@
1
+ /* Copyright© 2000 - 2024 SuperMap Software Co.Ltd. All rights reserved.
2
+ * This program are made available under the terms of the Apache License, Version 2.0
3
+ * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/
4
+ import {ServiceBase} from './ServiceBase';
5
+ import { ThemeService as CommonThemeService } from '@supermapgis/iclient-common/iServer/ThemeService';
6
+
7
+ /**
8
+ * @class ThemeService
9
+ * @category iServer Map Theme
10
+ * @classdesc 专题图服务类。
11
+ * @modulecategory Services
12
+ * @extends {ServiceBase}
13
+ * @example
14
+ * new ThemeService(url,{
15
+ * projection:projection
16
+ * }).getThemeInfo(params,function(result){
17
+ * //doSomething
18
+ * });
19
+ * @param {string} url - 服务地址。
20
+ * @param {Object} options - 参数。
21
+ * @param {string} [options.proxy] - 服务代理地址。
22
+ * @param {boolean} [options.withCredentials=false] - 请求是否携带 cookie。
23
+ * @param {boolean} [options.crossOrigin] - 是否允许跨域请求。
24
+ * @param {Object} [options.headers] - 请求头。
25
+ * @usage
26
+ */
27
+ export class ThemeService extends ServiceBase {
28
+
29
+ constructor(url, options) {
30
+ super(url, options);
31
+ var me = this;
32
+ this._themeService = new CommonThemeService(me.url, {
33
+ proxy: me.options.proxy,
34
+ withCredentials: me.options.withCredentials,
35
+ crossOrigin: me.options.crossOrigin,
36
+ headers: me.options.headers
37
+ });
38
+ }
39
+
40
+ /**
41
+ * @function ThemeService.prototype.getThemeInfo
42
+ * @description 获取专题图信息。
43
+ * @param {ThemeParameters} params - 专题图参数类。
44
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
45
+ * @returns {Promise} Promise 对象。
46
+ */
47
+ getThemeInfo(params, callback) {
48
+ return this._themeService.processAsync(params, callback);
49
+ }
50
+ }
@@ -0,0 +1,88 @@
1
+ /* Copyright© 2000 - 2024 SuperMap Software Co.Ltd. All rights reserved.
2
+ * This program are made available under the terms of the Apache License, Version 2.0
3
+ * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/
4
+ import {Util} from '../core/Util';
5
+ import {ServiceBase} from './ServiceBase';
6
+ import { TrafficTransferAnalystService as CommonTrafficTransferAnalystService } from '@supermapgis/iclient-common/iServer/TrafficTransferAnalystService';
7
+ import Point from 'ol/geom/Point';
8
+
9
+ /**
10
+ * @class TrafficTransferAnalystService
11
+ * @extends {ServiceBase}
12
+ * @category iServer TrafficTransferAnalyst
13
+ * @classdesc 交通换乘分析服务类。
14
+ * @modulecategory Services
15
+ * @example
16
+ * new TrafficTransferAnalystService(url).queryStop(params,function(result){
17
+ * //doSomething
18
+ * })
19
+ * @param {string} url - 服务地址。
20
+ * @param {Object} options - 参数。
21
+ * @param {string} [options.proxy] - 服务代理地址。
22
+ * @param {boolean} [options.withCredentials=false] - 请求是否携带 cookie。
23
+ * @param {boolean} [options.crossOrigin] - 是否允许跨域请求。
24
+ * @param {Object} [options.headers] - 请求头。
25
+ * @usage
26
+ */
27
+ export class TrafficTransferAnalystService extends ServiceBase {
28
+
29
+ constructor(url, options) {
30
+ super(url, options);
31
+ this._commonTrafficTransferAnalystService = new CommonTrafficTransferAnalystService(url, options);
32
+ }
33
+
34
+ /**
35
+ * @function TrafficTransferAnalystService.prototype.queryStop
36
+ * @description 站点查询服务。
37
+ * @param {StopQueryParameters} params - 查询相关参数类。
38
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
39
+ * @returns {Promise} Promise 对象。
40
+ */
41
+ queryStop(params, callback) {
42
+ return this._commonTrafficTransferAnalystService.queryStop(params, callback);
43
+ }
44
+
45
+ /**
46
+ * @function TrafficTransferAnalystService.prototype.analysisTransferPath
47
+ * @description 交通换乘线路查询服务。
48
+ * @param {TransferPathParameters} params - 查询相关参数类。
49
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
50
+ * @returns {Promise} Promise 对象。
51
+ */
52
+ analysisTransferPath(params, callback) {
53
+ params = this._processParams(params);
54
+ return this._commonTrafficTransferAnalystService.analysisTransferPath(params, callback);
55
+ }
56
+
57
+ /**
58
+ * @function TrafficTransferAnalystService.prototype.analysisTransferSolution
59
+ * @description 交通换乘方案查询服务。
60
+ * @param {TransferSolutionParameters} params - 查询相关参数类。
61
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
62
+ * @returns {Promise} Promise 对象。
63
+ */
64
+ analysisTransferSolution(params, callback) {
65
+ params = this._processParams(params);
66
+ return this._commonTrafficTransferAnalystService.analysisTransferSolution(params, callback);
67
+ }
68
+
69
+ _processParams(params) {
70
+ if (!params) {
71
+ return {};
72
+ }
73
+ if (params.transferLines && !Util.isArray(params.transferLines)) {
74
+ params.transferLines = [params.transferLines];
75
+ }
76
+ if (params.points && Util.isArray(params.points)) {
77
+ params.points.map(function (point, key) {
78
+ params.points[key] = (point instanceof Point) ? {
79
+ x: point.getCoordinates()[0],
80
+ y: point.getCoordinates()[1]
81
+ } : point;
82
+ return params.points[key];
83
+ });
84
+ }
85
+ return params;
86
+ }
87
+
88
+ }
@@ -0,0 +1,112 @@
1
+ /* Copyright© 2000 - 2024 SuperMap Software Co.Ltd. All rights reserved.
2
+ * This program are made available under the terms of the Apache License, Version 2.0
3
+ * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/
4
+ import { ServiceBase } from './ServiceBase';
5
+ import { WebPrintingService } from '@supermapgis/iclient-common/iServer/WebPrintingService';
6
+ import { Point as GeometryPoint } from '@supermapgis/iclient-common/commontypes/geometry/Point';
7
+ import Point from 'ol/geom/Point';
8
+
9
+ /**
10
+ * @class WebPrintingJobService
11
+ * @category iServer WebPrintingJob
12
+ * @version 10.1.0
13
+ * @classdesc Web 打印服务类。
14
+ * 提供:创建 Web 打印任务,获取 Web 打印任务内容,获取 Web 打印输出文档流,获取 Web 打印服务的布局模板信息。
15
+ * @modulecategory Services
16
+ * @extends {ServiceBase}
17
+ * @param {string} url - 服务地址。请求打印地图服务的 URL 应为:http://{服务器地址}:{服务端口号}/iserver/services/webprinting/rest/webprinting/v1。
18
+ * @param {Object} options - 服务交互时所需的可选参数。
19
+ * @param {string} [options.proxy] - 服务代理地址。
20
+ * @param {boolean} [options.withCredentials=false] - 请求是否携带 cookie。
21
+ * @param {boolean} [options.crossOrigin] - 是否允许跨域请求。
22
+ * @param {Object} [options.headers] - 请求头。
23
+ * @example
24
+ * new WebPrintingJobService(url).createWebPrintingJob(param,function(result){
25
+ * //doSomething
26
+ * })
27
+ * @usage
28
+ */
29
+ export class WebPrintingJobService extends ServiceBase {
30
+ constructor(url, options) {
31
+ super(url, options);
32
+ this._webPrintingService = new WebPrintingService(this.url, {
33
+ proxy: this.options.proxy,
34
+ withCredentials:this.options.withCredentials,
35
+ crossOrigin: this.options.crossOrigin,
36
+ headers: this.options.headers
37
+ });
38
+ }
39
+
40
+ /**
41
+ * @function WebPrintingJobService.prototype.createWebPrintingJob
42
+ * @description 创建 Web 打印任务。
43
+ * @param {WebPrintingJobParameters} params - Web 打印参数类。
44
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
45
+ * @returns {Promise} Promise 对象。
46
+ */
47
+ createWebPrintingJob(params, callback) {
48
+ if (!params) {
49
+ return;
50
+ }
51
+ return this._webPrintingService.createWebPrintingJob(this._processParams(params), callback);
52
+ }
53
+
54
+ /**
55
+ * @function WebPrintingJobService.prototype.getPrintingJob
56
+ * @description 获取 Web 打印输出文档任务。
57
+ * @param {string} jobId - Web 打印输入文档任务 ID。
58
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
59
+ * @returns {Promise} Promise 对象。
60
+ */
61
+ getPrintingJob(jobId, callback) {
62
+ return this._webPrintingService.getPrintingJob(jobId, callback);
63
+ }
64
+
65
+ /**
66
+ * @function WebPrintingJobService.prototype.getPrintingJobResult
67
+ * @description 获取 Web 打印任务的输出文档。
68
+ * @param {string} jobId - Web 打印输入文档任务 ID。
69
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
70
+ * @returns {Promise} Promise 对象。
71
+ */
72
+ getPrintingJobResult(jobId, callback) {
73
+ return this._webPrintingService.getPrintingJobResult(jobId, callback);
74
+ }
75
+
76
+ /**
77
+ * @function WebPrintingJobService.prototype.getLayoutTemplates
78
+ * @description 查询 Web 打印服务所有可用的模板信息。
79
+ * @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的promise 获取结果。
80
+ * @returns {Promise} Promise 对象。
81
+ */
82
+ getLayoutTemplates(callback) {
83
+ return this._webPrintingService.getLayoutTemplates(callback);
84
+ }
85
+
86
+ _processParams(params) {
87
+ if (params.layoutOptions && params.layoutOptions.littleMapOptions) {
88
+ params.layoutOptions.littleMapOptions.center = this._toPointObject(
89
+ params.layoutOptions.littleMapOptions.center
90
+ );
91
+ }
92
+ if (params.exportOptions) {
93
+ params.exportOptions.center = this._toPointObject(params.exportOptions.center);
94
+ }
95
+ return params;
96
+ }
97
+
98
+ _toPointObject(point) {
99
+ if (Array.isArray(point)) {
100
+ return {
101
+ x: point[0],
102
+ y: point[1]
103
+ };
104
+ } else if (point instanceof GeometryPoint || point instanceof Point) {
105
+ return {
106
+ x: point.x,
107
+ y: point.y
108
+ };
109
+ }
110
+ return point;
111
+ }
112
+ }