>> [音樂播放]
>> 揚聲器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空。
這樣做有效範圍內的任何乘客， 你已經完成了皮卡。