﻿1
00:00:01,280 --> 00:00:03,110
‫Istruttore: In questa lezione,

2
00:00:03,110 --> 00:00:06,660
‫impareremo a conoscere le query geospaziali al fine di implementare

3
00:00:06,660 --> 00:00:09,147
‫una funzionalità davvero interessante, che consiste

4
00:00:09,147 --> 00:00:12,750
‫nel fornire una funzionalità di ricerca per i tour entro

5
00:00:12,750 --> 00:00:15,313
‫una certa distanza da un punto specificato.

6
00:00:17,060 --> 00:00:18,712
‫Quindi supponiamo che

7
00:00:18,712 --> 00:00:22,210
‫tu viva in un certo punto e volevi sapere

8
00:00:22,210 --> 00:00:26,008
‫quali tour iniziano a una certa distanza da te, come

9
00:00:26,008 --> 00:00:28,738
‫250 miglia, perché non vuoi guidare oltre

10
00:00:28,738 --> 00:00:31,430
‫per iniziare la tua esperienza di tour.

11
00:00:31,430 --> 00:00:33,470
‫Quindi sarebbe una caratteristica fantastica

12
00:00:33,470 --> 00:00:36,413
‫e un caso d'uso davvero carino di query geospaziali.

13
00:00:36,413 --> 00:00:39,804
‫E per implementare qualcosa del genere, qui

14
00:00:39,804 --> 00:00:43,597
‫nel nostro router tour, potremmo creare un bel

15
00:00:43,597 --> 00:00:45,720
‫percorso, qualcosa del genere.

16
00:00:45,720 --> 00:00:50,720
‫Quindi lo metterò qui prima di queste rotte generali

17
00:00:51,810 --> 00:00:52,643
‫qui.

18
00:00:54,910 --> 00:00:59,910
‫Quindi diciamo router dot route, e

19
00:01:00,580 --> 00:01:05,503
‫chiamerò questo tour all'interno, ok?

20
00:01:06,890 --> 00:01:09,663
‫Quindi dobbiamo anche specificare la distanza.

21
00:01:11,620 --> 00:01:14,503
‫E quindi creiamo qui un parametro di distanza.

22
00:01:15,607 --> 00:01:17,800
‫Successivamente, dobbiamo anche specificare il centro,

23
00:01:17,800 --> 00:01:20,810
‫e questo è fondamentalmente il punto in cui vivi.

24
00:01:20,810 --> 00:01:25,810
‫Quindi specifichiamolo intorno al centro e poi barra, e

25
00:01:27,300 --> 00:01:30,090
‫poi lat e longitudine.

26
00:01:30,090 --> 00:01:31,967
‫Quindi fondamentalmente in questa variabile qui,

27
00:01:31,967 --> 00:01:34,870
‫vuoi passare le coordinate del luogo in cui

28
00:01:34,870 --> 00:01:35,960
‫ti trovi.

29
00:01:35,960 --> 00:01:37,960
‫Quindi diciamo che vivi a Los

30
00:01:37,960 --> 00:01:40,760
‫Angeles e vuoi trovare tutti i tour entro una

31
00:01:40,760 --> 00:01:42,390
‫distanza di 300 miglia.

32
00:01:42,390 --> 00:01:44,520
‫Quindi qui diresti

33
00:01:44,520 --> 00:01:46,710
‫300, e poi qui metteresti

34
00:01:46,710 --> 00:01:49,570
‫le coordinate di dove vivi, ok?

35
00:01:49,570 --> 00:01:52,610
‫Quindi, diamo anche la possibilità di specificare

36
00:01:52,610 --> 00:01:53,443
‫l'unità.

37
00:01:53,443 --> 00:01:57,910
‫Quindi se questa distanza qui è in chilometri o in miglia.

38
00:01:57,910 --> 00:02:01,046
‫Quindi diciamo, slash

39
00:02:01,046 --> 00:02:05,070
‫unit e l'unità come parametro.

40
00:02:05,070 --> 00:02:07,990
‫Ora questo modo di specificare un URL è qualcosa che non

41
00:02:07,990 --> 00:02:09,364
‫abbiamo mai fatto prima.

42
00:02:09,364 --> 00:02:12,634
‫Quindi fondamentalmente dicendo qui centro e barra

43
00:02:12,634 --> 00:02:15,521
‫e mettendo la longitudine e la

44
00:02:15,521 --> 00:02:17,736
‫latitudine dopo, e poi

45
00:02:17,736 --> 00:02:21,510
‫barra l'unità, e poi il parametro delle query.

46
00:02:21,510 --> 00:02:22,832
‫E ovviamente potremmo

47
00:02:22,832 --> 00:02:25,192
‫anche fare in modo che l'utente debba specificare

48
00:02:25,192 --> 00:02:28,303
‫tutte queste opzioni usando una stringa di query, ma in

49
00:02:28,303 --> 00:02:33,200
‫questo modo sembra molto più pulito ed è anche una specie di modo standard per

50
00:02:33,200 --> 00:02:35,554
‫specificare gli URL che contengono molti oggetti.

51
00:02:35,554 --> 00:02:39,200
‫Quindi quello che stavo dicendo che invece potremmo

52
00:02:39,200 --> 00:02:41,274
‫farlo ovviamente così.

53
00:02:41,274 --> 00:02:46,274
‫Distanza del tour e quindi l'utente dovrebbe fornire la distanza

54
00:02:49,605 --> 00:02:51,823
‫in questo modo qui.

55
00:02:53,620 --> 00:02:57,179
‫E il centro in questo modo, diciamo

56
00:02:57,179 --> 00:03:02,179
‫meno 40 e 45, e poi anche l'unità viene impostata su miglia.

57
00:03:04,090 --> 00:03:07,121
‫Ok, quindi questo è stato un modo per utilizzare le

58
00:03:07,121 --> 00:03:09,343
‫stringhe di query e l'abbiamo fatto prima.

59
00:03:09,343 --> 00:03:14,100
‫E in realtà non così, ma così.

60
00:03:14,100 --> 00:03:16,740
‫Ok, ma invece lo specificheremo di

61
00:03:16,740 --> 00:03:19,063
‫nuovo in questo modo.

62
00:03:20,990 --> 00:03:23,303
‫Che a mio parere sembra molto più bello.

63
00:03:26,040 --> 00:03:28,217
‫Quindi meno 40, 45.

64
00:03:31,650 --> 00:03:33,905
‫Ok, quindi pensa che questo

65
00:03:33,905 --> 00:03:36,610
‫qui sembri davvero molto più pulito di questo.

66
00:03:36,610 --> 00:03:39,290
‫Ok, quindi questa è un'altra cosa che

