@@ -27,6 +27,45 @@ function randomString(length) {
2727 return result ;
2828}
2929
30+ function generateQuadKeyMetadata ( key , version ) {
31+ return {
32+ version : Math . floor ( Math . random ( ) * version ) ,
33+ subQuadKey : key . toString ( ) ,
34+ dataHandle : randomString ( 35 )
35+ }
36+ }
37+
38+ function generateQuadKeyMetadataParent ( key , version ) {
39+ return {
40+ version : Math . floor ( Math . random ( ) * version ) ,
41+ partition : key . toString ( ) ,
42+ dataHandle : randomString ( 35 )
43+ }
44+ }
45+
46+ function traverseKeyToRoot ( key , version ) {
47+ key >>= 2 ;
48+ let keys = [ ] ;
49+ while ( key > 1 ) {
50+ keys . push ( generateQuadKeyMetadataParent ( key , version ) ) ;
51+ key >>= 2 ;
52+ }
53+ return keys ;
54+ }
55+
56+ function traverseKey ( key , depth , depthLimit , version ) {
57+ if ( depth <= depthLimit ) {
58+ let values = [ ] ;
59+ values . push ( generateQuadKeyMetadata ( key , version ) ) ;
60+ values = values . concat ( traverseKey ( ( key << 2 ) + 0 , depth + 1 , depthLimit , version ) ) ;
61+ values = values . concat ( traverseKey ( ( key << 2 ) + 1 , depth + 1 , depthLimit , version ) ) ;
62+ values = values . concat ( traverseKey ( ( key << 2 ) + 2 , depth + 1 , depthLimit , version ) ) ;
63+ values = values . concat ( traverseKey ( ( key << 2 ) + 3 , depth + 1 , depthLimit , version ) ) ;
64+ return values ;
65+ }
66+ return [ ] ;
67+ }
68+
3069function generatePartitions ( requested_partitions , layer , version ) {
3170 var partitions = [ ]
3271 for ( var i = 0 ; i < requested_partitions . length ; i ++ ) {
@@ -58,10 +97,25 @@ function generateGetPartitionsApiResponse(request, query) {
5897 }
5998}
6099
100+ function generateQueryTreeApiResponse ( request , query ) {
101+ const version = request [ 2 ]
102+ const key = request [ 3 ]
103+ const depth = request [ 4 ]
104+
105+ return {
106+ subQuads : traverseKey ( 1 , 0 , depth , version ) ,
107+ parentQuads : traverseKeyToRoot ( key , version )
108+ }
109+ }
110+
61111const methods = [
62112{
63113 regex : / l a y e r s \/ ( .+ ) \/ p a r t i t i o n s $ / ,
64114 handler : generateGetPartitionsApiResponse
115+ } ,
116+ {
117+ regex : / l a y e r s \/ ( .+ ) \/ v e r s i o n s \/ ( .+ ) \/ q u a d k e y s \/ ( .+ ) \/ d e p t h s \/ ( \d { 1 } ) / ,
118+ handler : generateQueryTreeApiResponse
65119}
66120]
67121
0 commit comments