1+ import { SpatialAnalystService } from '../../../src/openlayers/services/SpatialAnalystService' ;
2+ import { GeometryBufferAnalystParameters } from '../../../src/common/iServer/GeometryBufferAnalystParameters' ;
3+ import { GeometryOverlayAnalystParameters } from '../../../src/common/iServer/GeometryOverlayAnalystParameters' ;
4+ import { BufferSetting } from '../../../src/common/iServer/BufferSetting' ;
5+ import { BufferDistance } from '../../../src/common/iServer/BufferDistance' ;
6+ import { BufferEndType } from '../../../src/common/REST' ;
7+ import { OverlayOperationType } from '../../../src/common/REST' ;
8+
9+ var serviceUrl = GlobeParameter . spatialAnalystURL ;
10+ describe ( 'openlayers_SpatialAnalystService_geometryBatchAnalysis' , ( ) => {
11+ var originalTimeout ;
12+ var serviceResult ;
13+ beforeEach ( ( ) => {
14+ originalTimeout = jasmine . DEFAULT_TIMEOUT_INTERVAL ;
15+ jasmine . DEFAULT_TIMEOUT_INTERVAL = 50000 ;
16+ serviceResult = null ;
17+ } ) ;
18+ afterEach ( ( ) => {
19+ jasmine . DEFAULT_TIMEOUT_INTERVAL = originalTimeout ;
20+ } ) ;
21+
22+ it ( 'geometryBatchAnalysis' , ( done ) => {
23+ //缓冲区分析参数
24+ var bufferLine = {
25+ "type" : "Feature" ,
26+ "geometry" : {
27+ "type" : "LineString" ,
28+ "coordinates" : [ [ 117 , 40.50 ] , [ 118 , 40 ] ]
29+ }
30+ } ;
31+ var geoBufferAnalystParams = {
32+ analystName : "buffer" ,
33+ param : new GeometryBufferAnalystParameters ( {
34+ sourceGeometry : bufferLine ,
35+ sourceGeometrySRID : 4326 ,
36+ bufferSetting : new BufferSetting ( {
37+ endType : BufferEndType . ROUND ,
38+ leftDistance : new BufferDistance ( { value : 0.05 } ) ,
39+ rightDistance : new BufferDistance ( { value : 0.05 } ) ,
40+ semicircleLineSegment : 10
41+ } )
42+
43+ } )
44+ } ;
45+ //叠加分析参数
46+ var sourceGeometry = {
47+ "type" : "Feature" ,
48+ "geometry" : {
49+ "type" : "Polygon" ,
50+ "coordinates" : [ [ [ 116 , 39.75 ] ,
51+ [ 116 , 39.15 ] ,
52+ [ 117 , 39.15 ] ,
53+ [ 117 , 39.85 ] ,
54+ [ 116 , 39.85 ] ] ]
55+ }
56+ } ;
57+ var operateGeometry = {
58+ "type" : "Feature" ,
59+ "geometry" : {
60+ "type" : "Polygon" ,
61+ "coordinates" : [ [ [ 116.25 , 40.5 ] ,
62+ [ 116.25 , 38.5 ] ,
63+ [ 116.75 , 38.5 ] ,
64+ [ 116.75 , 40.5 ] ,
65+ [ 116.25 , 40.5 ] ] ]
66+ }
67+ } ;
68+ var OverlayBatchAnalystParameters = {
69+ analystName : "overlay" ,
70+ param : new GeometryOverlayAnalystParameters ( {
71+ sourceGeometry : sourceGeometry ,
72+ operateGeometry : operateGeometry ,
73+ operation : OverlayOperationType . CLIP
74+ } )
75+ } ;
76+ //批量分析参数
77+ var parameters = [ geoBufferAnalystParams , OverlayBatchAnalystParameters ] ;
78+ //批量分析
79+ new SpatialAnalystService ( serviceUrl ) . geometrybatchAnalysis ( parameters , function ( result ) {
80+ serviceResult = result ;
81+ } ) ;
82+ setTimeout ( ( ) => {
83+ expect ( serviceResult ) . not . toBeNull ( ) ;
84+ expect ( serviceResult . type ) . toBe ( "processCompleted" ) ;
85+ expect ( serviceResult . result . succeed ) . toEqual ( true ) ;
86+ expect ( serviceResult . result . length ) . toEqual ( 2 ) ;
87+ for ( var i = 0 ; i < serviceResult . result . length ; i ++ ) {
88+ expect ( serviceResult . result [ i ] . resultGeometry ) . not . toBeNull ( ) ;
89+ expect ( serviceResult . result [ i ] . resultGeometry . geometry ) . not . toBeNull ( ) ;
90+ expect ( serviceResult . result [ i ] . resultGeometry . geometry . coordinates . length ) . toBeGreaterThan ( 0 ) ;
91+ expect ( serviceResult . result [ i ] . resultGeometry . geometry . type ) . toBe ( "MultiPolygon" ) ;
92+ expect ( serviceResult . result [ i ] . resultGeometry . type ) . toBe ( "Feature" ) ;
93+ expect ( serviceResult . result [ i ] . succeed ) . toBe ( true ) ;
94+ }
95+ done ( ) ;
96+ } , 3000 )
97+ } ) ;
98+ } ) ;
0 commit comments