67
00:03:39,290 --> 00:03:41,249
‫volevo mostrarti è che

68
00:03:41,249 --> 00:03:45,750
‫è una specie di standard per specificare URL come questo, ok?

69
00:03:45,750 --> 00:03:46,971
‫Ad ogni

70
00:03:46,971 --> 00:03:49,753
‫modo, per questa rotta ovviamente, abbiamo bisogno di

71
00:03:49,753 --> 00:03:52,100
‫un gestore di rotta, e sarà

72
00:03:52,100 --> 00:03:57,100
‫al controller del tour, e chiamiamo questa funzione del gestore ottenere i tour all'interno.

73
00:03:59,530 --> 00:04:02,775
‫E quindi ora andiamo avanti e implementiamo questo

74
00:04:02,775 --> 00:04:04,513
‫metodo su questo gestore.

75
00:04:06,280 --> 00:04:10,660
‫Quindi tour controller e proprio qui.

76
00:04:17,970 --> 00:04:20,239
‫E iniziamo ottenendo tutti i parametri.

77
00:04:20,239 --> 00:04:24,253
‫Quindi lasciami copiare tutto questo qui.

78
00:04:25,667 --> 00:04:28,833
‫E solo così sappiamo come sono i nostri dati.

79
00:04:29,810 --> 00:04:30,643
‫Va bene?

80
00:04:32,570 --> 00:04:35,953
‫Quindi questo, e poi questo ha un commento.

81
00:04:42,550 --> 00:04:47,069
‫Va bene, quindi usiamo una semplice ristrutturazione per ottenere tutti

82
00:04:47,069 --> 00:04:51,186
‫i nostri dati in una volta dai parametri.

83
00:04:51,186 --> 00:04:54,477
‫E in realtà

84
00:04:54,477 --> 00:04:59,477
‫dobbiamo dire const, distanza e unità.

85
00:05:01,650 --> 00:05:05,323
‫Quindi tutto ciò deriva dai parametri dei punti di richiesta.

86
00:05:08,402 --> 00:05:11,320
‫Ok, quindi su richiesta. parametri, abbiamo la distanza del

87
00:05:11,320 --> 00:05:13,990
‫punto, il centro del punto e l'unità del punto, giusto?

88
00:05:13,990 --> 00:05:16,122
‫Perché questi sono i nomi

89
00:05:16,122 --> 00:05:18,510
‫dei tre parametri che abbiamo specificato qui.

90
00:05:18,510 --> 00:05:19,950
‫E in

91
00:05:19,950 --> 00:05:23,448
‫realtà non è al centro, è latlng

92
00:05:23,448 --> 00:05:27,440
‫qui, ok, quindi è quello corretto, e infine l'unità.

93
00:05:27,440 --> 00:05:30,190
‫Quindi, ancora una volta, usiamo la ristrutturazione per ottenere

94
00:05:30,190 --> 00:05:31,703
‫tutte queste variabili contemporaneamente.

95
00:05:33,438 --> 00:05:35,880
‫Successivamente, otteniamo effettivamente tutte le coordinate

96
00:05:35,880 --> 00:05:38,730
‫da questa variabile di latitudine e longitudine qui.

97
00:05:38,730 --> 00:05:42,826
‫Quindi, come vediamo, ci aspettiamo i dati in un formato come

98
00:05:42,826 --> 00:05:45,930
‫questo, e questo rende davvero facile copiare questi

99
00:05:45,930 --> 00:05:47,610
‫dati da Google Maps.

100
00:05:47,610 --> 00:05:49,610
‫Quindi lascia che te lo mostri velocemente.

101
00:05:50,573 --> 00:05:53,310
‫È importante che tu capisca come funziona anche

102
00:05:53,310 --> 00:05:55,563
‫questo tipo di cose nella pratica.

103
00:05:59,380 --> 00:06:03,323
‫Quindi usiamo l'esempio di Los Angeles qui.

104
00:06:07,430 --> 00:06:10,593
‫Ok, quindi diciamo che vivi da qualche parte qui.

105
00:06:12,720 --> 00:06:17,350
‫Ok, quindi puoi facilmente ottenere la latitudine e la

106
00:06:17,350 --> 00:06:20,124
‫longitudine in questo modo, ok?

107
00:06:20,124 --> 00:06:24,523
‫Quindi mettilo qui, solo come esempio di nuovo.

108
00:06:26,140 --> 00:06:27,840
‫E quindi questo è il formato.

109
00:06:27,840 --> 00:06:30,483
‫Sembra latitudine e longitudine.

110
00:06:32,610 --> 00:06:36,263
‫E quindi creiamo ora una variabile per ciascuna di esse.

111
00:06:37,755 --> 00:06:39,170
‫Quindi uno per la latitudine e uno per la longitudine.

112
00:06:39,170 --> 00:06:44,170
‫Quindi lat longitudine dot split perché è una

113
00:06:45,074 --> 00:06:48,940
‫stringa e vogliamo dividerla per virgola.

114
00:06:48,940 --> 00:06:51,577
‫Quindi questo creerà un array di

115
00:06:51,577 --> 00:06:55,180
‫due elementi, e ora possiamo usare di nuovo il destructering

116
00:06:55,180 --> 00:06:58,193
‫per salvarli nelle due variabili che ci interessano.

117
00:07:01,910 --> 00:07:05,073
‫Quindi latitudine e longitudine.

118
00:07:12,110 --> 00:07:15,200
‫Ok, ora voglio verificare se abbiamo effettivamente le variabili

119
00:07:15,200 --> 00:07:17,810
‫di longitudine e latitudine da trovare.

120
00:07:17,810 --> 00:07:20,940
‫Perché in caso contrario, significa che l'utente non li

121
00:07:20,940 --> 00:07:23,040
‫ha specificati nel formato richiesto.

122
00:07:23,040 --> 00:07:25,270
‫Quindi diciamo che se

123
00:07:25,270 --> 00:07:30,270
‫non c'è latitudine o longitudine, allora vogliamo creare un nuovo errore.

124
00:07:32,610 --> 00:07:37,610
‫Quindi, come sempre, errore della nuova app, e non sono sicuro che ce

125
00:07:39,520 --> 00:07:42,590
‫l'abbiamo ancora, proprio qui, e in realtà non

126
00:07:42,590 --> 00:07:43,825
‫ce l'abbiamo.

127
00:07:43,825 --> 00:07:47,270
‫Quindi abbiamo commentato questa parte perché non avevamo più bisogno

128
00:07:47,270 --> 00:07:50,240
‫dell'errore dell'app dopo aver creato le nostre funzioni di

129
00:07:50,240 --> 00:07:53,610
‫fabbrica del gestore, ma ora ne abbiamo effettivamente bisogno di

