11require ( '../../../src/mapboxgl/overlay/RangeThemeLayer' ) ;
2+ require ( '../../../src/common/util/FetchRequest' ) ;
23var mapboxgl = require ( 'mapbox-gl' ) ;
34window . mapboxgl = mapboxgl ;
45
@@ -165,7 +166,7 @@ describe('mapboxgl_RangeThemeLayer', function () {
165166 expect ( shape2 . length ) . toBeGreaterThan ( 0 ) ;
166167 var cacheCount1 = themeLayer . getCacheCount ( ) ;
167168 expect ( cacheCount1 ) . toBeGreaterThan ( 0 ) ;
168- var maxCacheCount = themeLayer . setMaxCacheCount ( 10 ) ;
169+ themeLayer . setMaxCacheCount ( 10 ) ;
169170 expect ( themeLayer . maxCacheCount ) . toEqual ( 10 ) ;
170171 themeLayer . removeFeatures ( ) ;
171172 expect ( themeLayer . features . length ) . toBeGreaterThan ( 0 ) ;
@@ -176,5 +177,263 @@ describe('mapboxgl_RangeThemeLayer', function () {
176177 done ( ) ;
177178 } , 5000 )
178179 } ) ;
179- } ) ;
180+
181+ //测试父类ThemeVector类下的方法
182+ it ( 'lineToTF' , function ( done ) {
183+ var themeLayer , result ;
184+ var getFeatureBySQLParams = new SuperMap . GetFeaturesBySQLParameters ( {
185+ queryParameter : new SuperMap . FilterParameter ( {
186+ name : "Jingjin" ,
187+ attributeFilter : "SMID > -1"
188+ } ) ,
189+ toIndex : 500 ,
190+ datasetNames : [ "Jingjin:BaseMap_L" ]
191+ } ) ;
192+ var getFeatureBySQLService = new SuperMap . GetFeaturesBySQLService ( dataUrl , {
193+ format : SuperMap . DataFormat . ISERVER ,
194+ eventListeners : {
195+ processCompleted : function ( serviceResult ) {
196+ if ( serviceResult . error ) {
197+ alert ( "error:" + JSON . stringify ( serviceResult . error ) ) ;
198+ return ;
199+ }
200+ result = serviceResult . result ;
201+ }
202+ }
203+ } ) ;
204+ getFeatureBySQLService . processAsync ( getFeatureBySQLParams ) ;
205+ setTimeout ( function ( ) {
206+ if ( result && result . features ) {
207+ themeLayer = new mapboxgl . supermap . RangeThemeLayer ( "ThemeLayer" ,
208+ {
209+ map : map ,
210+ opacity : 0.8 ,
211+ style : {
212+ shadowBlur : 16 ,
213+ shadowColor : "#000000" ,
214+ fillColor : "#FFFFFF"
215+ } ,
216+ isHoverAble : true ,
217+ highlightStyle : {
218+ stroke : true ,
219+ strokeWidth : 4 ,
220+ strokeColor : 'blue' ,
221+ fillColor : "#00EEEE" ,
222+ fillOpacity : 0.8
223+ } ,
224+ themeField : "SmID" ,
225+ styleGroups : [
226+ {
227+ start : 2 ,
228+ end : 3 ,
229+ style : {
230+ color : '#FDE2CA'
231+ }
232+ } ,
233+ {
234+ start : 3 ,
235+ end : 4 ,
236+ style : {
237+ color : '#FACE9C'
238+ }
239+ }
240+ ]
241+ } ) ;
242+ themeLayer . addFeatures ( result . features ) ;
243+ expect ( themeLayer ) . not . toBeNull ( ) ;
244+ expect ( themeLayer . themeField ) . toBe ( "SmID" ) ;
245+ expect ( themeLayer . features . length ) . toBeGreaterThan ( 0 ) ;
246+ for ( var i = 0 ; i < themeLayer . features . length ; i ++ ) {
247+ var features_i = themeLayer . features [ i ] ;
248+ expect ( features_i . data ) . not . toBeNull ( ) ;
249+ expect ( features_i . CLASS_NAME ) . toBe ( "SuperMap.Feature.Vector" ) ;
250+ expect ( features_i . id ) . not . toBeNull ( ) ;
251+ var geometry_i = features_i . geometry ;
252+ expect ( geometry_i ) . not . toBeNull ( ) ;
253+ expect ( geometry_i . CLASS_NAME ) . toBe ( "SuperMap.Geometry.LineString" ) ;
254+ expect ( geometry_i . bounds ) . not . toBeUndefined ( ) ;
255+ expect ( geometry_i . componentTypes ) . not . toBeUndefined ( ) ;
256+ expect ( geometry_i . components ) . not . toBeUndefined ( ) ;
257+ expect ( geometry_i . id ) . not . toBeUndefined ( ) ;
258+ }
259+ }
260+ themeLayer . clear ( ) ;
261+ done ( ) ;
262+ } , 5000 )
263+ } ) ;
264+
265+ it ( 'pointToTF' , function ( done ) {
266+ var themeLayer , result ;
267+ var getFeatureBySQLParams = new SuperMap . GetFeaturesBySQLParameters ( {
268+ queryParameter : new SuperMap . FilterParameter ( {
269+ name : "Jingjin" ,
270+ attributeFilter : "SMID > -1"
271+ } ) ,
272+ toIndex : 500 ,
273+ datasetNames : [ "Jingjin:BaseMap_P" ]
274+ } ) ;
275+ var getFeatureBySQLService = new SuperMap . GetFeaturesBySQLService ( dataUrl , {
276+ format : SuperMap . DataFormat . ISERVER ,
277+ eventListeners : {
278+ processCompleted : function ( serviceResult ) {
279+ if ( serviceResult . error ) {
280+ alert ( "error:" + JSON . stringify ( serviceResult . error ) ) ;
281+ return ;
282+ }
283+ result = serviceResult . result ;
284+ }
285+ }
286+ } ) ;
287+ getFeatureBySQLService . processAsync ( getFeatureBySQLParams ) ;
288+ setTimeout ( function ( ) {
289+ if ( result && result . features ) {
290+ //创建RangeThemeLayer
291+ themeLayer = new mapboxgl . supermap . RangeThemeLayer ( "ThemeLayer" ,
292+ {
293+ map : map ,
294+ opacity : 0.8 ,
295+ style : {
296+ shadowBlur : 16 ,
297+ shadowColor : "#000000" ,
298+ fillColor : "#FFFFFF"
299+ } ,
300+ isHoverAble : true ,
301+ highlightStyle : {
302+ stroke : true ,
303+ strokeWidth : 4 ,
304+ strokeColor : 'blue' ,
305+ fillColor : "#00EEEE" ,
306+ fillOpacity : 0.8
307+ } ,
308+ themeField : "SmID" ,
309+ styleGroups : [
310+ {
311+ start : 2 ,
312+ end : 3 ,
313+ style : {
314+ color : '#FDE2CA'
315+ }
316+ } ,
317+ {
318+ start : 3 ,
319+ end : 4 ,
320+ style : {
321+ color : '#FACE9C'
322+ }
323+ }
324+ ]
325+ } ) ;
326+ themeLayer . addFeatures ( result . features ) ;
327+ expect ( themeLayer ) . not . toBeNull ( ) ;
328+ expect ( themeLayer . themeField ) . toBe ( "SmID" ) ;
329+ expect ( themeLayer . features . length ) . toBeGreaterThan ( 0 ) ;
330+ for ( var i = 0 ; i < themeLayer . features . length ; i ++ ) {
331+ var features_i = themeLayer . features [ i ] ;
332+ expect ( features_i . data ) . not . toBeNull ( ) ;
333+ expect ( features_i . CLASS_NAME ) . toBe ( "SuperMap.Feature.Vector" ) ;
334+ expect ( features_i . id ) . not . toBeNull ( ) ;
335+ var geometry_i = features_i . geometry ;
336+ expect ( geometry_i ) . not . toBeNull ( ) ;
337+ expect ( geometry_i . CLASS_NAME ) . toBe ( "SuperMap.Geometry.Point" ) ;
338+ expect ( geometry_i . bounds ) . not . toBeNull ( ) ;
339+ expect ( geometry_i . id ) . not . toBeUndefined ( ) ;
340+ }
341+ }
342+ themeLayer . clear ( ) ;
343+ done ( ) ;
344+ } , 5000 )
345+ } ) ;
346+
347+ //未找到合适的数据源
348+ //xit('multiPointToTF', function () {
349+ //});
350+ //xit('multiLineStringToTF', function () {
351+ //});
352+ //xit('rectangleToTF', function () {
353+ //});
354+
355+ // 测试父类mapbox/overlay/theme/ThemeLayer类中的方法
356+ it ( 'getFeatures, getFeatureBy, getFeatureById, getFeaturesByAttribute, moveEvent, zoomEvent, resizeEvent, destroyFeatures' , function ( done ) {
357+ var themeLayer , result ;
358+ var getFeatureBySQLParams = new SuperMap . GetFeaturesBySQLParameters ( {
359+ queryParameter : new SuperMap . FilterParameter ( {
360+ name : "Jingjin" ,
361+ attributeFilter : "SMID > -1"
362+ } ) ,
363+ toIndex : 500 ,
364+ datasetNames : [ "Jingjin:BaseMap_R" ]
365+ } ) ;
366+ var getFeatureBySQLService = new SuperMap . GetFeaturesBySQLService ( dataUrl , {
367+ format : SuperMap . DataFormat . ISERVER ,
368+ eventListeners : {
369+ processCompleted : function ( serviceResult ) {
370+ if ( serviceResult . error ) {
371+ alert ( "error:" + JSON . stringify ( serviceResult . error ) ) ;
372+ return ;
373+ }
374+ result = serviceResult . result ;
375+ }
376+ }
377+ } ) ;
378+ getFeatureBySQLService . processAsync ( getFeatureBySQLParams ) ;
379+ setTimeout ( function ( ) {
380+ if ( result && result . features ) {
381+ themeLayer = new mapboxgl . supermap . RangeThemeLayer ( "ThemeLayer" ,
382+ {
383+ map : map ,
384+ opacity : 0.8 ,
385+ style : {
386+ shadowBlur : 16 ,
387+ shadowColor : "#000000" ,
388+ fillColor : "#FFFFFF"
389+ } ,
390+ themeField : "POP_DENSITY99" ,
391+ styleGroups : [
392+ {
393+ start : 0 ,
394+ end : 0.02 ,
395+ style : {
396+ color : '#FDE2CA'
397+ }
398+ } ]
399+ } ) ;
400+ themeLayer . addFeatures ( result . features ) ;
401+ expect ( themeLayer . features . length ) . toBeGreaterThan ( 0 ) ;
402+ //getFeatures方法
403+ var resultFeatures = themeLayer . getFeatures ( ) ;
404+ expect ( resultFeatures . length ) . toBeGreaterThan ( 0 ) ;
405+ //getFeatureBy方法
406+ var id = resultFeatures [ 0 ] . id ;
407+ var feature = themeLayer . getFeatureBy ( "id" , id ) ;
408+ expect ( feature ) . toBe ( resultFeatures [ 0 ] ) ;
409+ //getFeatureById方法
410+ var featureGetById = themeLayer . getFeatureById ( id ) ;
411+ expect ( featureGetById ) . toBe ( resultFeatures [ 0 ] ) ;
412+ //getFeatureByAttribute方法
413+ var featureGetByAttribute = themeLayer . getFeaturesByAttribute ( "NAME" , "北京市" ) ;
414+ expect ( featureGetByAttribute . length ) . toBeGreaterThan ( 0 ) ;
415+ expect ( featureGetByAttribute [ 0 ] . attributes . NAME ) . toBe ( "北京市" ) ;
416+ //on方法
417+ themeLayer . on ( 'click' , function ( ) {
418+ console . log ( 'test on' ) ;
419+ } ) ;
420+ //moveEvent方法
421+ themeLayer . moveEvent ( ) ;
422+ //zoomEvent方法
423+ themeLayer . zoomEvent ( ) ;
424+ //resizeEvent方法
425+ themeLayer . resizeEvent ( ) ;
426+ //destroyFeatures方法
427+ themeLayer . destroyFeatures ( result . features [ 0 ] ) ; //有问题,没删掉,待开发修改
428+ //expect(themeLayer.features.length).toEqual(resultFeatures.length - 1);
429+ themeLayer . destroyFeatures ( ) ;
430+ expect ( themeLayer . features . length ) . toEqual ( 0 ) ;
431+ expect ( 1 ) . not . toBeNull ( ) ;
432+ }
433+ themeLayer . clear ( ) ;
434+ done ( ) ;
435+ } , 5000 )
436+ } ) ;
437+ } )
438+ ;
180439
0 commit comments