Skip to content

Commit e6644a7

Browse files
committed
Core 新增空间分析服务 review by caoxinke
1 parent a3411b3 commit e6644a7

16 files changed

+1600
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/* COPYRIGHT 2017 SUPERMAP
2+
* 本程序只能在有效的授权许可下使用。
3+
* 未经许可,不得以任何手段擅自使用或传播。*/
4+
5+
/**
6+
* Class: SuperMap.REST.AreaSolarRadiationService
7+
* 地区太阳辐射服务类。
8+
*
9+
* Inherits from:
10+
* - <SuperMap.REST.SpatialAnalystBase>
11+
*/
12+
require('./SpatialAnalystBase');
13+
SuperMap.REST.AreaSolarRadiationService = SuperMap.Class(SuperMap.REST.SpatialAnalystBase, {
14+
15+
/**
16+
* Constructor: SuperMap.REST.AreaSolarRadiationService
17+
* 地区太阳辐射服务类构造函数。
18+
*
19+
* 例如:
20+
* (start code)
21+
* var myAreaSolarRadiationService = new SuperMap.REST.AreaSolarRadiationService(url);
22+
* myAreaSolarRadiationService.on({
23+
* "processCompleted": processCompleted,
24+
* "processFailed": processFailed
25+
* }
26+
* );
27+
* (end)
28+
*
29+
* Parameters:
30+
* url - {String} 服务的访问地址。如 http://localhost:8090/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst 。
31+
* options - {Object} 参数。
32+
*
33+
* Allowed options properties:
34+
* eventListeners - {Object} 需要被注册的监听器对象。
35+
*/
36+
initialize: function(url, options) {
37+
SuperMap.REST.SpatialAnalystBase.prototype.initialize.apply(this, arguments);
38+
},
39+
40+
/**
41+
* APIMethod: destroy
42+
* 释放资源,将引用资源的属性置空。
43+
*/
44+
destroy: function () {
45+
SuperMap.REST.SpatialAnalystBase.prototype.destroy.apply(this, arguments);
46+
},
47+
48+
/**
49+
* APIMethod: processAsync
50+
* 负责将客户端的查询参数传递到服务端。
51+
*
52+
* Parameters:
53+
* params - {<SuperMap.REST.AreaSolarRadiationParameters>}
54+
*/
55+
processAsync: function (parameter) {
56+
var me = this;
57+
58+
var end = me.url.substr(me.url.length - 1, 1);
59+
if (end === '/') {
60+
61+
} else {
62+
me.url += "/";
63+
}
64+
65+
var parameterObject = new Object();
66+
67+
if (parameter instanceof SuperMap.REST.AreaSolarRadiationParameters) {
68+
me.url += 'datasets/' + parameter.dataset +'/solarradiation';
69+
}
70+
71+
SuperMap.REST.AreaSolarRadiationParameters.toObject(parameter, parameterObject);
72+
var jsonParameters = SuperMap.Util.toJSON(parameterObject);
73+
74+
if (me.isInTheSameDomain) {
75+
me.url += '.json?returnContent=true';
76+
} else {
77+
me.url += '.jsonp?returnContent=true';
78+
}
79+
80+
me.request({
81+
method: "POST",
82+
data: jsonParameters,
83+
scope: me,
84+
success: me.serviceProcessCompleted,
85+
failure: me.serviceProcessFailed
86+
});
87+
},
88+
89+
CLASS_NAME: "SuperMap.REST.AreaSolarRadiationService"
90+
});
91+
92+
module.exports = function (url, options) {
93+
return new SuperMap.REST.AreaSolarRadiationService(url, options);
94+
};
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
/* COPYRIGHT 2017 SUPERMAP
2+
* 本程序只能在有效的授权许可下使用。
3+
* 未经许可,不得以任何手段擅自使用或传播。*/
4+
5+
/**
6+
* Class: SuperMap.REST.BufferAnalystService
7+
* 缓冲区分析服务类
8+
* 该类负责将客户设置的缓冲区分析参数传递给服务端,并接收服务端返回的缓冲区分析结果数据。
9+
* 缓冲区分析结果通过该类支持的事件的监听函数参数获取
10+
*
11+
* Inherits from:
12+
* - <SuperMap.REST.SpatialAnalystBase>
13+
*/
14+
require('./SpatialAnalystBase');
15+
SuperMap.REST.BufferAnalystService = SuperMap.Class(SuperMap.REST.SpatialAnalystBase, {
16+
17+
/**
18+
* Property: mode
19+
* {<String>} 缓冲区分析类型
20+
*/
21+
mode: null,
22+
23+
/**
24+
* Constructor: SuperMap.REST.BufferAnalystService
25+
* 缓冲区分析服务类构造函数。
26+
*
27+
* 例如:
28+
* (start code)
29+
* var myBufferAnalystService = new SuperMap.REST.BufferAnalystService(url, {
30+
* eventListeners: {
31+
* "processCompleted": bufferCompleted,
32+
* "processFailed": bufferFailed
33+
* }
34+
* });
35+
* (end)
36+
*
37+
* Parameters:
38+
* url - {String} 服务的访问地址。如 http://localhost:8090/iserver/services/spatialanalyst-changchun/restjsr/spatialanalyst 。
39+
* options - {Object} 参数。
40+
*
41+
* Allowed options properties:
42+
* eventListeners - {Object} 需要被注册的监听器对象。
43+
*/
44+
initialize: function(url, options) {
45+
SuperMap.REST.SpatialAnalystBase.prototype.initialize.apply(this, arguments);
46+
var me = this;
47+
if (options) {
48+
SuperMap.Util.extend(me, options);
49+
}
50+
},
51+
52+
/**
53+
* APIMethod: destroy
54+
* 释放资源,将引用资源的属性置空。
55+
*/
56+
destroy: function () {
57+
SuperMap.REST.SpatialAnalystBase.prototype.destroy.apply(this, arguments);
58+
me.mode = null;
59+
},
60+
61+
/**
62+
* APIMethod: processAsync
63+
* 负责将客户端的查询参数传递到服务端。
64+
*
65+
* Parameters:
66+
* params - {<SuperMap.REST.BufferAnalystParameters>}
67+
*/
68+
processAsync: function (parameter) {
69+
var parameterObject = new Object();
70+
var me = this;
71+
72+
var end = me.url.substr(me.url.length - 1, 1);
73+
if (end === '/') {
74+
75+
} else {
76+
me.url += "/";
77+
}
78+
79+
if (parameter instanceof SuperMap.REST.DatasetBufferAnalystParameters) {
80+
me.mode = "datasets";
81+
me.url += 'datasets/' + parameter.dataset + '/buffer';
82+
SuperMap.REST.DatasetBufferAnalystParameters.toObject(parameter, parameterObject);
83+
}
84+
else if (parameter instanceof SuperMap.REST.GeometryBufferAnalystParameters) {
85+
me.mode = "geometry";
86+
me.url += 'geometry/buffer';
87+
SuperMap.REST.GeometryBufferAnalystParameters.toObject(parameter, parameterObject);
88+
}
89+
90+
var jsonParameters = SuperMap.Util.toJSON(parameterObject);
91+
92+
93+
if (me.isInTheSameDomain) {
94+
me.url += '.json?returnContent=true';
95+
} else {
96+
me.url += '.jsonp?returnContent=true';
97+
}
98+
99+
me.request({
100+
method: "POST",
101+
data: jsonParameters,
102+
scope: me,
103+
success: me.serviceProcessCompleted,
104+
failure: me.serviceProcessFailed
105+
});
106+
},
107+
CLASS_NAME: "SuperMap.REST.BufferAnalystService"
108+
});
109+
110+
module.exports = function (url, options) {
111+
return new SuperMap.REST.BufferAnalystService(url, options);
112+
};