130
00:07:53,610 --> 00:07:55,003
‫nuovo, quindi riportiamolo.

131
00:07:58,476 --> 00:08:00,876
‫E il messaggio qui

132
00:08:06,510 --> 00:08:11,303
‫sarà per favore fornisci, nel formato, come questo.

133
00:08:12,400 --> 00:08:15,463
‫E il codice di errore 400 per quella richiesta.

134
00:08:17,230 --> 00:08:21,657
‫Fantastico, e ora solo per vedere se

135
00:08:21,657 --> 00:08:23,220
‫tutto

136
00:08:23,220 --> 00:08:27,490
‫questo funziona correttamente, disconnettiamoci dalla console.

137
00:08:27,490 --> 00:08:32,490
‫La distanza che longitudine e unità.

138
00:08:36,050 --> 00:08:39,113
‫E inviamo anche qui un messaggio generico, giusto

139
00:08:40,910 --> 00:08:44,273
‫per finire davvero il ciclo di richiesta di risposta.

140
00:08:45,240 --> 00:08:48,253
‫E per questo ovviamente è lo stesso di sempre.

141
00:08:52,368 --> 00:08:54,950
‫Quindi per ora lo stato è successo e, naturalmente,

142
00:08:54,950 --> 00:08:57,523
‫in seguito invieremo i dati restituiti dalla query.

143
00:08:59,930 --> 00:09:01,823
‫Quindi, in realtà, copiamo questo qui.

144
00:09:03,360 --> 00:09:05,610
‫Perché questo è già quello che vogliamo.

145
00:09:08,080 --> 00:09:13,060
‫Quindi, tornati a Postman, chiudiamo tutto questo.

146
00:09:13,060 --> 00:09:14,563
‫Questo non ci serve più.

147
00:09:18,720 --> 00:09:21,620
‫Va bene, non abbiamo nemmeno bisogno di essere

148
00:09:21,620 --> 00:09:23,883
‫registrati e non vogliamo nemmeno aggiornamenti.

149
00:09:26,952 --> 00:09:30,800
‫Comunque, dobbiamo anche ottenere questa parte che sono

150
00:09:30,800 --> 00:09:33,379
‫troppo pigro per scrivere.

151
00:09:33,379 --> 00:09:38,379
‫E quindi testiamolo ora.

152
00:09:39,800 --> 00:09:41,410
‫E questo non ha

153
00:09:41,410 --> 00:09:45,033
‫funzionato, e penso che questo l'abbiamo chiamato tour in realtà.

154
00:09:46,035 --> 00:09:46,868
‫Abbiamo?

155
00:09:47,830 --> 00:09:49,640
‫Quindi tour all'interno.

156
00:09:49,640 --> 00:09:53,065
‫Quindi non sono sicuro del motivo per

157
00:09:53,065 --> 00:09:58,065
‫cui ho scritto la distanza qui, risolviamolo rapidamente qui nei nostri esempi.

158
00:10:00,800 --> 00:10:03,513
‫E quindi, ovviamente, sono i tour all'interno.

159
00:10:06,120 --> 00:10:10,057
‫E questo non funziona ancora, quindi diamo un'occhiata e l'implementazione del

160
00:10:10,057 --> 00:10:12,007
‫percorso qui in realtà.

161
00:10:15,510 --> 00:10:17,993
‫Quindi qui abbiamo questo, e

162
00:10:17,993 --> 00:10:21,156
‫sì, naturalmente, questo non è affatto corretto.

163
00:10:21,156 --> 00:10:26,156
‫Quindi questo qui non dovrebbe essere all'interno del percorso del punto, ovviamente.

164
00:10:26,450 --> 00:10:29,363
‫Ma invece, dovrebbe essere nel metodo get.

165
00:10:34,030 --> 00:10:36,820
‫E quindi ora assomiglia molto di più a quello

166
00:10:36,820 --> 00:10:37,860
‫che abbiamo qui.

167
00:10:37,860 --> 00:10:40,163
‫Quindi dot route e poi dot get.

168
00:10:42,910 --> 00:10:45,963
‫Quindi un tentativo in meno e questa volta ha funzionato.

169
00:10:46,800 --> 00:10:49,200
‫E diamo un'occhiata alla

170
00:10:49,200 --> 00:10:51,634
‫console, e infatti, qui otteniamo la

171
00:10:51,634 --> 00:10:56,450
‫distanza che è specificata dalla latitudine alla longitudine e l'unità.

172
00:10:56,450 --> 00:10:58,690
‫Ottimo, quindi ora è il momento di

173
00:10:58,690 --> 00:11:00,673
‫scrivere effettivamente la query stessa.

174
00:11:01,610 --> 00:11:04,112
‫Ora una query geospaziale funziona in

175
00:11:04,112 --> 00:11:06,830
‫modo abbastanza simile a una normale query.

176
00:11:06,830 --> 00:11:10,677
‫Quindi scriveremo ancora che tour è uguale a tour. trovare, e, naturalmente,

177
00:11:17,400 --> 00:11:21,833
‫in attesa del risultato di questa promessa.

178
00:11:24,720 --> 00:11:28,120
‫E poi il vecchio gioco di contrassegnare tutto

179
00:11:28,120 --> 00:11:33,120
‫come asincrono e poi catturare l'asincrono e racchiudere la nostra funzione lì

180
00:11:34,890 --> 00:11:35,723
‫dentro.

181
00:11:37,910 --> 00:11:40,280
‫Quindi abbiamo tutti i

182
00:11:40,280 --> 00:11:44,266
‫tour qui inutilizzati, quindi andiamo avanti e modifichiamo

183
00:11:44,266 --> 00:11:46,240
‫subito l'oggetto risposta.

184
00:11:46,240 --> 00:11:51,120
‫Quindi dati, e ora ricorda come li abbiamo chiamati dati.

185
00:11:52,610 --> 00:11:54,803
‫E poi tour.

186
00:11:58,970 --> 00:12:01,293
‫Ok, e tutto ciò che dobbiamo fare è

187
00:12:01,293 --> 00:12:03,193
‫specificare o filtrare l'oggetto qui.

188
00:12:04,660 --> 00:12:06,770
‫Quindi ricorda che vogliamo fondamentalmente eseguire

189
00:12:06,770 --> 00:12:09,010
‫una query per la posizione di partenza,

190
00:12:09,010 --> 00:12:11,316
‫perché il campo della posizione di partenza

191
00:12:11,316 --> 00:12:15,240
‫è ciò che contiene il punto geospaziale in cui inizia ogni tour.

192
00:12:15,240 --> 00:12:17,683
‫E quindi è esattamente quello che stiamo cercando.

