1 00:00:00,000 --> 00:00:11,712 2 00:00:11,712 --> 00:00:12,850 >> ROB BOWDEN:你好。 3 00:00:12,850 --> 00:00:13,780 我抢。 4 00:00:13,780 --> 00:00:19,500 我希望你准备好拿起什么 我掉下或放下, 5 00:00:19,500 --> 00:00:22,230 还是让我们开始吧。 6 00:00:22,230 --> 00:00:25,040 我们需要这样的第一件事 要做的就是拿起。 7 00:00:25,040 --> 00:00:29,370 现在,拿起将被移除 从谷歌乘客的图标 8 00:00:29,370 --> 00:00:32,759 在地图右下角,并从 在谷歌地球中的中心 9 00:00:32,759 --> 00:00:33,970 在屏幕上。 10 00:00:33,970 --> 00:00:37,180 因此,为了消除这些 图标,我们需要有 11 00:00:37,180 --> 00:00:39,040 他们引用的地方。 12 00:00:39,040 --> 00:00:43,680 但目前,该填充功能 刚刚摆脱他们。 13 00:00:43,680 --> 00:00:48,140 因此,我们将不得不修改 填充,以保持他们周围。 14 00:00:48,140 --> 00:00:53,440 >> 我们现在看到的第一件事情是,我们 有一个全球性的乘客阵列。 15 00:00:53,440 --> 00:00:57,710 所以我们要使用全球的 乘客数组中填充。 16 00:00:57,710 --> 00:01:03,230 在填充,我们看到,我们正在循环 在我们所有的乘客。 17 00:01:03,230 --> 00:01:10,420 而正是这种循环的建立 放置标志为谷歌地球和 18 00:01:10,420 --> 00:01:12,540 标记为谷歌地图。 19 00:01:12,540 --> 00:01:16,420 所以现在我们修改 填充是到这里来。 20 00:01:16,420 --> 00:01:21,760 因此,我们要添加到我们的乘客 这个数组对象,是保持 21 00:01:21,760 --> 00:01:26,480 周围的标记和标记的地方,我们只是 随着房子和创建 22 00:01:26,480 --> 00:01:28,460 乘客的名字。 23 00:01:28,460 --> 00:01:30,560 >> 所以这是它的填充。 24 00:01:30,560 --> 00:01:33,210 现在,我们需要看看回升。 25 00:01:33,210 --> 00:01:38,540 所以在回暖,我们再次去 遍历所有的乘客。 26 00:01:38,540 --> 00:01:41,340 但现在它是我们全球 乘客阵列。 27 00:01:41,340 --> 00:01:46,150 在这里,我们所看到的那么好,也 我们已经拿起这乘客? 28 00:01:46,150 --> 00:01:50,030 因为如果我们拿起这 乘客,我们到底看到, 29 00:01:50,030 --> 00:01:55,240 我们要设置标记和 地点标记为null,因为他们没有 30 00:01:55,240 --> 00:01:56,930 在谷歌地图更长。 31 00:01:56,930 --> 00:02:00,920 >> 所以,如果我们已经拿起这 乘客那么我们只是要 32 00:02:00,920 --> 00:02:02,920 继续下一个乘客。 33 00:02:02,920 --> 00:02:07,380 否则,我们检查,看是否能 乘客的房子里面 34 00:02:07,380 --> 00:02:08,590 房子的数组。 35 00:02:08,590 --> 00:02:11,900 这是我们需要确保检查 我们不拿起作为大一 36 00:02:11,900 --> 00:02:13,180 规范说。 37 00:02:13,180 --> 00:02:15,920 因此,如果乘客是一个新生, 我们要 38 00:02:15,920 --> 00:02:18,190 继续下一个乘客。 39 00:02:18,190 --> 00:02:21,720 >> 一旦我们确认,这是一个 乘客我们应该拿起, 40 00:02:21,720 --> 00:02:25,340 我们现在要检查的纬度 和乘客的经度和看 41 00:02:25,340 --> 00:02:27,760 如果这是15英尺范围内 的班车。 42 00:02:27,760 --> 00:02:31,720 如果是这样的话,我们其实是想 拿起这个乘客。 43 00:02:31,720 --> 00:02:35,890 所以,我们整合了所有的座位 我们穿梭寻找,看是否 44 00:02:35,890 --> 00:02:38,110 有可用的点 对于乘客。 45 00:02:38,110 --> 00:02:41,540 如果一个座位是空, 这是一个备有现货。 46 00:02:41,540 --> 00:02:45,140 因此,我们的乘客加入到座位上。 47 00:02:45,140 --> 00:02:48,760 我们记得,我们拿起 乘客因此,在年底,我们可以 48 00:02:48,760 --> 00:02:52,450 宣布如果我们真的 没有接任何人了。 49 00:02:52,450 --> 00:02:56,140 我们记得,我们坐在这 乘客因为如果我们设法让 50 00:02:56,140 --> 00:02:59,320 通过不整班车 座位的乘客,那么我们就需要 51 00:02:59,320 --> 00:03:00,885 宣布,我们出门在外的席位。 52 00:03:00,885 --> 00:03:03,760 53 00:03:03,760 --> 00:03:06,885 >> 然后我们会删除自己的位置 从谷歌地球标记。 54 00:03:06,885 --> 00:03:11,310 我们从谷歌地图中删除自己的标记, 我们的乘客里面设置' 55 00:03:11,310 --> 00:03:14,830 数组的地方标记和标记 为null,因为我们之前所说的。 56 00:03:14,830 --> 00:03:16,035 然后就是这样。 57 00:03:16,035 --> 00:03:17,050 该乘客已就位。 58 00:03:17,050 --> 00:03:19,570 一旦我们做到了这一点为所有乘客 15英尺范围内的 59 00:03:19,570 --> 00:03:23,250 班车,我们需要rechart。 60 00:03:23,250 --> 00:03:30,270 >> 所以,图的是什么事情,以显示 乘客座位在这里。 61 00:03:30,270 --> 00:03:32,760 所以,现在,让我们来看看图表。 62 00:03:32,760 --> 00:03:37,960 图里面的,我们要成为 构造的HTML图表。 63 00:03:37,960 --> 00:03:41,160 因此图表是要 是一个有序列表。 64 00:03:41,160 --> 00:03:44,300 然后,我们将遍历所有的 该席位在我们的班车。 65 00:03:44,300 --> 00:03:48,450 因此,如果这个特定的座位是空,即 意味着我们想要一个列表项 66 00:03:48,450 --> 00:03:50,800 表明它是一个空的容易。 67 00:03:50,800 --> 00:03:55,650 否则,如果它不为null,那么我们希望 一个列表项,是要显示 68 00:03:55,650 --> 00:03:58,660 乘客的姓名和 乘客的房子 69 00:03:58,660 --> 00:04:00,420 这是在这个位子。 70 00:04:00,420 --> 00:04:04,620 >> 一旦我们遍历所有的 座椅那么我们闭上了我们的有序列表 71 00:04:04,620 --> 00:04:09,410 并使用jQuery选择图表的div 和替换它的HTML与我们的新 72 00:04:09,410 --> 00:04:10,550 有序列表。 73 00:04:10,550 --> 00:04:12,090 就是这样的图表。 74 00:04:12,090 --> 00:04:15,170 >> 所以最后一件事是落。 75 00:04:15,170 --> 00:04:20,860 现在,落将是 非常相似的回升。 76 00:04:20,860 --> 00:04:24,150 而不是遍历所有的 乘客,我们要遍历 77 00:04:24,150 --> 00:04:25,780 所有的班车座位。 78 00:04:25,780 --> 00:04:29,720 因此,在循环穿梭席位,我们 看到的是这个特定的班车座位 79 00:04:29,720 --> 00:04:32,850 不为null,在这种情况下,有 乘客在这个位子。 80 00:04:32,850 --> 00:04:35,380 如果是这样的话,我们希望 抢纬度和 81 00:04:35,380 --> 00:04:37,030 东经这个乘客。 82 00:04:37,030 --> 00:04:42,110 >> 因此,使用房子的数组,我们 要抢的房子 83 00:04:42,110 --> 00:04:46,990 乘客在这个位子,然后抢 该特定房屋的纬度 84 00:04:46,990 --> 00:04:49,070 同样的经度。 85 00:04:49,070 --> 00:04:54,270 现在,我们再次用距离来看看 在那所房子是30英尺内我们。 86 00:04:54,270 --> 00:04:58,320 如果是这样的话,他们想要设定 这个座位为null,因为乘客 87 00:04:58,320 --> 00:05:01,760 被取消了,并且增量, 一名乘客下车。 88 00:05:01,760 --> 00:05:05,910 因此,在年底,如果没有人 下车,我们宣布,任何人 89 00:05:05,910 --> 00:05:07,600 要在这里下车。 90 00:05:07,600 --> 00:05:12,510 >> 最后,我们需要rechart使 我们展示新的空座位。 91 00:05:12,510 --> 00:05:15,770 现在,你只需要实现 一些额外的功能。 92 00:05:15,770 --> 00:05:17,680 现在,有很多你可以 从选择。 93 00:05:17,680 --> 00:05:21,630 但在我们的例子中,我们实施的瞬移, 飞行,并加快和 94 00:05:21,630 --> 00:05:22,770 加快了。 95 00:05:22,770 --> 00:05:25,100 因此,让我们来看看这些。 96 00:05:25,100 --> 00:05:27,830 首先,让我们来看看 在加快功能。 97 00:05:27,830 --> 00:05:32,720 所以在我们的情况下,在击键 功能,在这里我们已经处理 98 00:05:32,720 --> 00:05:39,900 所有这些键的,我们也要去 认识X和哪些我们指定Z。 99 00:05:39,900 --> 00:05:43,720 这些字符要 导致航天飞机的速度,以 100 00:05:43,720 --> 00:05:46,530 增加和减少。 101 00:05:46,530 --> 00:05:50,940 >> 所以请注意,我们把一个绑定就如何 高,如何低的速度可 102 00:05:50,940 --> 00:05:55,030 实际上去,因为我们不希望 航天飞机是太快了。 103 00:05:55,030 --> 00:05:58,180 而且我们也不想航天飞机 速度到零或可能 104 00:05:58,180 --> 00:06:01,480 甚至为负,这将导致 在一些奇怪的行为。 105 00:06:01,480 --> 00:06:03,890 就是这样超速 时慢了下来。 106 00:06:03,890 --> 00:06:05,980 >> 现在,让我们来看看飞。 107 00:06:05,980 --> 00:06:11,370 所以请记住,飞功能 要求您输入科纳米代码。 108 00:06:11,370 --> 00:06:18,070 所以在顶部,我们看到我们有一些 全局变量,科乐美码是 109 00:06:18,070 --> 00:06:20,975 这只是跟踪的一个数组 需要时,要输入的键 110 00:06:20,975 --> 00:06:22,600 科乐美的代码。 111 00:06:22,600 --> 00:06:26,340 有一个布尔刚刚表示 科乐美的代码是否已经 112 00:06:26,340 --> 00:06:27,660 被输入。 113 00:06:27,660 --> 00:06:30,430 然后还有的索引 科纳米代码数组 114 00:06:30,430 --> 00:06:31,770 我们目前正处在。 115 00:06:31,770 --> 00:06:36,020 >> 因此,如果用户已经输入了三个 科纳米码字符 116 00:06:36,020 --> 00:06:40,530 然后索引会指向 在阵列中的第四事情, 117 00:06:40,530 --> 00:06:42,150 第三个指标。 118 00:06:42,150 --> 00:06:44,630 利用这一点,我们再一次会 看击键。 119 00:06:44,630 --> 00:06:48,040 120 00:06:48,040 --> 00:06:51,910 而在关键的行程,我们在这里看到的,如果 科纳米代码已不是 121 00:06:51,910 --> 00:06:58,410 进入,那么我们希望看到的是 键时输入的内容我们 122 00:06:58,410 --> 00:07:01,250 从目前预期 科纳米码数组。 123 00:07:01,250 --> 00:07:04,350 如果是这样的话,那么 我们增加我们的索引。 124 00:07:04,350 --> 00:07:07,660 >> 如果用户键入向上则指数 是要去的。 125 00:07:07,660 --> 00:07:10,280 然后,用户将输入了一遍, 索引变为2。 126 00:07:10,280 --> 00:07:12,150 然后,他们会输入了下来, 它会去到三个。 127 00:07:12,150 --> 00:07:17,320 如果他们输入Q,它会重置为 零,因为他们不匹配 128 00:07:17,320 --> 00:07:20,140 预期值。 129 00:07:20,140 --> 00:07:24,810 现在,如果他们设法打通 整个数组,那么他们已经进入了 130 00:07:24,810 --> 00:07:26,280 KONAMI码。 131 00:07:26,280 --> 00:07:33,960 在这种情况下,现在进入小浪 诚然,我们看到这儿,如果 132 00:07:33,960 --> 00:07:40,460 KONAMI输入了,我们接受了两个新的 键,C和E,所有这些都行 133 00:07:40,460 --> 00:07:45,800 置的向下飞行和飞行 向上国中穿梭。 134 00:07:45,800 --> 00:07:48,530 所以,已经为你存在。 135 00:07:48,530 --> 00:07:51,190 你只需要采取 利用它们。 136 00:07:51,190 --> 00:07:52,890 这就是它的飞行。 137 00:07:52,890 --> 00:07:54,680 >> 最后,我们已经瞬移。 138 00:07:54,680 --> 00:08:00,710 所以内部的HTML中,我们看到 我们增加了一个输入框和一个 139 00:08:00,710 --> 00:08:02,270 瞬移按钮。 140 00:08:02,270 --> 00:08:08,300 该对话框有ID地址,和按钮 有一个ID瞬移按钮。 141 00:08:08,300 --> 00:08:13,970 现在是一个恼人的小细节是, 如果我们不与事件做任何事 142 00:08:13,970 --> 00:08:19,210 处理器然后,当我们尝试键入 有点像在输入框中, 143 00:08:19,210 --> 00:08:25,250 而不是实际平了,我们的谷歌 地球将要移动到 144 00:08:25,250 --> 00:08:30,040 离开因为A已经被注册 处理移动到左边。 145 00:08:30,040 --> 00:08:35,100 >> 所以在这里烦人的细节是, 当我们有一个键向下或向上键 146 00:08:35,100 --> 00:08:40,789 事件的输入框里面,我们要 到event.stop传播是 147 00:08:40,789 --> 00:08:43,830 只是要防止 滑动穿梭。 148 00:08:43,830 --> 00:08:48,510 一旦这样处理,我们还需要添加 一个处理程序的瞬移按钮。 149 00:08:48,510 --> 00:08:52,880 当我们点击瞬移按钮,我们 抢地址,这是当前 150 00:08:52,880 --> 00:08:57,580 在输入框中的值,然后 我们称这个瞬移功能。 151 00:08:57,580 --> 00:09:00,910 >> 那么,瞬移 函数是什么样子? 152 00:09:00,910 --> 00:09:04,840 好了,我们看到的第一件事情是我们 使用地理编码器。地理编码。 153 00:09:04,840 --> 00:09:06,940 所以,那是什么? 154 00:09:06,940 --> 00:09:10,330 那么,如果我们顶一下, 我们看到,我们有一个新的 155 00:09:10,330 --> 00:09:13,860 全局变量,地理编码器。 156 00:09:13,860 --> 00:09:17,500 这是一个全球性的参考 到地理编码服务。 157 00:09:17,500 --> 00:09:19,380 现在,这是什么为我们做? 158 00:09:19,380 --> 00:09:23,810 那么,在输入框中,我将是 进入像牛津33 159 00:09:23,810 --> 00:09:26,040 街剑桥,马萨诸塞州。 160 00:09:26,040 --> 00:09:28,580 但是,我们真的不能做 什么这一点。 161 00:09:28,580 --> 00:09:31,760 我们希望将其转换成 纬度和经度。 162 00:09:31,760 --> 00:09:34,940 而这正是地理编码服务 是要为我们做。 163 00:09:34,940 --> 00:09:40,630 在initcb的底部,我们看到 我们有地理编码等于新 164 00:09:40,630 --> 00:09:45,830 google.maps.geocoder它初始化 这个变量对我们。 165 00:09:45,830 --> 00:09:47,930 >> 做回瞬移。 166 00:09:47,930 --> 00:09:51,240 我们看到,我们正在使用的地理编码器。 167 00:09:51,240 --> 00:09:54,970 我们在地理编码的地址是 传递给瞬移功能, 168 00:09:54,970 --> 00:09:57,450 从输入框被抓住了。 169 00:09:57,450 --> 00:10:02,020 我们正在传递一个回调 这需要结果和状态。 170 00:10:02,020 --> 00:10:05,905 我们需要检查每所以第一件事 google.maps的API文档。 171 00:10:05,905 --> 00:10:06,130 GeocodingService。 172 00:10:06,130 --> 00:10:08,330 地图 173 00:10:08,330 --> 00:10:11,550 >> 因此,我们必须检查状态 看它是否返回。 174 00:10:11,550 --> 00:10:16,820 google.maps.GeocoderStatus.OK这 表明我们有一个有效的结果。 175 00:10:16,820 --> 00:10:19,310 如果我们不这样做,那么我们得到的,没有做不到的。 176 00:10:19,310 --> 00:10:20,990 这可能是一个无效的地址。 177 00:10:20,990 --> 00:10:24,630 或API服务可能 关闭或谁知道? 178 00:10:24,630 --> 00:10:29,980 假设我们有一个成功的结果,那么 我们要在抢位置 179 00:10:29,980 --> 00:10:30,790 结果。 180 00:10:30,790 --> 00:10:34,220 而我们要设置的谷歌地图 在右下角是 181 00:10:34,220 --> 00:10:38,870 集中在该位置,并更新 公交地图,以该位置上。 182 00:10:38,870 --> 00:10:41,620 >> 现在我们需要更新 谷歌地球插件。 183 00:10:41,620 --> 00:10:45,340 所以我们更新的纬度和 经度穿梭。 184 00:10:45,340 --> 00:10:50,570 而且我们还需要更新 shuttle.localAnchorCartesian因为如果 185 00:10:50,570 --> 00:10:55,250 你看看shuttle.js,你会看到, 这还跟踪纬度 186 00:10:55,250 --> 00:10:56,310 和经度。 187 00:10:56,310 --> 00:10:59,490 所以,如果我们不更新,我们有 原始的纬度和经度 188 00:10:59,490 --> 00:11:01,330 存储隐藏在某处。 189 00:11:01,330 --> 00:11:06,490 所以更新,现在,我们称之为 shuttle.updateCamera刷新 190 00:11:06,490 --> 00:11:09,070 筛选并展示我们新的位置。 191 00:11:09,070 --> 00:11:10,380 就是这样。 192 00:11:10,380 --> 00:11:11,500 我的名字是罗布。 193 00:11:11,500 --> 00:11:12,750 这是班车。 194 00:11:12,750 --> 00:11:18,080