>> 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.