193
00:12:18,890 --> 00:12:23,023
‫Quindi, inizia la posizione e ora dobbiamo specificare

194
00:12:23,023 --> 00:12:25,900
‫il valore che stiamo cercando.

195
00:12:25,900 --> 00:12:28,389
‫E per questo, ora useremo un operatore

196
00:12:28,389 --> 00:12:30,203
‫geospaziale chiamato geo inside.

197
00:12:31,920 --> 00:12:34,120
‫Come sempre, dobbiamo specificare

198
00:12:34,120 --> 00:12:36,900
‫l'oggetto, e poi qui, dove prima

199
00:12:36,900 --> 00:12:39,860
‫avremmo usato come un operatore matematico come

200
00:12:39,860 --> 00:12:44,163
‫maggiore di, questa volta usiamo un operatore geospaziale come questo.

201
00:12:45,640 --> 00:12:49,950
‫Geo inside, e questo operatore fa esattamente quello che dice.

202
00:12:49,950 --> 00:12:53,740
‫Fondamentalmente trova documenti all'interno di una certa geometria.

203
00:12:53,740 --> 00:12:58,040
‫E quella geometria è ciò che dobbiamo definire come prossimo passo.

204
00:12:58,040 --> 00:12:59,600
‫Quindi vogliamo trovare

205
00:12:59,600 --> 00:13:03,440
‫documenti, ma dove vogliamo effettivamente trovare questi documenti?

206
00:13:03,440 --> 00:13:06,792
‫Bene, vogliamo trovarli all'interno di una sfera che

207
00:13:06,792 --> 00:13:09,780
‫inizia in questo punto che abbiamo definito

208
00:13:09,780 --> 00:13:13,680
‫e che ha un raggio della distanza che abbiamo definito.

209
00:13:13,680 --> 00:13:16,023
‫Quindi di nuovo con il nostro esempio a

210
00:13:17,029 --> 00:13:18,646
‫Los Angeles, se specifichi

211
00:13:18,646 --> 00:13:21,660
‫la distanza di 250 miglia, significa che vuoi trovare tutti

212
00:13:21,660 --> 00:13:26,150
‫i documenti del tour all'interno di una sfera che ha un raggio di 250 miglia.

213
00:13:26,150 --> 00:13:28,190
‫Ok, ha senso?

214
00:13:28,190 --> 00:13:30,313
‫E quindi ora dobbiamo

215
00:13:30,313 --> 00:13:33,810
‫passare le informazioni qui nell'operatore geo all'interno, ok?

216
00:13:33,810 --> 00:13:36,563
‫E lo facciamo definendo una sfera centrale.

217
00:13:40,160 --> 00:13:42,793
‫Ok, e di nuovo, so che sembra

218
00:13:42,793 --> 00:13:47,380
‫piuttosto confuso, ma è per questo che lo sto spiegando qui passo dopo passo.

219
00:13:47,380 --> 00:13:49,150
‫E tra un

220
00:13:49,150 --> 00:13:51,080
‫secondo, daremo un'occhiata alla documentazione.

221
00:13:51,080 --> 00:13:53,307
‫Quindi l'operatore della sfera

222
00:13:53,307 --> 00:13:56,900
‫centrale prende un array delle coordinate e del raggio.

223
00:13:56,900 --> 00:13:59,501
‫E formattiamo il codice qui almeno

224
00:13:59,501 --> 00:14:02,770
‫per farlo sembrare un po' più semplice, ok?

225
00:14:02,770 --> 00:14:05,558
‫Beh, sembra lo stesso, ma comunque è

226
00:14:05,558 --> 00:14:08,020
‫così che trovi le coordinate qui.

227
00:14:08,020 --> 00:14:10,900
‫E per questo, abbiamo bisogno di

228
00:14:10,900 --> 00:14:14,890
‫un altro array, e poi della longitudine e della latitudine.

229
00:14:14,890 --> 00:14:15,723
‫E questo è vero.

230
00:14:15,723 --> 00:14:17,984
‫Devi prima definire sempre la

231
00:14:17,984 --> 00:14:21,040
‫longitudine e poi la latitudine, il che è un

232
00:14:21,040 --> 00:14:24,366
‫po' controintuitivo perché di solito le coppie di coordinate sono

233
00:14:24,366 --> 00:14:27,760
‫sempre specificate con prima la latitudine e prima la longitudine.

234
00:14:27,760 --> 00:14:30,298
‫Penso di averlo menzionato prima che

235
00:14:30,298 --> 00:14:33,590
‫in geo adiacente, per qualche motivo funziona così.

236
00:14:33,590 --> 00:14:35,430
‫Quindi quello è il centro della sfera.

237
00:14:35,430 --> 00:14:36,263
‫Ora dobbiamo specificare il suo raggio.

238
00:14:36,263 --> 00:14:41,130
‫Ora qui in realtà non passiamo in lontananza, ma

239
00:14:41,130 --> 00:14:45,100
‫invece si aspetta un raggio in un'unità speciale

240
00:14:45,100 --> 00:14:46,600
‫chiamata radianti.

241
00:14:46,600 --> 00:14:48,780
‫Quindi fammi mettere la variabile del

242
00:14:48,780 --> 00:14:51,633
‫raggio qui, e poi in un secondo lo definiremo.

243
00:14:56,190 --> 00:15:00,820
‫Quindi ora definiamo effettivamente il raggio.

244
00:15:00,820 --> 00:15:03,780
‫Quindi, di nuovo, il raggio è fondamentalmente

245
00:15:03,780 --> 00:15:06,000
‫la distanza che vogliamo avere

246
00:15:06,000 --> 00:15:09,500
‫come raggio, ma convertita in un'unità speciale chiamata radianti.

247
00:15:09,500 --> 00:15:11,441
‫E per ottenere i radianti,

248
00:15:11,441 --> 00:15:14,217
‫dobbiamo dividere la nostra distanza per il

249
00:15:14,217 --> 00:15:15,940
‫raggio della terra.

250
00:15:15,940 --> 00:15:20,340
‫Quindi sembra un po' folle, ma in realtà è così che funziona.

251
00:15:20,340 --> 00:15:23,532
‫Ok, ora dobbiamo davvero prendere in considerazione

252
00:15:23,532 --> 00:15:27,313
‫le nostre unità qui, perché ovviamente il raggio della

253
00:15:27,313 --> 00:15:31,180
‫terra è diverso in miglia e poi in chilometri.

254
00:15:31,180 --> 00:15:33,756
‫Quindi ora facciamo una svolta

255
00:15:33,756 --> 00:15:38,756
‫di maggiore qui e diciamo che se l'unità è uguale a miglia,

256
00:15:40,074 --> 00:15:43,453
‫allora il risultato qui dovrebbe essere la distanza.

