| 
									
										
										
										
											2016-08-03 09:05:23 -06:00
										 |  |  | var s2n = require('s2geometry-node'); | 
					
						
							| 
									
										
										
										
											2016-07-28 00:37:43 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | // Provo, UT (Center St)
 | 
					
						
							|  |  |  | //var lat = 40.2574448;
 | 
					
						
							|  |  |  | //var lng = -111.7089464;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Startup Building in Provo
 | 
					
						
							| 
									
										
										
										
											2016-07-28 05:06:23 -04:00
										 |  |  | //var lat = 40.2262363;
 | 
					
						
							|  |  |  | //var lng = -111.6630927;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Kyderman's test location
 | 
					
						
							| 
									
										
										
										
											2016-07-29 10:37:43 -04:00
										 |  |  | //var lat = 51.352085106718384;
 | 
					
						
							|  |  |  | //var lng = -2.9877930879592896;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Toeler's test location
 | 
					
						
							|  |  |  | var lat = -43.5261282; | 
					
						
							|  |  |  | var lng = 172.6561085; | 
					
						
							| 
									
										
										
										
											2016-07-26 02:31:39 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-03 09:05:23 -06:00
										 |  |  | var s2nlatlng = new s2n.S2LatLng(lat, lng); | 
					
						
							|  |  |  | var cellId = new s2n.S2CellId(s2nlatlng).parent(15); | 
					
						
							| 
									
										
										
										
											2016-07-26 02:31:39 -04:00
										 |  |  | var cell; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var walk = []; | 
					
						
							|  |  |  | var next = cellId; | 
					
						
							|  |  |  | var prev = cellId; | 
					
						
							|  |  |  | var i; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-27 07:56:55 -04:00
										 |  |  | // -10 - -1
 | 
					
						
							| 
									
										
										
										
											2016-07-26 02:31:39 -04:00
										 |  |  | for (i = 0; i < 10; i += 1) { | 
					
						
							|  |  |  |   prev = prev.prev(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-26 02:36:42 -04:00
										 |  |  |   walk.unshift([ -(i + 1), prev ]); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-27 07:56:55 -04:00
										 |  |  | // 0
 | 
					
						
							| 
									
										
										
										
											2016-07-26 02:36:42 -04:00
										 |  |  | walk.push([ 0, cellId ]); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-27 07:56:55 -04:00
										 |  |  | // 1 - 10
 | 
					
						
							| 
									
										
										
										
											2016-07-26 02:36:42 -04:00
										 |  |  | for (i = 0; i < 10; i += 1) { | 
					
						
							|  |  |  |   next = next.next(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   walk.push([ i + 1, next ]); | 
					
						
							| 
									
										
										
										
											2016-07-26 02:31:39 -04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-27 07:56:55 -04:00
										 |  |  | // all results
 | 
					
						
							| 
									
										
										
										
											2016-07-26 02:36:42 -04:00
										 |  |  | walk.forEach(function (parts) { | 
					
						
							|  |  |  |   var i = parts[0]; | 
					
						
							|  |  |  |   var cellId = parts[1]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-03 09:05:23 -06:00
										 |  |  |   cell = new s2n.S2Cell(cellId); | 
					
						
							| 
									
										
										
										
											2016-07-26 02:36:42 -04:00
										 |  |  |   console.log(i, cell.face(), cellId.id(), cellId.toString(), cellId.toLatLng().toString(), cellId.level()); | 
					
						
							|  |  |  | }); |