1 00:00:00,000 --> 00:00:11,712 2 00:00:11,712 --> 00:00:12,850 >> ROB BOWDEN: Oi. 3 00:00:12,850 --> 00:00:13,780 Estou Rob. 4 00:00:13,780 --> 00:00:19,500 E eu espero que você esteja pronto para pegar o que Eu estou caindo fora ou colocar para baixo, 5 00:00:19,500 --> 00:00:22,230 ou vamos começar. 6 00:00:22,230 --> 00:00:25,040 Então a primeira coisa que precisamos a fazer é pegar. 7 00:00:25,040 --> 00:00:29,370 Agora, pegar vai ser a remoção do Ícones dos passageiros do Google 8 00:00:29,370 --> 00:00:32,759 mapear, no canto inferior direito e de o Google Earth no centro da 9 00:00:32,759 --> 00:00:33,970 a tela. 10 00:00:33,970 --> 00:00:37,180 Portanto, a fim de remover os ícones, precisamos ter a 11 00:00:37,180 --> 00:00:39,040 referências a eles em algum lugar. 12 00:00:39,040 --> 00:00:43,680 Mas atualmente, a função Preencher apenas se livrar deles. 13 00:00:43,680 --> 00:00:48,140 Então nós vamos ter que modificar preencher para mantê-los por perto. 14 00:00:48,140 --> 00:00:53,440 >> Agora primeira coisa que vamos ver é que nós tem uma matriz de passageiros global. 15 00:00:53,440 --> 00:00:57,710 E assim nós vamos usar isso é globais passageiros array em Preencher. 16 00:00:57,710 --> 00:01:03,230 Em Preencher, vemos que estamos looping sobre todos os nossos passageiros. 17 00:01:03,230 --> 00:01:10,420 E é este ciclo que está criando o coloque marca para o Google Earth eo 18 00:01:10,420 --> 00:01:12,540 marcador para o mapa do Google. 19 00:01:12,540 --> 00:01:16,420 E agora a nossa modificação para preencher é estar aqui. 20 00:01:16,420 --> 00:01:21,760 Então, nós estamos adicionando aos nossos passageiros " disposição deste objeto que está mantendo 21 00:01:21,760 --> 00:01:26,480 a volta ao marcador e colocar marca nós apenas criado junto com a casa e 22 00:01:26,480 --> 00:01:28,460 nome do passageiro. 23 00:01:28,460 --> 00:01:30,560 >> Então é isso para Preencher. 24 00:01:30,560 --> 00:01:33,210 Agora, precisamos olhar para o traslado. 25 00:01:33,210 --> 00:01:38,540 Assim, em pegar, vamos mais uma vez para iterar sobre todos os nossos passageiros. 26 00:01:38,540 --> 00:01:41,340 Mas agora é a nossa mundial matriz de passageiros. 27 00:01:41,340 --> 00:01:46,150 E aqui estamos vendo muito bem, têm já peguei esse passageiro? 28 00:01:46,150 --> 00:01:50,030 Desde que tenhamos peguei esse passageiro, vemos que no final 29 00:01:50,030 --> 00:01:55,240 vamos definir o marcador eo lugar marca como nulo, uma vez que não somos 30 00:01:55,240 --> 00:01:56,930 já no mapa do Google. 31 00:01:56,930 --> 00:02:00,920 >> Então, se nós já peguei esse de passageiros, em seguida, nós apenas estamos indo para 32 00:02:00,920 --> 00:02:02,920 continue para o próximo passageiro. 33 00:02:02,920 --> 00:02:07,380 Senão, vamos verificar para ver se este casa de passageiros está dentro da 34 00:02:07,380 --> 00:02:08,590 disposição da casa. 35 00:02:08,590 --> 00:02:11,900 Esta é a verificação de que precisamos para ter certeza que não pegar o calouro como 36 00:02:11,900 --> 00:02:13,180 a especificação diz. 37 00:02:13,180 --> 00:02:15,920 Então, se o passageiro é um calouro, vamos 38 00:02:15,920 --> 00:02:18,190 continue para o próximo passageiro. 39 00:02:18,190 --> 00:02:21,720 >> Uma vez que tenhamos verificado que este é um passageiro devemos estar pegando, 40 00:02:21,720 --> 00:02:25,340 vamos agora verificar a latitude e longitude do passageiro e ver 41 00:02:25,340 --> 00:02:27,760 se isso é dentro de 15 pés do ônibus. 42 00:02:27,760 --> 00:02:31,720 Se for esse o caso, nós queremos realmente para pegar esse passageiro. 43 00:02:31,720 --> 00:02:35,890 Então, nós integramos sobre todos os assentos em nosso ônibus olhando para ver se 44 00:02:35,890 --> 00:02:38,110 há um local disponível para o passageiro. 45 00:02:38,110 --> 00:02:41,540 Se um dos assentos é nulo, isso é um local disponível. 46 00:02:41,540 --> 00:02:45,140 Então, nós adicionamos o passageiro do assento. 47 00:02:45,140 --> 00:02:48,760 Lembramo-nos de que pegou o de passageiros, de modo que, no final, o que pudermos 48 00:02:48,760 --> 00:02:52,450 anunciar se realmente não pegar qualquer um para cima. 49 00:02:52,450 --> 00:02:56,140 Lembramos que esta sentado passageiro, pois se conseguirmos 50 00:02:56,140 --> 00:02:59,320 através de todo o transporte, sem assento do passageiro, então precisamos 51 00:02:59,320 --> 00:03:00,885 anunciar que estamos fora de assentos. 52 00:03:00,885 --> 00:03:03,760 53 00:03:03,760 --> 00:03:06,885 >> Então, retire o seu lugar marcar a partir de Google Earth. 54 00:03:06,885 --> 00:03:11,310 Nós removemos seu marcador do Google Maps, definido dentro de nossos passageiros " 55 00:03:11,310 --> 00:03:14,830 marca lugar array e marcador como nulo, como dissemos antes. 56 00:03:14,830 --> 00:03:16,035 E então é isso. 57 00:03:16,035 --> 00:03:17,050 O passageiro foi assentado. 58 00:03:17,050 --> 00:03:19,570 Uma vez que tenha feito isso para todos os passageiros dentro de 15 pés do 59 00:03:19,570 --> 00:03:23,250 shuttle, precisamos rechart. 60 00:03:23,250 --> 00:03:30,270 >> Então Chart é o que vai exibir o passageiros nos assentos mais aqui. 61 00:03:30,270 --> 00:03:32,760 Então, agora, vamos olhar para o gráfico. 62 00:03:32,760 --> 00:03:37,960 Dentro de Gráfico, vamos ser construção do HTML para o gráfico. 63 00:03:37,960 --> 00:03:41,160 Assim, o gráfico vai ser uma lista ordenada. 64 00:03:41,160 --> 00:03:44,300 Então vamos iterar sobre todos assentos no nosso autocarro. 65 00:03:44,300 --> 00:03:48,450 Portanto, se esse lugar específico é nulo, que significa que queremos um item da lista que 66 00:03:48,450 --> 00:03:50,800 indica que é um fácil vazio. 67 00:03:50,800 --> 00:03:55,650 Outra coisa, se não fosse nulo, então nós queremos um item da lista que vai exibir 68 00:03:55,650 --> 00:03:58,660 o nome do passageiro, e a casa do passageiro 69 00:03:58,660 --> 00:04:00,420 que está neste lugar. 70 00:04:00,420 --> 00:04:04,620 >> Uma vez que tenhamos iterado sobre toda a assentos então fechamos nossa lista ordenada 71 00:04:04,620 --> 00:04:09,410 e usar jQuery para selecionar o div gráfico e substituí-lo é HTML com o nosso novo 72 00:04:09,410 --> 00:04:10,550 lista ordenada. 73 00:04:10,550 --> 00:04:12,090 E isso é tudo para Chart. 74 00:04:12,090 --> 00:04:15,170 >> Então última coisa é cair fora. 75 00:04:15,170 --> 00:04:20,860 Agora cair vai ser bastante semelhante a pegar. 76 00:04:20,860 --> 00:04:24,150 Em vez de fazer loop para todo o passageiros, vamos varrer 77 00:04:24,150 --> 00:04:25,780 todos os assentos do ônibus. 78 00:04:25,780 --> 00:04:29,720 Então looping nos assentos do ônibus, nós ver é este assento de transporte especial 79 00:04:29,720 --> 00:04:32,850 não nulo, caso em que não há um passageiro neste lugar. 80 00:04:32,850 --> 00:04:35,380 Se for esse o caso, nós queremos para pegar a latitude e 81 00:04:35,380 --> 00:04:37,030 longitude deste passageiro. 82 00:04:37,030 --> 00:04:42,110 >> Então, usando conjunto da casa, nós somos vai pegar a casa do 83 00:04:42,110 --> 00:04:46,990 passageiros neste lugar e, em seguida, pegar a latitude daquela casa especial 84 00:04:46,990 --> 00:04:49,070 e de modo semelhante para a longitude. 85 00:04:49,070 --> 00:04:54,270 Agora, mais uma vez, usar a distância para ver naquela casa é dentro de 30 pés de nós. 86 00:04:54,270 --> 00:04:58,320 Se for esse o caso, eles querem definir este assento como nulo, uma vez que o passageiro 87 00:04:58,320 --> 00:05:01,760 foi deixado, e incremento que um passageiro foi abandonado. 88 00:05:01,760 --> 00:05:05,910 De modo que, no final, se não havia ninguém caiu fora, anunciamos que ninguém 89 00:05:05,910 --> 00:05:07,600 quer ser deixado aqui. 90 00:05:07,600 --> 00:05:12,510 >> Finalmente, precisamos rechart para que exibimos novas, lugares vazios. 91 00:05:12,510 --> 00:05:15,770 Agora, você só precisa implementar alguns recursos extras. 92 00:05:15,770 --> 00:05:17,680 Agora, não há muito que você poderia ter escolhido a partir. 93 00:05:17,680 --> 00:05:21,630 Mas no nosso caso nós implementamos teletransporte, voando, e acelerando, e 94 00:05:21,630 --> 00:05:22,770 apressa-se abaixo. 95 00:05:22,770 --> 00:05:25,100 Então, vamos olhar para aqueles. 96 00:05:25,100 --> 00:05:27,830 Primeiro, vamos dar uma olhada em o recurso de aceleração. 97 00:05:27,830 --> 00:05:32,720 Então, no nosso caso, no keystroke função, onde já está lidando 98 00:05:32,720 --> 00:05:39,900 todas essas chaves, vamos também para reconhecer X e Z. O que nós especificamos 99 00:05:39,900 --> 00:05:43,720 que esses personagens vão causar a velocidade do transporte para 100 00:05:43,720 --> 00:05:46,530 aumentar e diminuir. 101 00:05:46,530 --> 00:05:50,940 >> Então, observe que colocamos um limite de quão alto e em como uma baixa velocidade pode 102 00:05:50,940 --> 00:05:55,030 realmente ir desde que não queremos o ônibus para ser muito rápido. 103 00:05:55,030 --> 00:05:58,180 E nós também não queremos que o transporte de velocidade para ir a zero ou, eventualmente, 104 00:05:58,180 --> 00:06:01,480 mesmo negativo o que resultará em algum comportamento estranho. 105 00:06:01,480 --> 00:06:03,890 E é isso por excesso de velocidade e abrandar. 106 00:06:03,890 --> 00:06:05,980 >> Agora, vamos dar uma olhada no vôo. 107 00:06:05,980 --> 00:06:11,370 Então lembre-se de que o recurso a voar requer que você digite o Código Konami. 108 00:06:11,370 --> 00:06:18,070 Então, na parte superior, vemos que temos algumas variáveis ​​globais, Código Konami que é 109 00:06:18,070 --> 00:06:20,975 uma matriz que está apenas mantendo o controle do chaves que precisam ser inseridos para 110 00:06:20,975 --> 00:06:22,600 o Código Konami. 111 00:06:22,600 --> 00:06:26,340 Há um Bool que apenas indica se o Código Konami já tem 112 00:06:26,340 --> 00:06:27,660 foi inserido. 113 00:06:27,660 --> 00:06:30,430 E depois há o índice em a matriz Código Konami que 114 00:06:30,430 --> 00:06:31,770 estamos atualmente. 115 00:06:31,770 --> 00:06:36,020 >> Portanto, se o usuário já entrou três caracteres do Código Konami 116 00:06:36,020 --> 00:06:40,530 então o índice vai para apontar para A quarta coisa na matriz, o 117 00:06:40,530 --> 00:06:42,150 terceiro índice. 118 00:06:42,150 --> 00:06:44,630 Usando isso, mais uma vez, nós vamos olhar para curso chave. 119 00:06:44,630 --> 00:06:48,040 120 00:06:48,040 --> 00:06:51,910 E no curso chave que vemos aqui que, se o Código Konami ainda não tenha sido 121 00:06:51,910 --> 00:06:58,410 entrou, então nós queremos ver é o chave que foi digitado o que estamos 122 00:06:58,410 --> 00:07:01,250 atualmente esperando de a matriz Código Konami. 123 00:07:01,250 --> 00:07:04,350 Se for esse o caso, então incrementamos nosso índice. 124 00:07:04,350 --> 00:07:07,660 >> Se o usuário digitar índice acima, em seguida, está indo para ir a um. 125 00:07:07,660 --> 00:07:10,280 Em seguida, o usuário irá digitar novamente, o índice vai para dois. 126 00:07:10,280 --> 00:07:12,150 Em seguida, eles vão escrever para baixo, ele vai para três. 127 00:07:12,150 --> 00:07:17,320 Se eles tipo Q, que vai redefinir a zerar uma vez que não foram encontrados 128 00:07:17,320 --> 00:07:20,140 o valor esperado. 129 00:07:20,140 --> 00:07:24,810 Agora, se eles conseguem passar o matriz inteira, em seguida, eles entraram na 130 00:07:24,810 --> 00:07:26,280 Código Konami. 131 00:07:26,280 --> 00:07:33,960 Em qual caso, agora que a Konami entrou é verdade, vemos aqui que, se 132 00:07:33,960 --> 00:07:40,460 Konami foi inscrito, aceitamos dois novos chaves, C e E. Que todos aqueles que vão fazer 133 00:07:40,460 --> 00:07:45,800 é definir o voando baixo e voar estados para cima do ônibus. 134 00:07:45,800 --> 00:07:48,530 Assim, já existem para você. 135 00:07:48,530 --> 00:07:51,190 Você só precisa tomar proveito deles. 136 00:07:51,190 --> 00:07:52,890 E é isso para voar. 137 00:07:52,890 --> 00:07:54,680 >> Por último, temos teletransportar. 138 00:07:54,680 --> 00:08:00,710 Então, dentro do HTML, vemos que nós adicionamos uma caixa de entrada e uma 139 00:08:00,710 --> 00:08:02,270 botão teletransportar. 140 00:08:02,270 --> 00:08:08,300 A caixa tem endereço ID, eo botão tem um botão de teletransporte ID. 141 00:08:08,300 --> 00:08:13,970 Agora um pouco chato detalhe é que se não fizermos nada com evento 142 00:08:13,970 --> 00:08:19,210 manipuladores então quando tentamos escrever Algo como um para a caixa de entrada, 143 00:08:19,210 --> 00:08:25,250 em vez de realmente amarrar A, o nosso Google Terra vai passar para o 144 00:08:25,250 --> 00:08:30,040 A esquerda desde já está registrado para lidar com movimento para a esquerda. 145 00:08:30,040 --> 00:08:35,100 >> Assim, o detalhe irritante aqui é que quando temos uma tecla para baixo ou tecla para cima 146 00:08:35,100 --> 00:08:40,789 evento dentro da caixa de entrada, nós queremos para event.stop propagação que é 147 00:08:40,789 --> 00:08:43,830 apenas vai impedir que o deslizante do shuttle. 148 00:08:43,830 --> 00:08:48,510 Uma vez que é tratada, também deseja adicionar um manipulador para o botão de teletransporte. 149 00:08:48,510 --> 00:08:52,880 Quando clicamos no botão de teletransporte, nós agarrar o endereço, o qual é o actual 150 00:08:52,880 --> 00:08:57,580 valor na caixa de entrada e, em seguida, chamamos esta função de teletransporte. 151 00:08:57,580 --> 00:09:00,910 >> Então, o que faz o teletransporte função se parece? 152 00:09:00,910 --> 00:09:04,840 Bem, a primeira coisa que vemos é que estamos usando geocoder. geocode. 153 00:09:04,840 --> 00:09:06,940 Então o que é isso? 154 00:09:06,940 --> 00:09:10,330 Bem, se olharmos para o topo, vemos que temos um novo 155 00:09:10,330 --> 00:09:13,860 variável global, geocoder. 156 00:09:13,860 --> 00:09:17,500 E esta é uma referência mundial a um serviço de geocodificação. 157 00:09:17,500 --> 00:09:19,380 Agora o que isso faz para nós? 158 00:09:19,380 --> 00:09:23,810 Bem, na caixa de entrada, eu vou ser entrar algo como 33 Oxford 159 00:09:23,810 --> 00:09:26,040 Street Cambridge, Massachusetts. 160 00:09:26,040 --> 00:09:28,580 Mas nós realmente não pode fazer nada com isso. 161 00:09:28,580 --> 00:09:31,760 Queremos converter isso para latitude e longitude. 162 00:09:31,760 --> 00:09:34,940 E isso é o que o serviço de geocodificação vai fazer por nós. 163 00:09:34,940 --> 00:09:40,630 Na parte inferior da initcb, vemos que temos geocoder é igual a novo 164 00:09:40,630 --> 00:09:45,830 google.maps.geocoder que inicializa esta variável para nós. 165 00:09:45,830 --> 00:09:47,930 >> Então, voltar para teleportar. 166 00:09:47,930 --> 00:09:51,240 Vemos que estamos usando o geocoder. 167 00:09:51,240 --> 00:09:54,970 Estamos geocodificação o endereço que foi passado para a função de teletransporte que 168 00:09:54,970 --> 00:09:57,450 foi agarrado a partir da caixa de entrada. 169 00:09:57,450 --> 00:10:02,020 E nós estamos passando uma chamada de volta que leva resultados e estado. 170 00:10:02,020 --> 00:10:05,905 Então a primeira coisa que precisamos verificar por o documento API de google.maps. 171 00:10:05,905 --> 00:10:06,130 GeocodingService. 172 00:10:06,130 --> 00:10:08,330 Mapas 173 00:10:08,330 --> 00:10:11,550 >> Então, temos que verificar o estado para ver se ele voltou. 174 00:10:11,550 --> 00:10:16,820 google.maps.GeocoderStatus.OK que indica que temos um resultado válido. 175 00:10:16,820 --> 00:10:19,310 Se não, então nós começamos, não podemos fazer. 176 00:10:19,310 --> 00:10:20,990 Isso pode ser um endereço inválido. 177 00:10:20,990 --> 00:10:24,630 Ou o poder serviço API ser baixo ou quem sabe? 178 00:10:24,630 --> 00:10:29,980 Supondo que temos um resultado de sucesso, em seguida, vamos pegar a localização de 179 00:10:29,980 --> 00:10:30,790 o resultado. 180 00:10:30,790 --> 00:10:34,220 E nós estamos indo para definir o mapa do Google no canto inferior direito de ser 181 00:10:34,220 --> 00:10:38,870 centrada naquele local e atualizar o ônibus no mapa para esse local. 182 00:10:38,870 --> 00:10:41,620 >> E agora precisamos atualizar o O plug-in do Google Earth. 183 00:10:41,620 --> 00:10:45,340 Então, nós atualizamos a latitude e longitude da nave. 184 00:10:45,340 --> 00:10:50,570 E nós também precisamos atualizar shuttle.localAnchorCartesian se desde 185 00:10:50,570 --> 00:10:55,250 você olha para shuttle.js, você vai ver que que também mantém o controle de latitude 186 00:10:55,250 --> 00:10:56,310 e longitude. 187 00:10:56,310 --> 00:10:59,490 Então, se nós não atualizar isso, temos a latitude e longitude inicial 188 00:10:59,490 --> 00:11:01,330 armazenada escondido em algum lugar. 189 00:11:01,330 --> 00:11:06,490 Assim, a atualização que agora, chamamos shuttle.updateCamera para atualizar a 190 00:11:06,490 --> 00:11:09,070 tela e nos mostrar o nosso novo local. 191 00:11:09,070 --> 00:11:10,380 E é isso. 192 00:11:10,380 --> 00:11:11,500 Meu nome é Rob. 193 00:11:11,500 --> 00:11:12,750 E esta era Shuttle. 194 00:11:12,750 --> 00:11:18,080