257
00:15:44,510 --> 00:15:49,290
‫Quindi in pratica il nostro raggio originale diviso per 3963. 2.

258
00:15:52,930 --> 00:15:55,383
‫Ok, di nuovo, questo è il raggio della Terra in miglia.

259
00:15:55,383 --> 00:15:59,217
‫Ok, altrimenti supporremo che sia

260
00:15:59,217 --> 00:16:01,663
‫un chilometro.

261
00:16:01,663 --> 00:16:05,941
‫E quindi se sono chilometri, allora è la distanza

262
00:16:05,941 --> 00:16:10,157
‫divisa per 6.378. 1 chilometri.

263
00:16:14,210 --> 00:16:19,210
‫Va bene, di nuovo, questo tipo di conversione folle qui è necessaria

264
00:16:19,900 --> 00:16:21,819
‫perché normalmente si aspetterebbe

265
00:16:21,819 --> 00:16:26,117
‫che il raggio della nostra sfera sia in radianti.

266
00:16:26,117 --> 00:16:28,292
‫E i radianti che otteniamo dividendo

267
00:16:28,292 --> 00:16:30,593
‫la distanza per il raggio della Terra.

268
00:16:31,450 --> 00:16:34,173
‫Ottimo, quindi siamo quasi pronti per testarlo ora.

269
00:16:34,173 --> 00:16:39,173
‫Aggiungiamo semplicemente la proprietà dei risultati che avevamo.

270
00:16:43,530 --> 00:16:46,060
‫Quindi con il numero di risultati

271
00:16:46,060 --> 00:16:48,057
‫fondamentalmente, e poi un'altra

272
00:16:48,057 --> 00:16:50,918
‫cosa molto importante è che in realtà

273
00:16:50,918 --> 00:16:54,845
‫per essere in grado di fare solo query di base,

274
00:16:54,845 --> 00:16:57,664
‫dobbiamo prima attribuire un indice al campo

275
00:16:57,664 --> 00:17:01,440
‫in cui i dati geospaziali che stiamo cercando sono immagazzinato.

276
00:17:01,440 --> 00:17:05,700
‫Quindi in questo caso, dobbiamo aggiungere un indice per iniziare la posizione.

277
00:17:05,700 --> 00:17:08,503
‫Quindi facciamolo qui nel modello del tour.

278
00:17:10,310 --> 00:17:14,820
‫Quindi quaggiù, abbiamo bisogno di un altro indice.

279
00:17:14,820 --> 00:17:17,853
‫Schema del giro. indice.

280
00:17:19,185 --> 00:17:24,185
‫Posizione iniziale, ma ora in realtà non la imposteremo su uno o

281
00:17:26,070 --> 00:17:28,530
‫meno uno, perché questa volta è

282
00:17:28,530 --> 00:17:30,750
‫un indice diverso di cui

283
00:17:30,750 --> 00:17:31,940
‫abbiamo bisogno.

284
00:17:31,940 --> 00:17:35,045
‫Quindi, per i dati geospaziali, questo indice deve essere

285
00:17:35,045 --> 00:17:39,160
‫un indice di sfera 2D se i dati descrivono punti reali

286
00:17:39,160 --> 00:17:41,314
‫sulla Terra come una sfera.

287
00:17:41,314 --> 00:17:45,276
‫O invece, possiamo anche usare un indice 2D se

288
00:17:45,276 --> 00:17:49,660
‫stiamo usando solo punti immaginari su un semplice piano bidimensionale.

289
00:17:49,660 --> 00:17:52,210
‫Ora, in questo caso, ovviamente, stiamo

290
00:17:52,210 --> 00:17:54,411
‫parlando di punti reali

291
00:17:54,411 --> 00:17:58,805
‫sulla superficie terrestre, quindi useremo un indice di sfera 2D qui.

292
00:17:58,805 --> 00:18:03,805
‫Quindi una sfera 2D come questa.

293
00:18:04,000 --> 00:18:07,253
‫Ok, quindi in pratica stiamo dicendo che

294
00:18:07,253 --> 00:18:12,090
‫questa posizione iniziale qui dovrebbe essere indicizzata a una sfera 2D.

295
00:18:12,090 --> 00:18:16,510
‫Quindi una sfera simile alla Terra dove si trovano tutti i nostri dati.

296
00:18:16,510 --> 00:18:18,906
‫Fantastico, e con questo dovremmo

297
00:18:18,906 --> 00:18:22,283
‫essere pronti per testare la nostra nuova via.

298
00:18:23,520 --> 00:18:26,839
‫Ok, aumentiamo solo un po'

299
00:18:26,839 --> 00:18:31,839
‫questo raggio qui di 400 miglia, quindi vediamo cosa otteniamo.

300
00:18:32,260 --> 00:18:34,609
‫Bene, otteniamo questo errore dall'aspetto strano

301
00:18:34,609 --> 00:18:37,282
‫e non sono davvero sicuro di cosa sia.

302
00:18:37,282 --> 00:18:40,290
‫E così, diamo un'occhiata.

303
00:18:40,290 --> 00:18:43,330
‫E probabilmente c'è qualcosa di sbagliato qui con il raggio,

304
00:18:43,330 --> 00:18:46,810
‫ma in realtà questo è un ottimo momento per testare il nostro debugger.

305
00:18:46,810 --> 00:18:49,130
‫Quindi te l'ho mostrato molto tempo fa,

306
00:18:49,130 --> 00:18:51,700
‫ma questo è un buon caso d'uso per

307
00:18:51,700 --> 00:18:53,743
‫dare nuovamente un'occhiata al debugger.

308
00:18:54,950 --> 00:18:57,620
‫Quindi penso che abbiamo uno script NPM per

309
00:18:57,620 --> 00:18:59,140
‫questo, si chiama debug.

310
00:18:59,140 --> 00:19:04,140
‫Quindi dobbiamo conoscere questo processo e quindi dire che NPM esegue il debug.

311
00:19:07,460 --> 00:19:08,293
‫Va bene?

312
00:19:09,570 --> 00:19:12,818
‫Quindi questo dovrebbe aprire questa bella finestra.

313
00:19:12,818 --> 00:19:17,233
‫E chiudiamo qui tutti questi file.

314
00:19:18,560 --> 00:19:21,898
‫Ok, quindi siamo nei nostri controller.

315
00:19:21,898 --> 00:19:23,673
‫Controllore del giro.

316
00:19:24,680 --> 00:19:29,590
‫E quindi ora, impostiamo un punto di interruzione proprio qui.

317
00:19:29,590 --> 00:19:31,940
‫Ok, perché a questo punto avremo

318
00:19:31,940 --> 00:19:33,998
‫tutte le nostre variabili definite,

