>> [音乐播放]
>> 扬声器1：嗯，我们在这里， 在CS50最后的P组。
从有你们表示祝贺 走了这么远，因为你的第一声问候
世界上并打印出来 金字塔的马里奥。
你做了一个网站的最后一周。
而我们将要制作一个又一个 这个星期，一个可以让你
带动周边的哈佛校园里，采摘 高达CS50的工作人员，并
把他们回到自己的 民居。
>> 现在，在上周，我们曾在PHP中， 服务器端语言。
对于这个P组，我们就要介绍 到JavaScript中，这是一个
客户端语言。
因此，让我们来看看一些 公司所提供的分销代码
你这个P组。
>> 在JavaScript文件夹中，将有 是一堆JavaScript文件。
有buildings.js，它包含一个 哈佛周围建筑物的数组
校园里，与他们的信息 和位置。
Houses.js是哈佛的数组 住宅房屋，其
经度和纬度。
Passengers.js包含一个 乘客阵列 -
在CS50的工作人员 -
你会被带回至 他们居住的房子。
>> Math3D.js，它包含了很多 功能做的运动。
如果你是数学头脑， 那么我欢迎你来看看。
但你并不需要了解 一切都在那里。
Shuttle.js，与交易 航天飞机的运动。
和index.html的是主页， 一切都发生了，真的，那里的
用户互动的网站。
>> Service.css是CSS样式表， 其中，除了Twitter的
引导程序库，控制 如何index.html的样子。
然后我们也有service.js，这 包含服务功能
穿梭。
下面是你要去的地方是 填写一些到DOS。
>> 现在让我们来看看对象和 关联数组在JavaScript中，
这对于所有意图和目的 是可以互换的。
如果我想使一个对象的变量 所谓的魔杖，我会
声明它。
和那些大括号我会内 指定核心是麒麟。
木材是樱花。
和长度为13。
>> 现在我也可以访问值 使用对象
关联数组表示法。
所以魔杖指数的核心，我可以设置 这等于麒麟，或
检查，如果我需要。
或者，我可以使用点运算符。
魔杖点木等于樱桃， 等等，等等。
所以你看到，关联数组和 在JavaScript对象都将是
互换和意志 进来很方便。
>> 然后，我们看到建筑的数组 在buildings.js。
再次，对象的数组。
如果我想做出最好的一个数组 在哈佛校园的建筑物，然后
我想使它成为如下。
使用此对象表示法，其中 我存储的根，名称，地址，
纬度，经度和每 单体建筑对象。
>> 让我们快速谈谈变量 在JavaScript中。
像PHP，JavaScript变量 是弱或松散类型。
要创建一个局部变量，你前缀 变量名与V-A-R，变种。
>> 现在，在JavaScript中，函数会 限制变量的范围。
因此，如果你在有一个局部变量 一个函数，那么其他功能
不能访问它。
但是，与C，循环和条件不 限制变量的范围。
>> 所以，即使你的内声明它 条件，整个功能将
可以访问它。
现在还没有变种，变 将是全球性的。
所以，如果你只需要声明的名称和 指定一个值，则该变量
将是一个全局变量 在JavaScript中。
>> 现在的房子，我们有一个关联 房子类型对象的数组，其中
每一个房子只是一个纬度 和经度。
那么我们有乘客 阵列，它是一个数组
的对象类型的乘客。
所以，每一位乘客都有一个用户名， 一个名字，和一所房子。
请注意，我看到的类型 乘客，这真的只是意味着
每个对象都有 同样的键值对。
所以型乘用车的每一个对象都有 一个用户名，一个名称和一个房子。
>> 那么，我们需要 这样做对于P组？
好了，我们需要允许用户选择 了工作人员，以显示所有的
工作人员目前正在 我们的班车，并把它们关闭。
然后，我们也将讨论额外的 给可实现的功能
穿梭P设置。
>> 但是，让我们来谈谈皮卡第一。
CS50工作人员的面孔已经 种满校园，其中每个
脸是作为一个地方标志 的三维地球上，作为一个
标记的2D地图上。
因此，当用户单击拾取 按钮，我们希望附近的加
乘客穿梭。
我们也想删除自己的位置 来自世界纪念，并删除其
标记从地图上看，这表明 他们在我们的班车了。
>> 那么，我们如何检测，如果乘客 都在我们的航天飞机范围是多少？
当然，函数距离 -
所以班车点距离，传递 纬度和经度，将
计算从当前的距离 穿梭到的位置
点那个你指定 给定的纬度和经度。
所以，你可以用它来计算 距离从航天飞机到
乘客。
>> 但你怎么知道在哪里 乘客是？
嗯，这就是我们必须 编辑填充功能。
填充所有地方的工作人员 和乘客走向世界，
并进入地图，但不 存储他们的位置。
因此，也许你可以存储自己的 放置标记和标记
在一些全局数组。
>> 现在已有了一个全局数组 乘客存储信息。
每个乘客阵列存储 乘客的姓名和他们的房子。
所以也许你可以添加一些参数 有给乘客的对象。
>> 为了帮助我们检测到所有的乘客 在我们穿梭范围，让我们
通过所有的乘客循环 在乘客阵列。
for循环在JavaScript看起来 这样的事情，非常相似，
这些循环在C或者，我们可以使用一个 替代for循环结构。
>> 对于数组变种我，我在那里 将仍然是指数。
但你并不需要指定 数组长度点
状态，我加再加。
每一个乘客的位置是 通过他们的地方得分。
>> 但这个地方标志是不 纬度和经度。
我们必须通过访问这些参数 获得的几何形状，使用get
几何上的地点标记。
然后一旦我们有几何， 让无论是纬度或
经度，使用这些功能。
>> 所以，现在我们知道如何检测是否 乘客都在
我们的范围内穿梭。
一旦我们有了这些乘客，我们将 要补充的是，任何乘客
内的范围。
我们希望，让他们跳，并 坐我们的班车，但只有
如果我们有足够的空间给他们。
>> 班车点的座位阵列将 表示座位是否是空的，或
谁在那个位子。
所以，如果一个座位是空的，那么 那个座位将为null。
所以遍历数组席位， 检查空座位，存储
乘客进入这些席位，直到你 没有任何更多的空座位。
不幸的是，其他乘客 将必须等待
下一次航天飞机恶有恶报。
>> 一旦他们穿梭取得联系，我们会想 删除自己的位置标记，它
是他们的照片在3D世界中。
如果我想删除一个地方标记P， 然后我会得到所有的功能
从我的地球，从谷歌地球， 然后删除特定的地方
标记使用removeChild功能。
那么最后，让我们删除标记， 在二维地图上的任何图标
乘客，我们正在加快。
要删除标记，M，然后我会 只是执行米点setMap空。
这样做有效范围内的任何乘客， 你已经完成了皮卡。