src/Core/iServer/ChartQueryService.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* Inherits from:
1414
* - <SuperMap.CoreServiceBase>
1515
*/
16+
require('../format/GeoJSON');
1617
require('./CoreServiceBase');
1718

1819
SuperMap.REST.ChartQueryService = SuperMap.Class(SuperMap.CoreServiceBase, {
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
/* COPYRIGHT 2017 SUPERMAP
2+
* 本程序只能在有效的授权许可下使用。
3+
* 未经许可,不得以任何手段擅自使用或传播。*/
4+
5+
6+
/**
7+
* Class: SuperMap.REST.DensityAnalystService
8+
* 密度分析服务类,密度分析可计算每个输出栅格像元周围圆形邻域内输入的点或线对象的密度。
9+
* 密度分析,在某种意义上来说,相当于在表面上将输入的点线对象的测量值散开来,
10+
* 将每个点或线对象的测量量分布在整个研究区域,并计算输出栅格中每个像元的密度值。
11+
*
12+
* 目前提供1种密度分析:核密度分析(Kernel)。
13+
*
14+
* Inherits from:
15+
* - <SuperMap.REST.SpatialAnalystBase>
16+
*/
17+
require('./SpatialAnalystBase');
18+
SuperMap.REST.DensityAnalystService = SuperMap.Class(SuperMap.REST.SpatialAnalystBase, {
19+
20+
/**
21+
* Property: mode
22+
* {String} 密度分析类型。
23+
*/
24+
mode: null,
25+
26+
/**
27+
* Constructor: SuperMap.REST.DensityAnalystService
28+
* 密度分析服务类构造函数。
29+
*
30+
* 例如:
31+
* (start code)
32+
* var myDensityAnalystService = new SuperMap.REST.DensityAnalystService(url);
33+
* myDensityAnalystService.on({
34+
* "processCompleted": processCompleted,
35+
* "processFailed": processFailed
36+
* }
37+
* );
38+
* (end)
39+
*
40+
* Parameters:
41+
* url - {String} 服务的访问地址。如 http://localhost:8090/iserver/services/spatialanalyst-changchun/restjsr/spatialanalyst 。
42+
* options - {Object} 参数。
43+
*
44+
* Allowed options properties:
45+
* eventListeners - {Object} 需要被注册的监听器对象。
46+
*/
47+
initialize: function (url, options) {
48+
SuperMap.REST.SpatialAnalystBase.prototype.initialize.apply(this, arguments);
49+
var me = this;
50+
if (options) {
51+
SuperMap.Util.extend(me, options);
52+
}
53+
},
54+
55+
/**
56+
* APIMethod: destroy
57+
* 释放资源,将引用资源的属性置空。
58+
*/
59+
destroy: function () {
60+
SuperMap.REST.SpatialAnalystBase.prototype.destroy.apply(this, arguments);
61+
this.mode = null;
62+
},
63+
64+
/**
65+
* APIMethod: processAsync
66+
* 负责将客户端的查询参数传递到服务端。
67+
*
68+
* Parameters:
69+
* params - {<SuperMap.REST.DensityKernelAnalystParameters>}
70+
*/
71+
processAsync: function (parameter) {
72+
var me = this;
73+
74+
var end = me.url.substr(me.url.length - 1, 1);
75+
if (end === '/') {
76+
77+
} else {
78+
me.url += "/";
79+
}
80+
81+
var parameterObject = new Object();
82+
83+
if (parameter instanceof SuperMap.REST.DensityKernelAnalystParameters) {
84+
me.url += 'datasets/' + parameter.dataset + '/densityanalyst/kernel';
85+
me.mode = "kernel";
86+
}
87+
88+
SuperMap.REST.DensityKernelAnalystParameters.toObject(parameter, parameterObject);
89+
var jsonParameters = SuperMap.Util.toJSON(parameterObject);
90+
91+
if (me.isInTheSameDomain) {
92+
me.url += '.json?returnContent=true';
93+
} else {
94+
me.url += '.jsonp?returnContent=true';
95+
}
96+
97+
me.request({
98+
method: "POST",
99+
data: jsonParameters,
100+
scope: me,
101+
success: me.serviceProcessCompleted,
102+
failure: me.serviceProcessFailed
103+
});
104+
},
105+
106+
CLASS_NAME: "SuperMap.REST.DensityAnalystService"
107+
});
108+
module.exports = function (url, options) {
109+
return new SuperMap.REST.DensityAnalystService(url, options);
110+
};

0 commit comments

Comments
 (0)