319
00:19:33,998 --> 00:19:38,480
‫quindi possiamo dare un'occhiata ai loro valori per vedere cosa sta succedendo.

320
00:19:38,480 --> 00:19:40,877
‫Quindi, ovviamente, avremmo potuto farlo con

321
00:19:40,877 --> 00:19:43,343
‫una semplice console. log, ma in

322
00:19:43,343 --> 00:19:45,544
‫alcune situazioni in cui si verificano

323
00:19:45,544 --> 00:19:48,399
‫molte cose ed è anche utile utilizzare il debugger.

324
00:19:48,399 --> 00:19:50,777
‫Quindi dobbiamo inviare la nostra richiesta.

325
00:19:50,777 --> 00:19:54,750
‫E ora siamo nel debugger al nostro punto di interruzione.

326
00:19:54,750 --> 00:19:56,240
‫E così, a questo punto,

327
00:19:56,240 --> 00:19:58,280
‫il nostro codice si è davvero fermato.

328
00:19:58,280 --> 00:20:00,187
‫E qui possiamo vedere che

329
00:20:00,187 --> 00:20:02,953
‫in realtà tutte le nostre variabili sembrano essere definite.

330
00:20:04,130 --> 00:20:07,280
‫Diamo un'occhiata a questo qui in locale.

331
00:20:07,280 --> 00:20:09,153
‫Quindi abbiamo una distanza,

332
00:20:09,153 --> 00:20:13,360
‫abbiamo la latitudine, la longitudine e anche il raggio.

333
00:20:13,360 --> 00:20:14,916
‫Quindi continuiamo qui.

334
00:20:14,916 --> 00:20:16,493
‫Quindi siamo passati direttamente

335
00:20:16,493 --> 00:20:21,493
‫alla riga successiva perché questo if here non è entrato nel blocco if.

336
00:20:24,350 --> 00:20:27,400
‫E quindi ora esegue tutte queste funzioni.

337
00:20:27,400 --> 00:20:29,600
‫Ma in realtà usciamo da

338
00:20:29,600 --> 00:20:32,680
‫loro, e ora otteniamo effettivamente tour indefiniti.

339
00:20:32,680 --> 00:20:36,010
‫Quindi, se ora continuiamo così,

340
00:20:36,010 --> 00:20:40,690
‫probabilmente otterremo di nuovo lo stesso errore, giusto?

341
00:20:40,690 --> 00:20:43,160
‫E così in effetti, lo facciamo.

342
00:20:43,160 --> 00:20:46,043
‫Quindi deve essere qualcosa qui

343
00:20:46,043 --> 00:20:50,894
‫in questa riga, diciamo, e infatti, penso di aver trovato l'errore.

344
00:20:50,894 --> 00:20:53,820
‫Quindi ora è così che scrivi sfera.

345
00:20:53,820 --> 00:20:57,096
‫Quindi la sfera è più simile a questa, giusto?

346
00:20:57,096 --> 00:21:01,963
‫Quindi spero e credo che in realtà questo sia stato l'errore.

347
00:21:04,100 --> 00:21:07,390
‫Quindi chiudiamo effettivamente il debugger qui e

348
00:21:07,390 --> 00:21:10,718
‫alleviamoci, e in realtà questo dovrebbe aggiornare il

349
00:21:10,718 --> 00:21:12,593
‫mio codice qui.

350
00:21:13,690 --> 00:21:15,913
‫Vediamo, e in realtà non è stato così.

351
00:21:17,180 --> 00:21:21,980
‫Non sono sicuro del perché, ma va bene.

352
00:21:21,980 --> 00:21:23,373
‫Eseguiamo questo di nuovo qui.

353
00:21:24,230 --> 00:21:27,350
‫Non questo comando, va

354
00:21:27,350 --> 00:21:30,623
‫bene comunque, avviamo solo NPM.

355
00:21:34,210 --> 00:21:35,463
‫Chiudi tutto questo.

356
00:21:36,970 --> 00:21:38,293
‫E ora riprova.

357
00:21:40,500 --> 00:21:44,080
‫Ah, e ora otteniamo dei risultati reali qui, bello.

358
00:21:44,080 --> 00:21:47,800
‫Quindi mi dice che questi tour qui sono in

359
00:21:47,800 --> 00:21:51,170
‫quella distanza di 400 miglia che è specificata.

360
00:21:51,170 --> 00:21:54,550
‫Ma come possiamo davvero sapere che è vero?

361
00:21:54,550 --> 00:21:57,827
‫Beh, in realtà possiamo usare la bussola per questo.

362
00:21:57,827 --> 00:22:01,784
‫Quindi se apriamo la bussola qui, abbiamo qualcosa di veramente

363
00:22:01,784 --> 00:22:04,090
‫carino che è questo schema.

364
00:22:04,090 --> 00:22:06,660
‫Quindi facciamolo qui nei tour.

365
00:22:06,660 --> 00:22:09,818
‫E così ora possiamo venire qui allo schema e

366
00:22:09,818 --> 00:22:11,773
‫poi analizzare questo schema.

367
00:22:12,830 --> 00:22:15,456
‫Quindi analizza lo schema, e ora qui abbiamo un

368
00:22:15,456 --> 00:22:17,893
‫bel riassunto per tutti i nostri campi.

369
00:22:19,648 --> 00:22:20,893
‫Ad esempio,

370
00:22:20,893 --> 00:22:23,477
‫vedi che la difficoltà è facile

371
00:22:23,477 --> 00:22:28,477
‫nel 50% dei documenti, media nel 30% e difficile nel 20%.

372
00:22:28,480 --> 00:22:29,990
‫Vedi anche queste durate.

373
00:22:29,990 --> 00:22:34,880
‫Quindi nel 20% sono cinque, e anche nove è anche più popolare

374
00:22:34,880 --> 00:22:36,643
‫delle altre durate.

375
00:22:38,030 --> 00:22:41,491
‫Ora quello che mi interessa davvero qui sono le posizioni.

376
00:22:41,491 --> 00:22:46,283
‫O in realtà le posizioni di partenza, quindi sono qui.

377
00:22:47,400 --> 00:22:49,801
‫E ora normalmente, vedresti una mappa qui.

378
00:22:49,801 --> 00:22:53,217
‫Ma in questo momento non c'è una mappa perché abbiamo

379
00:22:53,217 --> 00:22:56,816
‫un documento in questo momento che non ha una posizione di partenza.

380
00:22:56,816 --> 00:22:58,648
‫Quindi, affinché

381
00:22:58,648 --> 00:23:02,616
‫funzioni correttamente, dobbiamo sbarazzarci di quel documento.

382
00:23:02,616 --> 00:23:05,046
‫Quindi è stato uno di questi documenti di

