ROB BOWDEN: Hej. Jag är Rob. Och jag hoppas att du är redo att plocka upp vad Jag släpper ut eller sätta ner, eller låt oss komma igång. Så första vi behöver göra är att plocka upp. Nu, plocka upp kommer att ta bort passagerarnas ikoner från Google karta i det nedre högra hörnet och från Google Earth i centrala skärmen. Så för att undanröja dessa ikoner, måste vi ha hänvisningar till dem någonstans. Men nu, det befolka funktionen bara gör sig av med dem. Så vi kommer att behöva ändra fylla för att hålla dem runt. Nu första vi ser är att vi har en global passagerare array. Och så ska vi utnyttja att globala s passagerare array i fylla. I befolkar, ser vi att vi looping över alla våra passagerare. Och det är denna slinga som är att skapa den Placera märket för Google Earth och markör för Google Map. Och så nu vår modifiering att fylla är att vara här. Så vi lägger på att våra passagerare " array detta objekt som håller runt markören och placera märket vi bara skapas tillsammans med huset och namnet på passageraren. Så det är det för befolka. Nu måste vi titta på Pick Up. Så i Pick Up, vi återigen kommer att iterera över alla våra passagerare. Men nu är det vår globala passagerare array. Och här ser vi det bra, har vi redan plockat upp denna passagerare? Sedan om vi har plockat upp detta passagerare, ser vi till slut att vi kommer att ställa markören och plats märke till noll, eftersom de är inte längre i Google-karta. Så om vi redan har plockat upp detta passagerare då vi ska bara fortsätta till nästa passagerare. Else, kontrollerar vi att se om detta passagerarens hus är inne i husets array. Detta är den kontroll som vi måste se till att att vi inte plocka upp nybörjare som spec säger. Så om passageraren är en nybörjare, vi ska fortsätta till nästa passagerare. När vi har verifierat att detta är en passagerare vi ska plocka upp, Vi kommer nu att kontrollera latitud och longitud för passageraren och se om det är inom 15 meter av skytteln. Om så är fallet, vi faktiskt vill att plocka upp denna passagerare. Så vi integrerar över alla de platser i vår buss ute för att se om det finns en ledig plats för passageraren. Om en av de platserna är null, det är en tillgänglig plats. Så vi lägger passageraren i sätet. Vi minns att vi plockade upp passagerare så att i slutändan, vi kan meddela om vi faktiskt inte plocka någon upp. Vi minns att vi sitter här passagerare eftersom om vi lyckas få genom hela pendel utan sittplatser passageraren, då måste vi meddela att vi har slut på platser. Då kan vi ta deras plats markera från Google Earth. Vi tar bort sin markör från Google Maps, satt inne i våra passagerare " array plats märke och markör till noll som vi sagt tidigare. Och då är det. Passageraren har satt. När vi har gjort det för alla passagerare inom 15 meter från transfer, måste vi rechart. Så Diagram är vad som kommer att visa passagerare i sätena över här. Så nu, låt oss titta på diagram. Insidan av diagram, kommer vi att bli konstruera HTML för diagrammet. Så diagrammet kommer att vara en ordnad lista. Sen ska vi iterera över alla sätena i vår buss. Så om denna sits är noll, att betyder att vi vill ha en lista objekt som visar att det är en tom lätt. Annars, om det inte var noll, då vi vill ett listobjekt som kommer att visa namnet på den person-och hus passageraren det är i den här sitsen. När vi har itereras över alla de säten stäng sedan vi vår ordnad lista och använda jQuery för att markera diagrammet div och ersätta det är HTML med vår nya ordnad lista. Och det är det för diagram. Så sista är avhopp. Nu avhopp kommer att bli ganska lik plocka upp. I stället för att loopa över alla de passagerare, vi ska slinga över alla av transfer säten. Så looping över shuttle säten, vi se är denna pendelsätet inte är noll, i vilket fall det finns en passagerare i den här sitsen. Om så är fallet, vill vi för att ta tag i latitud och longitud av denna passagerare. Så använder husets array, vi är kommer att ta tag i hus passagerare i den här sitsen och sedan ta tag i latitud för just hus och på liknande sätt för longitud. Nu har vi återigen använder avstånd för att se i det huset ligger inom 30 meter från oss. Om så är fallet, de vill ställa detta säte till null, eftersom passageraren tappades bort, och ökning som en passagerare tappades bort. Så att i slutändan, om ingen var somnade, vi meddelar att ingen vill att släppas här. Slutligen måste vi rechart så att vi visa nya, tomma platser. Nu behöver du bara genomföra några extra funktioner. Nu finns det massor du kan har valt från. Men i vårt fall vi genomfört teleport, flygande, och snabbare, och susa nedför. Så låt oss titta på dem. Först, låt oss ta en titt på den snabbare funktionen. Så i vårt fall, i tangenttryckning funktion, där vi redan hanterar alla dessa tangenter, vi kommer också att känner igen X och Z. Som vi anger att dessa tecken ska orsaka skytteln s hastighet till öka och minska. Så märker att vi sätter en gräns för hur hög och på hur en låg hastighet kan faktiskt gå eftersom vi inte vill ha transfer till vara för snabb. Och vi vill inte heller rymdfärjans hastighet för att gå till noll eller möjligen med negativ vilket kommer att resultera på något konstigt beteende. Och det är det för fortkörning upp och sakta ner. Nu ska vi ta en titt på flygande. Så kom ihåg att den flygande funktionen kräver att du anger den Konami Code. Så upp på toppen ser vi att vi har en viss globala variabler, Konami Code som är en matris som bara är att hålla koll på nycklar som måste anges för den Konami Code. Det finns en Bool som bara visar om Konami Code har redan matats in. Och sedan finns det index i den Konami Code array som Vi är för närvarande på. Så om användaren redan har trätt tre tecknen i Konami Code då indexet kommer att peka på fjärde sak i arrayen, det tredje index. Med hjälp av det, än en gång vi kommer se nyckel stroke. Och i knapptryckning vi ser här att om den Konami Code inte redan tidigare har in, då vi vill se är det nyckeln som angavs vad vi är närvarande förväntar sig Konami kod array. Om så är fallet, vi öka vårt index. Om användaren skriver upp då index kommer att gå till en. Då användaren kommer att skriva upp igen, index går till två. Då kommer de skriver ner, det kommer att gå till tre. Om de skriver Q, det ska återställas till noll eftersom de inte stämmer det förväntade värdet. Nu, om de lyckas få igenom hel rad då de har kommit in i Konami Code. I vilket fall, nu när Konami in är sant, vi ser här nere, att om Konami ingicks, accepterar vi två nya nycklar, C och E. Vilket alla som kommer att göra sätts den flygande nedåt och flygande uppåt stater i skytteln. Så redan finnas för dig. Du behöver bara ta nytta av dem. Och det är det för att flyga. Senast har vi teleportera. Så inne i HTML, ser vi att Vi har lagt till en inmatningsruta och en teleport knappen. Boxen har ID-adress, och knappen har ett ID teleport knappen. Nu en irriterande liten detalj är att om vi inte gör något med händelsen handlers sedan när vi försöker skriva något som A i inmatningsrutan, istället för att faktiskt binda A, vår Google Jorden kommer att gå till kvar eftersom A redan är registrerad att hantera att flytta till vänster. Så den irriterande detalj här är att när vi har en nyckel ner eller nyckel upp händelse inne i inmatningsrutan, vi vill ha att event.stop förökning som är bara att förhindra att glidning av skytteln. När det är hanteras, vill vi också att lägga en hanterare till teleporten knappen. När vi klickar på teleport knappen, vi ta tag i adressen, som är den nuvarande värde i inmatningsrutan, och sedan Vi kallar denna teleport funktion. Så vad gör teleport Funktionen ser ut? Tja, är det första vi ser att vi är använder geocoder. geokoda. Så vad är det? Tja, om vi tittar på toppen, Vi ser att vi har en ny global variabel, geokodning. Och det här är en global referens till en geokodningstjänst. Nu vad betyder det för oss? Tja, i inmatningsrutan, jag kommer att vara skriva in något i stil med 33 Oxford Street Cambridge, Massachusetts. Men vi kan inte riktigt göra någonting med det. Vi vill konvertera det till latitud och longitud. Och det är vad det geokodningstjänst kommer att göra för oss. Längst ner på initcb, ser vi att vi har geocoder lika med ny google.maps.geocoder som initierar denna variabel för oss. Så tillbaka till teleportera. Vi ser att vi med hjälp av geokodning. Vi geokodning den adress som var passerade till teleporten funktion som var tog från rutan. Och vi passerar det ett samtal tillbaka som tar resultat och ställning. Så första vi måste kolla per API dokumentet för google.maps. GeocodingService. Kartor Så vi måste kontrollera status för att se om det tillbaka. google.maps.GeocoderStatus.OK som visar att vi har ett giltigt resultat. Om vi ​​inte gör det, då får vi inget kan göra. Detta kan vara en ogiltig adress. Eller API tjänsten kan vara nere eller vem vet? Förutsatt att vi har en framgång resultat sedan vi kommer att ta platsen från resultatet. Och vi kommer att ställa in Google Map i det nedre högra hörnet för att vara centrerad på den platsen och uppdatera buss på kartan till den platsen. Och nu måste vi uppdatera Google Earth plug-in. Så vi uppdaterar latitud och longitud i skytteln. Och vi måste också uppdatera shuttle.localAnchorCartesian eftersom om man tittar på shuttle.js, ser du att som håller även reda på latitud och longitud. Så om vi inte uppdaterar det, har vi ursprungliga latitud och longitud lagras gömd någonstans. Så uppdatera det nu, kallar vi shuttle.updateCamera att uppdatera skärmen och visar oss vår nya plats. Och det är det. Mitt namn är Rob. Och detta var Shuttle.