ROB BOWDEN: Oi. Estou Rob. E eu espero que você esteja pronto para pegar o que Eu estou caindo fora ou colocar para baixo, ou vamos começar. Então a primeira coisa que precisamos a fazer é pegar. Agora, pegar vai ser a remoção do Ícones dos passageiros do Google mapear, no canto inferior direito e de o Google Earth no centro da a tela. Portanto, a fim de remover os ícones, precisamos ter a referências a eles em algum lugar. Mas atualmente, a função Preencher apenas se livrar deles. Então nós vamos ter que modificar preencher para mantê-los por perto. Agora primeira coisa que vamos ver é que nós tem uma matriz de passageiros global. E assim nós vamos usar isso é globais passageiros array em Preencher. Em Preencher, vemos que estamos looping sobre todos os nossos passageiros. E é este ciclo que está criando o coloque marca para o Google Earth eo marcador para o mapa do Google. E agora a nossa modificação para preencher é estar aqui. Então, nós estamos adicionando aos nossos passageiros " disposição deste objeto que está mantendo a volta ao marcador e colocar marca nós apenas criado junto com a casa e nome do passageiro. Então é isso para Preencher. Agora, precisamos olhar para o traslado. Assim, em pegar, vamos mais uma vez para iterar sobre todos os nossos passageiros. Mas agora é a nossa mundial matriz de passageiros. E aqui estamos vendo muito bem, têm já peguei esse passageiro? Desde que tenhamos peguei esse passageiro, vemos que no final vamos definir o marcador eo lugar marca como nulo, uma vez que não somos já no mapa do Google. Então, se nós já peguei esse de passageiros, em seguida, nós apenas estamos indo para continue para o próximo passageiro. Senão, vamos verificar para ver se este casa de passageiros está dentro da disposição da casa. Esta é a verificação de que precisamos para ter certeza que não pegar o calouro como a especificação diz. Então, se o passageiro é um calouro, vamos continue para o próximo passageiro. Uma vez que tenhamos verificado que este é um passageiro devemos estar pegando, vamos agora verificar a latitude e longitude do passageiro e ver se isso é dentro de 15 pés do ônibus. Se for esse o caso, nós queremos realmente para pegar esse passageiro. Então, nós integramos sobre todos os assentos em nosso ônibus olhando para ver se há um local disponível para o passageiro. Se um dos assentos é nulo, isso é um local disponível. Então, nós adicionamos o passageiro do assento. Lembramo-nos de que pegou o de passageiros, de modo que, no final, o que pudermos anunciar se realmente não pegar qualquer um para cima. Lembramos que esta sentado passageiro, pois se conseguirmos através de todo o transporte, sem assento do passageiro, então precisamos anunciar que estamos fora de assentos. Então, retire o seu lugar marcar a partir de Google Earth. Nós removemos seu marcador do Google Maps, definido dentro de nossos passageiros " marca lugar array e marcador como nulo, como dissemos antes. E então é isso. O passageiro foi assentado. Uma vez que tenha feito isso para todos os passageiros dentro de 15 pés do shuttle, precisamos rechart. Então Chart é o que vai exibir o passageiros nos assentos mais aqui. Então, agora, vamos olhar para o gráfico. Dentro de Gráfico, vamos ser construção do HTML para o gráfico. Assim, o gráfico vai ser uma lista ordenada. Então vamos iterar sobre todos assentos no nosso autocarro. Portanto, se esse lugar específico é nulo, que significa que queremos um item da lista que indica que é um fácil vazio. Outra coisa, se não fosse nulo, então nós queremos um item da lista que vai exibir o nome do passageiro, e a casa do passageiro que está neste lugar. Uma vez que tenhamos iterado sobre toda a assentos então fechamos nossa lista ordenada e usar jQuery para selecionar o div gráfico e substituí-lo é HTML com o nosso novo lista ordenada. E isso é tudo para Chart. Então última coisa é cair fora. Agora cair vai ser bastante semelhante a pegar. Em vez de fazer loop para todo o passageiros, vamos varrer todos os assentos do ônibus. Então looping nos assentos do ônibus, nós ver é este assento de transporte especial não nulo, caso em que não há um passageiro neste lugar. Se for esse o caso, nós queremos para pegar a latitude e longitude deste passageiro. Então, usando conjunto da casa, nós somos vai pegar a casa do passageiros neste lugar e, em seguida, pegar a latitude daquela casa especial e de modo semelhante para a longitude. Agora, mais uma vez, usar a distância para ver naquela casa é dentro de 30 pés de nós. Se for esse o caso, eles querem definir este assento como nulo, uma vez que o passageiro foi deixado, e incremento que um passageiro foi abandonado. De modo que, no final, se não havia ninguém caiu fora, anunciamos que ninguém quer ser deixado aqui. Finalmente, precisamos rechart para que exibimos novas, lugares vazios. Agora, você só precisa implementar alguns recursos extras. Agora, não há muito que você poderia ter escolhido a partir. Mas no nosso caso nós implementamos teletransporte, voando, e acelerando, e apressa-se abaixo. Então, vamos olhar para aqueles. Primeiro, vamos dar uma olhada em o recurso de aceleração. Então, no nosso caso, no keystroke função, onde já está lidando todas essas chaves, vamos também para reconhecer X e Z. O que nós especificamos que esses personagens vão causar a velocidade do transporte para aumentar e diminuir. Então, observe que colocamos um limite de quão alto e em como uma baixa velocidade pode realmente ir desde que não queremos o ônibus para ser muito rápido. E nós também não queremos que o transporte de velocidade para ir a zero ou, eventualmente, mesmo negativo o que resultará em algum comportamento estranho. E é isso por excesso de velocidade e abrandar. Agora, vamos dar uma olhada no vôo. Então lembre-se de que o recurso a voar requer que você digite o Código Konami. Então, na parte superior, vemos que temos algumas variáveis ​​globais, Código Konami que é uma matriz que está apenas mantendo o controle do chaves que precisam ser inseridos para o Código Konami. Há um Bool que apenas indica se o Código Konami já tem foi inserido. E depois há o índice em a matriz Código Konami que estamos atualmente. Portanto, se o usuário já entrou três caracteres do Código Konami então o índice vai para apontar para A quarta coisa na matriz, o terceiro índice. Usando isso, mais uma vez, nós vamos olhar para curso chave. E no curso chave que vemos aqui que, se o Código Konami ainda não tenha sido entrou, então nós queremos ver é o chave que foi digitado o que estamos atualmente esperando de a matriz Código Konami. Se for esse o caso, então incrementamos nosso índice. Se o usuário digitar índice acima, em seguida, está indo para ir a um. Em seguida, o usuário irá digitar novamente, o índice vai para dois. Em seguida, eles vão escrever para baixo, ele vai para três. Se eles tipo Q, que vai redefinir a zerar uma vez que não foram encontrados o valor esperado. Agora, se eles conseguem passar o matriz inteira, em seguida, eles entraram na Código Konami. Em qual caso, agora que a Konami entrou é verdade, vemos aqui que, se Konami foi inscrito, aceitamos dois novos chaves, C e E. Que todos aqueles que vão fazer é definir o voando baixo e voar estados para cima do ônibus. Assim, já existem para você. Você só precisa tomar proveito deles. E é isso para voar. Por último, temos teletransportar. Então, dentro do HTML, vemos que nós adicionamos uma caixa de entrada e uma botão teletransportar. A caixa tem endereço ID, eo botão tem um botão de teletransporte ID. Agora um pouco chato detalhe é que se não fizermos nada com evento manipuladores então quando tentamos escrever Algo como um para a caixa de entrada, em vez de realmente amarrar A, o nosso Google Terra vai passar para o A esquerda desde já está registrado para lidar com movimento para a esquerda. Assim, o detalhe irritante aqui é que quando temos uma tecla para baixo ou tecla para cima evento dentro da caixa de entrada, nós queremos para event.stop propagação que é apenas vai impedir que o deslizante do shuttle. Uma vez que é tratada, também deseja adicionar um manipulador para o botão de teletransporte. Quando clicamos no botão de teletransporte, nós agarrar o endereço, o qual é o actual valor na caixa de entrada e, em seguida, chamamos esta função de teletransporte. Então, o que faz o teletransporte função se parece? Bem, a primeira coisa que vemos é que estamos usando geocoder. geocode. Então o que é isso? Bem, se olharmos para o topo, vemos que temos um novo variável global, geocoder. E esta é uma referência mundial a um serviço de geocodificação. Agora o que isso faz para nós? Bem, na caixa de entrada, eu vou ser entrar algo como 33 Oxford Street Cambridge, Massachusetts. Mas nós realmente não pode fazer nada com isso. Queremos converter isso para latitude e longitude. E isso é o que o serviço de geocodificação vai fazer por nós. Na parte inferior da initcb, vemos que temos geocoder é igual a novo google.maps.geocoder que inicializa esta variável para nós. Então, voltar para teleportar. Vemos que estamos usando o geocoder. Estamos geocodificação o endereço que foi passado para a função de teletransporte que foi agarrado a partir da caixa de entrada. E nós estamos passando uma chamada de volta que leva resultados e estado. Então a primeira coisa que precisamos verificar por o documento API de google.maps. GeocodingService. Mapas Então, temos que verificar o estado para ver se ele voltou. google.maps.GeocoderStatus.OK que indica que temos um resultado válido. Se não, então nós começamos, não podemos fazer. Isso pode ser um endereço inválido. Ou o poder serviço API ser baixo ou quem sabe? Supondo que temos um resultado de sucesso, em seguida, vamos pegar a localização de o resultado. E nós estamos indo para definir o mapa do Google no canto inferior direito de ser centrada naquele local e atualizar o ônibus no mapa para esse local. E agora precisamos atualizar o O plug-in do Google Earth. Então, nós atualizamos a latitude e longitude da nave. E nós também precisamos atualizar shuttle.localAnchorCartesian se desde você olha para shuttle.js, você vai ver que que também mantém o controle de latitude e longitude. Então, se nós não atualizar isso, temos a latitude e longitude inicial armazenada escondido em algum lugar. Assim, a atualização que agora, chamamos shuttle.updateCamera para atualizar a tela e nos mostrar o nosso novo local. E é isso. Meu nome é Rob. E esta era Shuttle.