383
00:23:05,046 --> 00:23:08,994
‫prova che abbiamo creato, ma di cui ora in realtà non abbiamo più bisogno.

384
00:23:08,994 --> 00:23:12,330
‫Quindi fammi vedere se viene visualizzato qui.

385
00:23:12,330 --> 00:23:14,065
‫Forse è alla fine.

386
00:23:14,065 --> 00:23:16,452
‫Quindi sì, è questo nuovo tour di prova.

387
00:23:16,452 --> 00:23:19,681
‫Eliminiamolo.

388
00:23:19,681 --> 00:23:23,310
‫Tornando al nostro schema, analizziamolo di nuovo.

389
00:23:23,310 --> 00:23:28,310
‫Ok, quindi qui abbiamo le applicazioni stellari.

390
00:23:31,650 --> 00:23:35,760
‫E qui vedi già la mappa, quindi è fantastico, giusto?

391
00:23:35,760 --> 00:23:38,660
‫Questa è davvero una caratteristica utile.

392
00:23:38,660 --> 00:23:40,485
‫Quindi dovremmo avere nove punti qui.

393
00:23:40,485 --> 00:23:44,880
‫Quindi uno, due, tre, quattro, cinque, sei, sette, otto,

394
00:23:44,880 --> 00:23:47,240
‫uno quassù, il nono.

395
00:23:47,240 --> 00:23:50,313
‫Quindi probabilmente questo è per vedere l'aurora boreale.

396
00:23:50,313 --> 00:23:51,940
‫Destra?

397
00:23:51,940 --> 00:23:54,880
‫E ora qui possiamo effettivamente replicare quella query

398
00:23:54,880 --> 00:23:56,583
‫usando questa interfaccia grafica.

399
00:23:57,780 --> 00:24:00,960
‫Quindi veniamo a Los Angeles e approssimativamente al

400
00:24:00,960 --> 00:24:03,210
‫punto in cui eravamo.

401
00:24:03,210 --> 00:24:05,920
‫Quindi diciamo qui, e sto rimpicciolendo un po' solo

402
00:24:05,920 --> 00:24:07,840
‫per dare un po' più

403
00:24:07,840 --> 00:24:11,120
‫di spazio, ma ora possiamo premere MAIUSC e quindi trascinare.

404
00:24:11,120 --> 00:24:12,783
‫Quindi proprio come dice quaggiù.

405
00:24:13,810 --> 00:24:16,340
‫Quindi metti la mano dove era il nostro punto, quindi

406
00:24:16,340 --> 00:24:18,727
‫praticamente da qualche parte qui a Los Angeles.

407
00:24:18,727 --> 00:24:22,750
‫Ora sposta, quindi trascina, ora tutto a posto.

408
00:24:22,750 --> 00:24:25,410
‫E così puoi vedere che quando iniziamo

409
00:24:25,410 --> 00:24:28,132
‫ad aumentare questa sfera, ci avviciniamo sempre di

410
00:24:28,132 --> 00:24:32,053
‫più ad alcuni di questi punti qui che diventano gialli, ok?

411
00:24:32,053 --> 00:24:37,053
‫E credevo che il nostro raggio fosse qualcosa come 0. 1, o

412
00:24:37,232 --> 00:24:42,232
‫qualcosa del genere, diciamo.

413
00:24:42,320 --> 00:24:45,540
‫E quindi vedete che in realtà sono tre documenti,

414
00:24:45,540 --> 00:24:48,740
‫quindi tre tour tutti all'interno di questa sfera

415
00:24:48,740 --> 00:24:51,010
‫che abbiamo appena creato, ok?

416
00:24:51,010 --> 00:24:54,380
‫Quindi abbiamo questa sfera con il raggio di 0. 1, come puoi

417
00:24:54,380 --> 00:24:56,060
‫vedere qui.

418
00:24:56,060 --> 00:24:58,583
‫E quindi in effetti questa query sembra

419
00:24:58,583 --> 00:25:02,260
‫proprio quella che abbiamo appena riempito di codice nella nostra funzione

420
00:25:02,260 --> 00:25:03,218
‫controller, giusto?

421
00:25:03,218 --> 00:25:07,500
‫Quindi otteniamo questi tre documenti che sono contrassegnati come arancioni,

422
00:25:07,500 --> 00:25:12,177
‫quindi ora premiamo di nuovo analizza qui, e quindi ora

423
00:25:12,177 --> 00:25:15,853
‫la nostra query ha restituito tre documenti.

424
00:25:17,100 --> 00:25:19,920
‫Quindi vediamo i nomi in realtà.

425
00:25:19,920 --> 00:25:21,731
‫Allora dov'è?

426
00:25:21,731 --> 00:25:24,171
‫Per lo sportivo, il degustatore

427
00:25:24,171 --> 00:25:26,130
‫e il camperista.

428
00:25:26,130 --> 00:25:28,670
‫E i tre tour che abbiamo fatto

429
00:25:28,670 --> 00:25:32,440
‫a Postman, quindi per l'API, dovrebbero essere esattamente gli stessi tre.

430
00:25:32,440 --> 00:25:35,743
‫Quindi l'amante dello sport, il degustatore di vino e il camperista.

431
00:25:39,440 --> 00:25:43,853
‫Quindi parcheggia il camper, allora hai, l'amante dello sport,

432
00:25:45,806 --> 00:25:47,643
‫e l'ultimo

433
00:25:51,168 --> 00:25:54,420
‫che ricorda dovrebbe essere l'assaggiatore, e

434
00:25:54,420 --> 00:25:56,450
‫in effetti lo è.

435
00:25:56,450 --> 00:25:58,467
‫Fantastico, è davvero fantastico.

436
00:25:58,467 --> 00:26:02,706
‫Ora riduciamo questo qui a 200, vediamo

437
00:26:02,706 --> 00:26:06,214
‫quanti risultati ottieni poi, e in

438
00:26:06,214 --> 00:26:09,293
‫effetti è solo uno.

439
00:26:10,150 --> 00:26:12,635
‫Quindi torniamo alla bussola qui.

440
00:26:12,635 --> 00:26:16,510
‫Cancelliamo questa query qui.

441
00:26:16,510 --> 00:26:19,159
‫Quindi, se torniamo a tutti i nostri

442
00:26:19,159 --> 00:26:21,473
‫documenti, dai un'occhiata alla nostra mappa.

443
00:26:23,200 --> 00:26:28,150
‫E quindi ecco LA, ok.

444
00:26:28,150 --> 00:26:30,803
‫È un altro raggio dovrebbe essere qualcosa come 0. 05.

445
00:26:31,861 --> 00:26:34,970
‫Ora qualcosa del genere, diciamo, e

