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