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+ } ;
0 commit comments