446
00:26:34,970 --> 00:26:38,125
‫quindi in effetti abbiamo solo questo tour che

447
00:26:38,125 --> 00:26:42,209
‫credo sia il degustatore di vino o qualcosa del genere.

448
00:26:42,209 --> 00:26:44,184
‫Sì, dobbiamo analizzare questo.

449
00:26:44,184 --> 00:26:49,184
‫Quindi oh, in realtà è l'amante dello sport.

450
00:26:51,650 --> 00:26:54,233
‫E quindi vediamo se è quello che abbiamo qui.

451
00:26:56,210 --> 00:26:57,800
‫E infatti lo è.

452
00:26:57,800 --> 00:27:00,211
‫Quindi è l'amante dello sport, e quindi

453
00:27:00,211 --> 00:27:04,910
‫questo è l'unico tour che si trova nel raggio di 200 miglia da Los Angeles.

454
00:27:04,910 --> 00:27:06,000
‫Fantastico.

455
00:27:06,000 --> 00:27:09,883
‫Quindi questo lo trovo davvero molto eccitante, davvero fantastico.

456
00:27:11,860 --> 00:27:14,036
‫Lascia che ti mostri un'altra cosa

457
00:27:14,036 --> 00:27:18,303
‫molto rapidamente, così puoi anche vedere tutte le nostre posizioni sulla mappa.

458
00:27:19,200 --> 00:27:20,823
‫Quindi è qui.

459
00:27:22,800 --> 00:27:25,818
‫E quindi queste sono le posizioni

460
00:27:25,818 --> 00:27:30,280
‫di tutti i tour, quindi quelle che sono memorizzate nella posizione.

461
00:27:30,280 --> 00:27:32,830
‫Quindi abbiamo le coordinate e abbiamo anche i

462
00:27:32,830 --> 00:27:35,293
‫giorni, le descrizioni e l'ora, ok?

463
00:27:38,067 --> 00:27:41,266
‫E ovviamente la nostra domanda non riguarda tutto questo qui.

464
00:27:41,266 --> 00:27:43,516
‫Per quella query ci interessa

465
00:27:43,516 --> 00:27:46,583
‫davvero solo la posizione delle stelle, ma volevo

466
00:27:46,583 --> 00:27:50,890
‫comunque mostrarti questa mappa dove possiamo effettivamente vedere anche tutte le posizioni.

467
00:27:50,890 --> 00:27:54,251
‫Ok, quindi c'è davvero un enorme potenziale per l'utilizzo

468
00:27:54,251 --> 00:27:56,770
‫dei dati geospaziali con MongoDB.

469
00:27:56,770 --> 00:27:59,870
‫Le possibilità sono davvero infinite per eseguire

470
00:27:59,870 --> 00:28:02,010
‫query geospaziali come questa.

471
00:28:02,010 --> 00:28:03,735
‫E in realtà volevo

472
00:28:03,735 --> 00:28:06,637
‫mostrarti se abbiamo altri operatori geospaziali in MongoDB.

473
00:28:06,637 --> 00:28:10,603
‫Quindi diamo un'occhiata alla documentazione qui di nuovo.

474
00:28:11,931 --> 00:28:14,569
‫Quindi torniamo qui di nuovo

475
00:28:14,569 --> 00:28:19,569
‫al riferimento e agli operatori e agli operatori di query.

476
00:28:21,970 --> 00:28:25,530
‫E penso che sia da qualche parte quaggiù, sì.

477
00:28:25,530 --> 00:28:27,583
‫Quindi qui abbiamo l'operatore geospaziale.

478
00:28:27,583 --> 00:28:31,020
‫E vedete che questo è quello che abbiamo usato,

479
00:28:31,020 --> 00:28:33,599
‫quindi quello che seleziona le geometrie

480
00:28:33,599 --> 00:28:36,190
‫all'interno di una geometria geo-adiacente di delimitazione.

481
00:28:36,190 --> 00:28:39,220
‫Sembra un po' strano, ma questa geometria

482
00:28:39,220 --> 00:28:42,546
‫geo-adiacente delimitante è quella sfera che abbiamo definito

483
00:28:42,546 --> 00:28:44,570
‫nel nostro codice, giusto?

484
00:28:44,570 --> 00:28:46,820
‫Ora avremmo anche potuto usare lo snear qui,

485
00:28:46,820 --> 00:28:48,373
‫diamo un'occhiata a questo.

486
00:28:49,560 --> 00:28:51,833
‫E quindi sarebbe sembrato un po' diverso.

487
00:28:51,833 --> 00:28:54,830
‫Quindi in questo caso, definiremmo il punto usando la

488
00:28:54,830 --> 00:28:57,600
‫longitudine e la latitudine che abbiamo ottenuto, e

489
00:28:57,600 --> 00:28:59,498
‫quindi dovremmo specificare la distanza

490
00:28:59,498 --> 00:29:01,223
‫massima qui in metri.

491
00:29:01,223 --> 00:29:03,342
‫E poi in questo caso, non

492
00:29:03,342 --> 00:29:06,164
‫avevamo bisogno di fare la conversione in radianti.

493
00:29:06,164 --> 00:29:07,890
‫Ok, la cosa bella di

494
00:29:07,890 --> 00:29:10,188
‫questo è che possiamo specificare una distanza minima.

495
00:29:10,188 --> 00:29:12,782
‫E quindi con questo, potremmo ad esempio

496
00:29:12,782 --> 00:29:16,779
‫escludere i tour che distano solo 50 miglia dal nostro punto

497
00:29:16,779 --> 00:29:18,040
‫di partenza, ok?

498
00:29:18,040 --> 00:29:20,270
‫Quindi, se un giorno avrai bisogno

499
00:29:20,270 --> 00:29:23,993
‫di qualcosa del genere, puoi sempre utilizzare anche il nuovo operatore qui.

500
00:29:25,071 --> 00:29:26,503
‫Ok, fantastico.

501
00:29:27,916 --> 00:29:30,468
‫Quindi, con questa query geospaziale che abbiamo

502
00:29:30,468 --> 00:29:33,600
‫appena definito qui, abbiamo sostanzialmente trovato documenti che si trovano

503
00:29:33,600 --> 00:29:36,401
‫entro una certa distanza dal nostro punto di partenza.

504
00:29:36,401 --> 00:29:39,500
‫E se volessimo davvero conoscere le distanze

505
00:29:39,500 --> 00:29:43,600
‫esatte di tutti i tour fino a quel punto di partenza?

506
00:29:43,600 --> 00:29:46,300
‫Bene, questo è esattamente quello che calcoleremo

507
00:29:46,300 --> 00:29:47,683
‫nella prossima lezione.

