1 00:00:00,000 --> 00:00:11,712 2 00:00:11,712 --> 00:00:12,850 >> ROB BOWDEN: Hej. 3 00:00:12,850 --> 00:00:13,780 Jag är Rob. 4 00:00:13,780 --> 00:00:19,500 Och jag hoppas att du är redo att plocka upp vad Jag släpper ut eller sätta ner, 5 00:00:19,500 --> 00:00:22,230 eller låt oss komma igång. 6 00:00:22,230 --> 00:00:25,040 Så första vi behöver göra är att plocka upp. 7 00:00:25,040 --> 00:00:29,370 Nu, plocka upp kommer att ta bort passagerarnas ikoner från Google 8 00:00:29,370 --> 00:00:32,759 karta i det nedre högra hörnet och från Google Earth i centrala 9 00:00:32,759 --> 00:00:33,970 skärmen. 10 00:00:33,970 --> 00:00:37,180 Så för att undanröja dessa ikoner, måste vi ha 11 00:00:37,180 --> 00:00:39,040 hänvisningar till dem någonstans. 12 00:00:39,040 --> 00:00:43,680 Men nu, det befolka funktionen bara gör sig av med dem. 13 00:00:43,680 --> 00:00:48,140 Så vi kommer att behöva ändra fylla för att hålla dem runt. 14 00:00:48,140 --> 00:00:53,440 >> Nu första vi ser är att vi har en global passagerare array. 15 00:00:53,440 --> 00:00:57,710 Och så ska vi utnyttja att globala s passagerare array i fylla. 16 00:00:57,710 --> 00:01:03,230 I befolkar, ser vi att vi looping över alla våra passagerare. 17 00:01:03,230 --> 00:01:10,420 Och det är denna slinga som är att skapa den Placera märket för Google Earth och 18 00:01:10,420 --> 00:01:12,540 markör för Google Map. 19 00:01:12,540 --> 00:01:16,420 Och så nu vår modifiering att fylla är att vara här. 20 00:01:16,420 --> 00:01:21,760 Så vi lägger på att våra passagerare " array detta objekt som håller 21 00:01:21,760 --> 00:01:26,480 runt markören och placera märket vi bara skapas tillsammans med huset och 22 00:01:26,480 --> 00:01:28,460 namnet på passageraren. 23 00:01:28,460 --> 00:01:30,560 >> Så det är det för befolka. 24 00:01:30,560 --> 00:01:33,210 Nu måste vi titta på Pick Up. 25 00:01:33,210 --> 00:01:38,540 Så i Pick Up, vi återigen kommer att iterera över alla våra passagerare. 26 00:01:38,540 --> 00:01:41,340 Men nu är det vår globala passagerare array. 27 00:01:41,340 --> 00:01:46,150 Och här ser vi det bra, har vi redan plockat upp denna passagerare? 28 00:01:46,150 --> 00:01:50,030 Sedan om vi har plockat upp detta passagerare, ser vi till slut att 29 00:01:50,030 --> 00:01:55,240 vi kommer att ställa markören och plats märke till noll, eftersom de är inte 30 00:01:55,240 --> 00:01:56,930 längre i Google-karta. 31 00:01:56,930 --> 00:02:00,920 >> Så om vi redan har plockat upp detta passagerare då vi ska bara 32 00:02:00,920 --> 00:02:02,920 fortsätta till nästa passagerare. 33 00:02:02,920 --> 00:02:07,380 Else, kontrollerar vi att se om detta passagerarens hus är inne i 34 00:02:07,380 --> 00:02:08,590 husets array. 35 00:02:08,590 --> 00:02:11,900 Detta är den kontroll som vi måste se till att att vi inte plocka upp nybörjare som 36 00:02:11,900 --> 00:02:13,180 spec säger. 37 00:02:13,180 --> 00:02:15,920 Så om passageraren är en nybörjare, vi ska 38 00:02:15,920 --> 00:02:18,190 fortsätta till nästa passagerare. 39 00:02:18,190 --> 00:02:21,720 >> När vi har verifierat att detta är en passagerare vi ska plocka upp, 40 00:02:21,720 --> 00:02:25,340 Vi kommer nu att kontrollera latitud och longitud för passageraren och se 41 00:02:25,340 --> 00:02:27,760 om det är inom 15 meter av skytteln. 42 00:02:27,760 --> 00:02:31,720 Om så är fallet, vi faktiskt vill att plocka upp denna passagerare. 43 00:02:31,720 --> 00:02:35,890 Så vi integrerar över alla de platser i vår buss ute för att se om 44 00:02:35,890 --> 00:02:38,110 det finns en ledig plats för passageraren. 45 00:02:38,110 --> 00:02:41,540 Om en av de platserna är null, det är en tillgänglig plats. 46 00:02:41,540 --> 00:02:45,140 Så vi lägger passageraren i sätet. 47 00:02:45,140 --> 00:02:48,760 Vi minns att vi plockade upp passagerare så att i slutändan, vi kan 48 00:02:48,760 --> 00:02:52,450 meddela om vi faktiskt inte plocka någon upp. 49 00:02:52,450 --> 00:02:56,140 Vi minns att vi sitter här passagerare eftersom om vi lyckas få 50 00:02:56,140 --> 00:02:59,320 genom hela pendel utan sittplatser passageraren, då måste vi 51 00:02:59,320 --> 00:03:00,885 meddela att vi har slut på platser. 52 00:03:00,885 --> 00:03:03,760 53 00:03:03,760 --> 00:03:06,885 >> Då kan vi ta deras plats markera från Google Earth. 54 00:03:06,885 --> 00:03:11,310 Vi tar bort sin markör från Google Maps, satt inne i våra passagerare " 55 00:03:11,310 --> 00:03:14,830 array plats märke och markör till noll som vi sagt tidigare. 56 00:03:14,830 --> 00:03:16,035 Och då är det. 57 00:03:16,035 --> 00:03:17,050 Passageraren har satt. 58 00:03:17,050 --> 00:03:19,570 När vi har gjort det för alla passagerare inom 15 meter från 59 00:03:19,570 --> 00:03:23,250 transfer, måste vi rechart. 60 00:03:23,250 --> 00:03:30,270 >> Så Diagram är vad som kommer att visa passagerare i sätena över här. 61 00:03:30,270 --> 00:03:32,760 Så nu, låt oss titta på diagram. 62 00:03:32,760 --> 00:03:37,960 Insidan av diagram, kommer vi att bli konstruera HTML för diagrammet. 63 00:03:37,960 --> 00:03:41,160 Så diagrammet kommer att vara en ordnad lista. 64 00:03:41,160 --> 00:03:44,300 Sen ska vi iterera över alla sätena i vår buss. 65 00:03:44,300 --> 00:03:48,450 Så om denna sits är noll, att betyder att vi vill ha en lista objekt som 66 00:03:48,450 --> 00:03:50,800 visar att det är en tom lätt. 67 00:03:50,800 --> 00:03:55,650 Annars, om det inte var noll, då vi vill ett listobjekt som kommer att visa 68 00:03:55,650 --> 00:03:58,660 namnet på den person-och hus passageraren 69 00:03:58,660 --> 00:04:00,420 det är i den här sitsen. 70 00:04:00,420 --> 00:04:04,620 >> När vi har itereras över alla de säten stäng sedan vi vår ordnad lista 71 00:04:04,620 --> 00:04:09,410 och använda jQuery för att markera diagrammet div och ersätta det är HTML med vår nya 72 00:04:09,410 --> 00:04:10,550 ordnad lista. 73 00:04:10,550 --> 00:04:12,090 Och det är det för diagram. 74 00:04:12,090 --> 00:04:15,170 >> Så sista är avhopp. 75 00:04:15,170 --> 00:04:20,860 Nu avhopp kommer att bli ganska lik plocka upp. 76 00:04:20,860 --> 00:04:24,150 I stället för att loopa över alla de passagerare, vi ska slinga över 77 00:04:24,150 --> 00:04:25,780 alla av transfer säten. 78 00:04:25,780 --> 00:04:29,720 Så looping över shuttle säten, vi se är denna pendelsätet 79 00:04:29,720 --> 00:04:32,850 inte är noll, i vilket fall det finns en passagerare i den här sitsen. 80 00:04:32,850 --> 00:04:35,380 Om så är fallet, vill vi för att ta tag i latitud och 81 00:04:35,380 --> 00:04:37,030 longitud av denna passagerare. 82 00:04:37,030 --> 00:04:42,110 >> Så använder husets array, vi är kommer att ta tag i hus 83 00:04:42,110 --> 00:04:46,990 passagerare i den här sitsen och sedan ta tag i latitud för just hus 84 00:04:46,990 --> 00:04:49,070 och på liknande sätt för longitud. 85 00:04:49,070 --> 00:04:54,270 Nu har vi återigen använder avstånd för att se i det huset ligger inom 30 meter från oss. 86 00:04:54,270 --> 00:04:58,320 Om så är fallet, de vill ställa detta säte till null, eftersom passageraren 87 00:04:58,320 --> 00:05:01,760 tappades bort, och ökning som en passagerare tappades bort. 88 00:05:01,760 --> 00:05:05,910 Så att i slutändan, om ingen var somnade, vi meddelar att ingen 89 00:05:05,910 --> 00:05:07,600 vill att släppas här. 90 00:05:07,600 --> 00:05:12,510 >> Slutligen måste vi rechart så att vi visa nya, tomma platser. 91 00:05:12,510 --> 00:05:15,770 Nu behöver du bara genomföra några extra funktioner. 92 00:05:15,770 --> 00:05:17,680 Nu finns det massor du kan har valt från. 93 00:05:17,680 --> 00:05:21,630 Men i vårt fall vi genomfört teleport, flygande, och snabbare, och 94 00:05:21,630 --> 00:05:22,770 susa nedför. 95 00:05:22,770 --> 00:05:25,100 Så låt oss titta på dem. 96 00:05:25,100 --> 00:05:27,830 Först, låt oss ta en titt på den snabbare funktionen. 97 00:05:27,830 --> 00:05:32,720 Så i vårt fall, i tangenttryckning funktion, där vi redan hanterar 98 00:05:32,720 --> 00:05:39,900 alla dessa tangenter, vi kommer också att känner igen X och Z. Som vi anger 99 00:05:39,900 --> 00:05:43,720 att dessa tecken ska orsaka skytteln s hastighet till 100 00:05:43,720 --> 00:05:46,530 öka och minska. 101 00:05:46,530 --> 00:05:50,940 >> Så märker att vi sätter en gräns för hur hög och på hur en låg hastighet kan 102 00:05:50,940 --> 00:05:55,030 faktiskt gå eftersom vi inte vill ha transfer till vara för snabb. 103 00:05:55,030 --> 00:05:58,180 Och vi vill inte heller rymdfärjans hastighet för att gå till noll eller möjligen 104 00:05:58,180 --> 00:06:01,480 med negativ vilket kommer att resultera på något konstigt beteende. 105 00:06:01,480 --> 00:06:03,890 Och det är det för fortkörning upp och sakta ner. 106 00:06:03,890 --> 00:06:05,980 >> Nu ska vi ta en titt på flygande. 107 00:06:05,980 --> 00:06:11,370 Så kom ihåg att den flygande funktionen kräver att du anger den Konami Code. 108 00:06:11,370 --> 00:06:18,070 Så upp på toppen ser vi att vi har en viss globala variabler, Konami Code som är 109 00:06:18,070 --> 00:06:20,975 en matris som bara är att hålla koll på nycklar som måste anges för 110 00:06:20,975 --> 00:06:22,600 den Konami Code. 111 00:06:22,600 --> 00:06:26,340 Det finns en Bool som bara visar om Konami Code har redan 112 00:06:26,340 --> 00:06:27,660 matats in. 113 00:06:27,660 --> 00:06:30,430 Och sedan finns det index i den Konami Code array som 114 00:06:30,430 --> 00:06:31,770 Vi är för närvarande på. 115 00:06:31,770 --> 00:06:36,020 >> Så om användaren redan har trätt tre tecknen i Konami Code 116 00:06:36,020 --> 00:06:40,530 då indexet kommer att peka på fjärde sak i arrayen, det 117 00:06:40,530 --> 00:06:42,150 tredje index. 118 00:06:42,150 --> 00:06:44,630 Med hjälp av det, än en gång vi kommer se nyckel stroke. 119 00:06:44,630 --> 00:06:48,040 120 00:06:48,040 --> 00:06:51,910 Och i knapptryckning vi ser här att om den Konami Code inte redan tidigare har 121 00:06:51,910 --> 00:06:58,410 in, då vi vill se är det nyckeln som angavs vad vi är 122 00:06:58,410 --> 00:07:01,250 närvarande förväntar sig Konami kod array. 123 00:07:01,250 --> 00:07:04,350 Om så är fallet, vi öka vårt index. 124 00:07:04,350 --> 00:07:07,660 >> Om användaren skriver upp då index kommer att gå till en. 125 00:07:07,660 --> 00:07:10,280 Då användaren kommer att skriva upp igen, index går till två. 126 00:07:10,280 --> 00:07:12,150 Då kommer de skriver ner, det kommer att gå till tre. 127 00:07:12,150 --> 00:07:17,320 Om de skriver Q, det ska återställas till noll eftersom de inte stämmer 128 00:07:17,320 --> 00:07:20,140 det förväntade värdet. 129 00:07:20,140 --> 00:07:24,810 Nu, om de lyckas få igenom hel rad då de har kommit in i 130 00:07:24,810 --> 00:07:26,280 Konami Code. 131 00:07:26,280 --> 00:07:33,960 I vilket fall, nu när Konami in är sant, vi ser här nere, att om 132 00:07:33,960 --> 00:07:40,460 Konami ingicks, accepterar vi två nya nycklar, C och E. Vilket alla som kommer att göra 133 00:07:40,460 --> 00:07:45,800 sätts den flygande nedåt och flygande uppåt stater i skytteln. 134 00:07:45,800 --> 00:07:48,530 Så redan finnas för dig. 135 00:07:48,530 --> 00:07:51,190 Du behöver bara ta nytta av dem. 136 00:07:51,190 --> 00:07:52,890 Och det är det för att flyga. 137 00:07:52,890 --> 00:07:54,680 >> Senast har vi teleportera. 138 00:07:54,680 --> 00:08:00,710 Så inne i HTML, ser vi att Vi har lagt till en inmatningsruta och en 139 00:08:00,710 --> 00:08:02,270 teleport knappen. 140 00:08:02,270 --> 00:08:08,300 Boxen har ID-adress, och knappen har ett ID teleport knappen. 141 00:08:08,300 --> 00:08:13,970 Nu en irriterande liten detalj är att om vi inte gör något med händelsen 142 00:08:13,970 --> 00:08:19,210 handlers sedan när vi försöker skriva något som A i inmatningsrutan, 143 00:08:19,210 --> 00:08:25,250 istället för att faktiskt binda A, vår Google Jorden kommer att gå till 144 00:08:25,250 --> 00:08:30,040 kvar eftersom A redan är registrerad att hantera att flytta till vänster. 145 00:08:30,040 --> 00:08:35,100 >> Så den irriterande detalj här är att när vi har en nyckel ner eller nyckel upp 146 00:08:35,100 --> 00:08:40,789 händelse inne i inmatningsrutan, vi vill ha att event.stop förökning som är 147 00:08:40,789 --> 00:08:43,830 bara att förhindra att glidning av skytteln. 148 00:08:43,830 --> 00:08:48,510 När det är hanteras, vill vi också att lägga en hanterare till teleporten knappen. 149 00:08:48,510 --> 00:08:52,880 När vi klickar på teleport knappen, vi ta tag i adressen, som är den nuvarande 150 00:08:52,880 --> 00:08:57,580 värde i inmatningsrutan, och sedan Vi kallar denna teleport funktion. 151 00:08:57,580 --> 00:09:00,910 >> Så vad gör teleport Funktionen ser ut? 152 00:09:00,910 --> 00:09:04,840 Tja, är det första vi ser att vi är använder geocoder. geokoda. 153 00:09:04,840 --> 00:09:06,940 Så vad är det? 154 00:09:06,940 --> 00:09:10,330 Tja, om vi tittar på toppen, Vi ser att vi har en ny 155 00:09:10,330 --> 00:09:13,860 global variabel, geokodning. 156 00:09:13,860 --> 00:09:17,500 Och det här är en global referens till en geokodningstjänst. 157 00:09:17,500 --> 00:09:19,380 Nu vad betyder det för oss? 158 00:09:19,380 --> 00:09:23,810 Tja, i inmatningsrutan, jag kommer att vara skriva in något i stil med 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 inte riktigt göra någonting med det. 161 00:09:28,580 --> 00:09:31,760 Vi vill konvertera det till latitud och longitud. 162 00:09:31,760 --> 00:09:34,940 Och det är vad det geokodningstjänst kommer att göra för oss. 163 00:09:34,940 --> 00:09:40,630 Längst ner på initcb, ser vi att vi har geocoder lika med ny 164 00:09:40,630 --> 00:09:45,830 google.maps.geocoder som initierar denna variabel för oss. 165 00:09:45,830 --> 00:09:47,930 >> Så tillbaka till teleportera. 166 00:09:47,930 --> 00:09:51,240 Vi ser att vi med hjälp av geokodning. 167 00:09:51,240 --> 00:09:54,970 Vi geokodning den adress som var passerade till teleporten funktion som 168 00:09:54,970 --> 00:09:57,450 var tog från rutan. 169 00:09:57,450 --> 00:10:02,020 Och vi passerar det ett samtal tillbaka som tar resultat och ställning. 170 00:10:02,020 --> 00:10:05,905 Så första vi måste kolla per API dokumentet för google.maps. 171 00:10:05,905 --> 00:10:06,130 GeocodingService. 172 00:10:06,130 --> 00:10:08,330 Kartor 173 00:10:08,330 --> 00:10:11,550 >> Så vi måste kontrollera status för att se om det tillbaka. 174 00:10:11,550 --> 00:10:16,820 google.maps.GeocoderStatus.OK som visar att vi har ett giltigt resultat. 175 00:10:16,820 --> 00:10:19,310 Om vi ​​inte gör det, då får vi inget kan göra. 176 00:10:19,310 --> 00:10:20,990 Detta kan vara en ogiltig adress. 177 00:10:20,990 --> 00:10:24,630 Eller API tjänsten kan vara nere eller vem vet? 178 00:10:24,630 --> 00:10:29,980 Förutsatt att vi har en framgång resultat sedan vi kommer att ta platsen från 179 00:10:29,980 --> 00:10:30,790 resultatet. 180 00:10:30,790 --> 00:10:34,220 Och vi kommer att ställa in Google Map i det nedre högra hörnet för att vara 181 00:10:34,220 --> 00:10:38,870 centrerad på den platsen och uppdatera buss på kartan till den platsen. 182 00:10:38,870 --> 00:10:41,620 >> Och nu måste vi uppdatera Google Earth plug-in. 183 00:10:41,620 --> 00:10:45,340 Så vi uppdaterar latitud och longitud i skytteln. 184 00:10:45,340 --> 00:10:50,570 Och vi måste också uppdatera shuttle.localAnchorCartesian eftersom om 185 00:10:50,570 --> 00:10:55,250 man tittar på shuttle.js, ser du att som håller även reda på latitud 186 00:10:55,250 --> 00:10:56,310 och longitud. 187 00:10:56,310 --> 00:10:59,490 Så om vi inte uppdaterar det, har vi ursprungliga latitud och longitud 188 00:10:59,490 --> 00:11:01,330 lagras gömd någonstans. 189 00:11:01,330 --> 00:11:06,490 Så uppdatera det nu, kallar vi shuttle.updateCamera att uppdatera 190 00:11:06,490 --> 00:11:09,070 skärmen och visar oss vår nya plats. 191 00:11:09,070 --> 00:11:10,380 Och det är det. 192 00:11:10,380 --> 00:11:11,500 Mitt namn är Rob. 193 00:11:11,500 --> 00:11:12,750 Och detta var Shuttle. 194 00:11:12,750 --> 00:11:18,080