1 00:00:00,000 --> 00:00:11,712 2 00:00:11,712 --> 00:00:12,850 >> ROB BOWDEN: Hei. 3 00:00:12,850 --> 00:00:13,780 Jeg er Rob. 4 00:00:13,780 --> 00:00:19,500 Og jeg håper du er klar til å plukke opp hva Jeg faller av eller sette ned, 5 00:00:19,500 --> 00:00:22,230 eller la oss komme i gang. 6 00:00:22,230 --> 00:00:25,040 Så første vi må å gjøre er å plukke opp. 7 00:00:25,040 --> 00:00:29,370 Nå, plukke opp kommer til å bli fjernet passasjerenes ikoner fra Google 8 00:00:29,370 --> 00:00:32,759 kart nederst i høyre hjørne, og fra Google Earth i sentrum av 9 00:00:32,759 --> 00:00:33,970 skjermen. 10 00:00:33,970 --> 00:00:37,180 Så for å fjerne de ikoner, må vi ha 11 00:00:37,180 --> 00:00:39,040 referanser til dem et sted. 12 00:00:39,040 --> 00:00:43,680 Men i dag, den befolker funksjon bare blir kvitt dem. 13 00:00:43,680 --> 00:00:48,140 Så vi er nødt til å endre befolke å ​​holde dem rundt. 14 00:00:48,140 --> 00:00:53,440 >> Nå første vi får se er at vi har en global passasjerer array. 15 00:00:53,440 --> 00:00:57,710 Og så vi kommer til å bruke den globale sin passasjerer array i befolker. 16 00:00:57,710 --> 00:01:03,230 I befolker, ser vi at vi looping løpet av alle våre passasjerer. 17 00:01:03,230 --> 00:01:10,420 Og det er denne sløyfen som er å skape den legg merke til Google Earth og 18 00:01:10,420 --> 00:01:12,540 markør for Google Map. 19 00:01:12,540 --> 00:01:16,420 Og så nå vår modifikasjon å befolke er å være her. 20 00:01:16,420 --> 00:01:21,760 Så vi legger videre til våre passasjerer ' matrise dette objektet som holder 21 00:01:21,760 --> 00:01:26,480 rundt markøren og plasser merket vi bare laget sammen med huset og 22 00:01:26,480 --> 00:01:28,460 navnet på passasjeren. 23 00:01:28,460 --> 00:01:30,560 >> Så det er det for befolker. 24 00:01:30,560 --> 00:01:33,210 Nå må vi se på Pick Up. 25 00:01:33,210 --> 00:01:38,540 Så i Pick Up, er vi nok en gang kommer til å iterere over alle våre passasjerer. 26 00:01:38,540 --> 00:01:41,340 Men nå er det vår globale passasjerer array. 27 00:01:41,340 --> 00:01:46,150 Og her vi ser at vel, har vi allerede plukket opp denne passasjer? 28 00:01:46,150 --> 00:01:50,030 Siden hvis vi har plukket opp denne passasjer, ser vi til slutt at 29 00:01:50,030 --> 00:01:55,240 vi kommer til å sette markøren og sted mark til null, siden de er ikke 30 00:01:55,240 --> 00:01:56,930 lenger i Google-kartet. 31 00:01:56,930 --> 00:02:00,920 >> Så hvis vi allerede har plukket opp denne passasjer da vi bare kommer til å 32 00:02:00,920 --> 00:02:02,920 fortsette til den neste passasjer. 33 00:02:02,920 --> 00:02:07,380 Else, sjekker vi for å se om dette passasjerens hus er innvendig 34 00:02:07,380 --> 00:02:08,590 husets array. 35 00:02:08,590 --> 00:02:11,900 Dette er den sjekken vi må sørge for at at vi ikke plukke opp freshman som 36 00:02:11,900 --> 00:02:13,180 spec sier. 37 00:02:13,180 --> 00:02:15,920 Så hvis passasjeren er en førsteårsstudent, vi kommer til å 38 00:02:15,920 --> 00:02:18,190 fortsette til den neste passasjer. 39 00:02:18,190 --> 00:02:21,720 >> Når vi har bekreftet at dette er et passasjer vi skal plukke opp, 40 00:02:21,720 --> 00:02:25,340 vi nå kommer til å sjekke breddegrad og lengde av passasjeren og se 41 00:02:25,340 --> 00:02:27,760 hvis det er innenfor 15 fot av romfergen. 42 00:02:27,760 --> 00:02:31,720 Hvis det er tilfelle, vi faktisk ønsker for å plukke opp denne passasjer. 43 00:02:31,720 --> 00:02:35,890 Så vi integrere over alt av setene i vår shuttle ønsker å se om 44 00:02:35,890 --> 00:02:38,110 det er en ledig flekk for passasjeren. 45 00:02:38,110 --> 00:02:41,540 Hvis ett av setene er null, det er en tilgjengelig sted. 46 00:02:41,540 --> 00:02:45,140 Så vi legger passasjeren til setet. 47 00:02:45,140 --> 00:02:48,760 Vi husker at vi plukket opp passasjer, slik at til slutt, kan vi 48 00:02:48,760 --> 00:02:52,450 kunn hvis vi faktisk ikke plukke noen opp. 49 00:02:52,450 --> 00:02:56,140 Vi husker at vi satt dette passasjer siden hvis vi klarer å få 50 00:02:56,140 --> 00:02:59,320 gjennom hele transport uten sitte passasjeren, så vi trenger å 51 00:02:59,320 --> 00:03:00,885 kunngjøre at vi er ute av setene. 52 00:03:00,885 --> 00:03:03,760 53 00:03:03,760 --> 00:03:06,885 >> Deretter fjerner vi deres sted markere fra Google Earth. 54 00:03:06,885 --> 00:03:11,310 Vi fjerner markør sine fra Google Maps, satt inne for våre passasjerer ' 55 00:03:11,310 --> 00:03:14,830 matrise sted mark og markør til null som vi sa før. 56 00:03:14,830 --> 00:03:16,035 Og så det er det. 57 00:03:16,035 --> 00:03:17,050 Passasjeren har blitt sittende. 58 00:03:17,050 --> 00:03:19,570 Når vi har gjort det for alle passasjerer innen 15 meter av 59 00:03:19,570 --> 00:03:23,250 transport, må vi rechart. 60 00:03:23,250 --> 00:03:30,270 >> Så Chart er hva som kommer til å vise passasjerer i setene over her. 61 00:03:30,270 --> 00:03:32,760 Så nå, la oss se på figur. 62 00:03:32,760 --> 00:03:37,960 Innsiden av Chart, kommer vi til å være konstruere HTML for diagrammet. 63 00:03:37,960 --> 00:03:41,160 Så diagrammet kommer til å være en sortert liste. 64 00:03:41,160 --> 00:03:44,300 Så får vi iterere over alle setene i vår shuttle. 65 00:03:44,300 --> 00:03:48,450 Så hvis dette setet er null, som betyr at vi vil ha en liste element som 66 00:03:48,450 --> 00:03:50,800 indikerer at det er en tom lett. 67 00:03:50,800 --> 00:03:55,650 Else, hvis det ikke var null, så vi ønsker en liste element som kommer til å vise 68 00:03:55,650 --> 00:03:58,660 navnet på passasjeren og huset til passasjer 69 00:03:58,660 --> 00:04:00,420 det er i dette setet. 70 00:04:00,420 --> 00:04:04,620 >> Når vi har iterated over alt av seter så vi avslutter vår sortert liste 71 00:04:04,620 --> 00:04:09,410 og bruke jQuery for å velge diagram div og erstatte det er HTML med vår nye 72 00:04:09,410 --> 00:04:10,550 sortert liste. 73 00:04:10,550 --> 00:04:12,090 Og det er det for Chart. 74 00:04:12,090 --> 00:04:15,170 >> Så siste ting er frafalt. 75 00:04:15,170 --> 00:04:20,860 Nå frafalt kommer til å være ganske lik å plukke opp. 76 00:04:20,860 --> 00:04:24,150 I stedet for å sløyfe over alt i passasjerer, skal vi løkken over 77 00:04:24,150 --> 00:04:25,780 alle transporttjenester seter. 78 00:04:25,780 --> 00:04:29,720 Så looping over shuttle seter, vi se er dette spesielt shuttle sete 79 00:04:29,720 --> 00:04:32,850 ikke null, og da er det en passasjer i dette setet. 80 00:04:32,850 --> 00:04:35,380 Hvis det er tilfelle, vi ønsker å ta tak i breddegrad og 81 00:04:35,380 --> 00:04:37,030 lengdegrad for denne passasjeren. 82 00:04:37,030 --> 00:04:42,110 >> Så bruker husets array, er vi kommer til å ta tak i hus 83 00:04:42,110 --> 00:04:46,990 passasjer i dette setet og deretter ta tak i breddegrad av det aktuelle huset 84 00:04:46,990 --> 00:04:49,070 og tilsvarende for lengdegrad. 85 00:04:49,070 --> 00:04:54,270 Nå, vi igjen bruke avstand for å se i det huset er innenfor 30 meter over oss. 86 00:04:54,270 --> 00:04:58,320 Hvis det er tilfelle, de ønsker å sette dette setet til null, siden passasjer 87 00:04:58,320 --> 00:05:01,760 ble droppet av, og tilvekst som en passasjer ble kastet av. 88 00:05:01,760 --> 00:05:05,910 Slik at til slutt, hvis ingen var falt av, vi kunngjøre at ingen 89 00:05:05,910 --> 00:05:07,600 ønsker å bli droppet av her. 90 00:05:07,600 --> 00:05:12,510 >> Til slutt må vi rechart slik at vi vise nye, tomme seter. 91 00:05:12,510 --> 00:05:15,770 Nå, du trenger bare å implementere noen ekstra funksjoner. 92 00:05:15,770 --> 00:05:17,680 Nå, det er masse du kan har valgt fra. 93 00:05:17,680 --> 00:05:21,630 Men i vårt tilfelle vi implementert Teleport, flying, og påskynde, og 94 00:05:21,630 --> 00:05:22,770 fart nedover. 95 00:05:22,770 --> 00:05:25,100 Så la oss se på dem. 96 00:05:25,100 --> 00:05:27,830 Først, la oss ta en titt på påskynde funksjonen. 97 00:05:27,830 --> 00:05:32,720 Så i vårt tilfelle, i tastetrykk funksjon, hvor vi allerede håndtering 98 00:05:32,720 --> 00:05:39,900 alle disse nøklene, vi også kommer til å gjenkjenne X og Z. Som vi spesifisere 99 00:05:39,900 --> 00:05:43,720 at disse tegnene skal forårsake romfergens hastighet til 100 00:05:43,720 --> 00:05:46,530 øke og minke. 101 00:05:46,530 --> 00:05:50,940 >> Så merker at vi setter en grense for hvor høy og på hvordan en lav hastighet kan 102 00:05:50,940 --> 00:05:55,030 faktisk gå siden vi ikke ønsker shuttle å være for rask. 103 00:05:55,030 --> 00:05:58,180 Og vi vil heller ikke romfergens hastighet til å gå til null eller muligens 104 00:05:58,180 --> 00:06:01,480 og med negativ noe som vil resultere i noen merkelige oppførsel. 105 00:06:01,480 --> 00:06:03,890 Og det er det for fartsovertredelse opp og bremse ned. 106 00:06:03,890 --> 00:06:05,980 >> Nå, la oss ta en titt på fly. 107 00:06:05,980 --> 00:06:11,370 Så husk at den flygende funksjonen krever at du skriver inn Konami-koden. 108 00:06:11,370 --> 00:06:18,070 Så opp på toppen, ser vi at vi har noen globale variabler, Konami-koden som er 109 00:06:18,070 --> 00:06:20,975 en matrise som er bare å holde orden på nøkler som må legges inn for 110 00:06:20,975 --> 00:06:22,600 Konami-koden. 111 00:06:22,600 --> 00:06:26,340 Det er en Bool som bare indikerer om Konami-koden har allerede 112 00:06:26,340 --> 00:06:27,660 er inngått. 113 00:06:27,660 --> 00:06:30,430 Og så er det indeksen inn Konami-koden array som 114 00:06:30,430 --> 00:06:31,770 vi er nå på. 115 00:06:31,770 --> 00:06:36,020 >> Så hvis brukeren allerede har inngått tre tegnene i Konami-koden 116 00:06:36,020 --> 00:06:40,530 da indeksen kommer til å peke på den fjerde tingen i tabellen, 117 00:06:40,530 --> 00:06:42,150 tredje indeks. 118 00:06:42,150 --> 00:06:44,630 Ved hjelp av det, en gang vi kommer se på tastetrykk. 119 00:06:44,630 --> 00:06:48,040 120 00:06:48,040 --> 00:06:51,910 Og i tastetrykk ser vi her at hvis Konami-koden har ikke allerede vært 121 00:06:51,910 --> 00:06:58,410 angitt, så vi ønsker å se er den nøkkel som var innlagt hva vi er 122 00:06:58,410 --> 00:07:01,250 i dag forventer fra Konami-koden array. 123 00:07:01,250 --> 00:07:04,350 Hvis det er tilfelle, så vi øke vår indeks. 124 00:07:04,350 --> 00:07:07,660 >> Hvis brukeren skriver Up da indeksen kommer til å gå til en. 125 00:07:07,660 --> 00:07:10,280 Da vil brukeren skrive opp igjen, indeksen går til to. 126 00:07:10,280 --> 00:07:12,150 Deretter vil de skrive ned, det vil gå til tre. 127 00:07:12,150 --> 00:07:17,320 Hvis de skriver Q, vil det tilbakestilles til null siden de ikke samsvarte 128 00:07:17,320 --> 00:07:20,140 den forventede verdien. 129 00:07:20,140 --> 00:07:24,810 Nå, hvis de klarer å komme seg gjennom Hele dette da de har kommet inn i 130 00:07:24,810 --> 00:07:26,280 Konami-koden. 131 00:07:26,280 --> 00:07:33,960 I så fall, nå som Konami inn er sant, vi ser her nede at hvis 132 00:07:33,960 --> 00:07:40,460 Konami ble inngått, aksepterer vi to nye nøkler, C og E. Hvilke alle dem vil gjøre 133 00:07:40,460 --> 00:07:45,800 er satt flygende nedover og flyr oppover stater i romfergen. 134 00:07:45,800 --> 00:07:48,530 Så allerede finnes for deg. 135 00:07:48,530 --> 00:07:51,190 Du trenger bare å ta Fordelen med dem. 136 00:07:51,190 --> 00:07:52,890 Og det er det for å fly. 137 00:07:52,890 --> 00:07:54,680 >> Siste, har vi teleportere. 138 00:07:54,680 --> 00:08:00,710 Så innsiden av HTML, ser vi at Vi har lagt til en tekstboks og en 139 00:08:00,710 --> 00:08:02,270 teleportere knappen. 140 00:08:02,270 --> 00:08:08,300 Boksen har ID-adresse, og knappen har en ID teleport-knappen. 141 00:08:08,300 --> 00:08:13,970 Nå er en irriterende liten detalj er at hvis vi ikke gjør noe med arrangementet 142 00:08:13,970 --> 00:08:19,210 handlers så når vi prøver å skrive noe som A inn i boksen, 143 00:08:19,210 --> 00:08:25,250 i stedet for å faktisk binde A, vår Google Jorda kommer til å flytte til 144 00:08:25,250 --> 00:08:30,040 venstre siden A er allerede registrert for å håndtere i bevegelse mot venstre. 145 00:08:30,040 --> 00:08:35,100 >> Så irriterende detalj her er at når vi har en nøkkel ned eller nøkkelen opp 146 00:08:35,100 --> 00:08:40,789 hendelse inne i input-boksen, vi ønsker å event.stop forplantning som er 147 00:08:40,789 --> 00:08:43,830 bare kommer til å forhindre at skyve av romfergen. 148 00:08:43,830 --> 00:08:48,510 Når det er håndtert, ønsker vi også å legge til et behandlingsprogram til teleport-knappen. 149 00:08:48,510 --> 00:08:52,880 Når vi klikker på teleport-knappen, vi ta tak i adressen, som er nåværende 150 00:08:52,880 --> 00:08:57,580 verdi i boksen, og deretter vi kaller dette teleport funksjonen. 151 00:08:57,580 --> 00:09:00,910 >> Så hva gjør Teleport Funksjonen ser ut? 152 00:09:00,910 --> 00:09:04,840 Vel, første vi ser er at vi er hjelp geocoder. geokode. 153 00:09:04,840 --> 00:09:06,940 Så hva er det? 154 00:09:06,940 --> 00:09:10,330 Vel, hvis vi ser på toppen, vi ser at vi har en ny 155 00:09:10,330 --> 00:09:13,860 global variabel, geocoder. 156 00:09:13,860 --> 00:09:17,500 Og dette er et globalt referanse til en geokoding tjeneste. 157 00:09:17,500 --> 00:09:19,380 Nå hva betyr det for oss? 158 00:09:19,380 --> 00:09:23,810 Vel, i boksen, kommer jeg til å være legge inn noe sånt som 33 Oxford 159 00:09:23,810 --> 00:09:26,040 Street Cambridge, Massachusetts. 160 00:09:26,040 --> 00:09:28,580 Men vi kan ikke egentlig gjøre noe med det. 161 00:09:28,580 --> 00:09:31,760 Vi ønsker å konvertere det til breddegrad og lengdegrad. 162 00:09:31,760 --> 00:09:34,940 Og det er hva geokoding tjeneste kommer til å gjøre for oss. 163 00:09:34,940 --> 00:09:40,630 På bunnen av initcb, ser vi at vi har geocoder lik ny 164 00:09:40,630 --> 00:09:45,830 google.maps.geocoder som initialiserer denne variabelen for oss. 165 00:09:45,830 --> 00:09:47,930 >> Så tilbake til å teleportere. 166 00:09:47,930 --> 00:09:51,240 Vi ser at vi bruker geocoder. 167 00:09:51,240 --> 00:09:54,970 Vi geokoding adressen som var gått over til teleport funksjon som 168 00:09:54,970 --> 00:09:57,450 ble grep fra input-boksen. 169 00:09:57,450 --> 00:10:02,020 Og vi passerer det en samtale tilbake som tar resultater og status. 170 00:10:02,020 --> 00:10:05,905 Så første vi må sjekke per API dokument av google.maps. 171 00:10:05,905 --> 00:10:06,130 GeocodingService. 172 00:10:06,130 --> 00:10:08,330 Maps 173 00:10:08,330 --> 00:10:11,550 >> Så vi må sjekke status for å se om det kom tilbake. 174 00:10:11,550 --> 00:10:16,820 google.maps.GeocoderStatus.OK som viser at vi har et gyldig resultat. 175 00:10:16,820 --> 00:10:19,310 Hvis vi ikke gjør det, så får vi, ingen kan gjøre. 176 00:10:19,310 --> 00:10:20,990 Dette kan være en ugyldig adresse. 177 00:10:20,990 --> 00:10:24,630 Eller API-makt være ned eller hvem vet? 178 00:10:24,630 --> 00:10:29,980 Forutsatt at vi har en suksess resultat så vi kommer til å ta tak i plassering fra 179 00:10:29,980 --> 00:10:30,790 resultatet. 180 00:10:30,790 --> 00:10:34,220 Og vi kommer til å sette Google Map nederst i høyre hjørne for å være 181 00:10:34,220 --> 00:10:38,870 sentrert på den plasseringen og oppdatere buss på kartet til stedet. 182 00:10:38,870 --> 00:10:41,620 >> Og nå trenger vi å oppdatere Google Earth plug-in. 183 00:10:41,620 --> 00:10:45,340 Så vi oppdatere breddegrad og lengde av transporttjenesten. 184 00:10:45,340 --> 00:10:50,570 Og vi må også oppdatere shuttle.localAnchorCartesian siden hvis 185 00:10:50,570 --> 00:10:55,250 du ser på shuttle.js, vil du se at som også holder styr på breddegrad 186 00:10:55,250 --> 00:10:56,310 og breddegrad. 187 00:10:56,310 --> 00:10:59,490 Så hvis vi ikke oppdaterer det, har vi opprinnelige lengde og breddegrad 188 00:10:59,490 --> 00:11:01,330 lagres gjemt et sted. 189 00:11:01,330 --> 00:11:06,490 Så oppdatering som nå, kaller vi shuttle.updateCamera å oppdatere 190 00:11:06,490 --> 00:11:09,070 skjermen og vise oss vår nye plasseringen. 191 00:11:09,070 --> 00:11:10,380 Og det er det. 192 00:11:10,380 --> 00:11:11,500 Mitt navn er Rob. 193 00:11:11,500 --> 00:11:12,750 Og dette var Shuttle. 194 00:11:12,750 --> 00:11:18,080