>> [音楽再生]
>> スピーカ1：さて、ここで我々は、 CS50での最後のPセット。
持っていることから自分自身を祝福 ここまで来て以来、最初のこんにちは
世界とプリントアウト マリオのためのピラミッド。
あなたは先週、ウェブサイトを作りました。
そして、我々は別のものを作ることになるだろう 今週、あなたがすることを可能にする1
ピッキング、ハーバード大学のキャンパスをドライブ 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、VAR変数名。
>> 今JavaScriptでは、関数は、意志 変数の範囲を制限する。
だから、内のローカル変数を持っている場合 機能は、他の機能
それにアクセスすることはできません。
しかし、Cとは異なり、ループや条件にはありません 変数の範囲を制限する。
>> だから、Aの内部でそれを宣言する場合でも、 条件、関数全体の意志
それにアクセスすることができます。
今VARなしで、変数 グローバルになります。
あなただけの名前を宣言し、もしそうであれば 値を割り当て、その変数
グローバル変数になります JavaScriptで。
>> 今の家では、我々は連想を持っている 家のTypeオブジェクトの配列。ここで、
すべての家はちょうど緯度 と経度。
その後、我々は乗客を持っている 配列になって、
オブジェクト型の乗客の。
したがって、すべての乗客には、ユーザ名を持っている、 名、および家。
私はタイプで見ていることに注意してください 実際には意味の乗客、
すべてのオブジェクトが持っていることを 同じキーと値のペア。
そうタイプの乗用車のすべてのオブジェクトがあります ユーザー名、名前、および家。
>> だから我々はには何が必要なのですか Pセットのために何が？
まあ、我々は、ユーザーが選択できるようにする必要があります スタッフメンバーまで、すべてを表示するには
に現在あるスタッフメンバー 私たちのシャトルバス、それらをオフにドロップします。
そして、我々はまた、余分な話をします のために実装できる機能
シャトルPセット。
>> しかし、ここでは最初のピックアップについてお話ししましょう​​。
CS50スタッフの顔があった ここで、それぞれ、すべてのキャンパスの上に植え
顔が場所マークとして実装されています 3D地球上などの
2Dマップ上のマーカー。
ユーザがピックアップをクリックしたとき ボタン、我々は、近く追加する
シャトルバスの乗客。
そして、我々はまた、その場所を削除したい 世界からマークし、削除し、その
それを示すマップからのマーカー、 彼らは今、私たちのシャトルにいる。
>> では、どのように検出しないかの乗客 私たちのシャトルの範囲内にある？
さて、関数の距離 -
そのシャトルドット距離を渡す 緯度と経度、意志
現在までの距離を計算する へのシャトルの位置
あなたはそれと指定するポイント 緯度と経度を与えられた。
だから、計算するためにこれを使用することができます へのシャトルからの距離
乗客。
>> しかし、どのようにどこで知っていますか 乗客は何ですか？
我々はする必要がありますどこでまあ、それはだ 移入機能を編集します。
場所のスタッフのすべてを取り込む 世界へと乗客、
そしてマップにしませんが、 その場所に保管します。
だから、おそらくあなたは自分を保存することができます マークやマーカーを配置
いくつかのグローバル配列内の。
>> 今すでにグローバル配列があります 乗客からの情報を記憶する。
乗客·アレイには、各 乗客の名前と彼らの家。
だから、多分あなたは、いくつかのパラメータを追加することができます そこに乗客のオブジェクトに。
>> 私たちはすべての乗客の検出に役立つ 私たちのシャトルの範囲内で、みましょう
乗客のすべてをループ 乗客配列内。
JavaScriptでループが見えるかもしれません と非常に似て、このようなもの、
Cのforループのものあるいは我々が使用することができます ループ構造のための代替。
>> VARのための私は、配列内の、どこ まだインデックスされま​​す。
しかし、あなたは指定する必要はありません ドットアレイの長さ
条件、およびIプラスプラス。
すべての乗客の場所にあります。 その場所のマークが与えられ。
>> しかし、場所のマークがありません 緯度と経度。
我々は、で、これらのパラメータにアクセスする必要が GETを使用して、ジオメトリを取得
場所マークをジオメトリ。
そして、我々は、ジオメトリを作成したら 緯度またはいずれかを取得
経度、これらの機能を使用して。
>> だから今我々は、かどうかを検出する方法を知っている 乗客は内にある
私たちのシャトルの範囲。
我々は、これらの乗客を取得したら、我々はよ ているすべての乗客を追加する
その範囲内。
我々は彼らにホップするようにしたい、と 私たちのシャトルバスで席を取るだけ
我々は彼らのために十分なスペースがある場合。
>> シャトルドット座席配列ます 席が空であるかどうかを示すか、
誰がその席にあります。
そう座席が、その後、空の場合 その座席はnullになります。
そのため、座席の配列を反復 収納、空席の確認
するまで、それらの席に乗客 これ以上空席がありません。
残念ながら、他の乗客 を待つ必要があります
次回シャトルが来る。
>> 彼らは、シャトルに乗ると、私たちはお勧めします その場所のマークを削除するには、どの
3Dの世界での写真です。
私はその場所のマークPを削除したい場合は、 私はすべての機能になるだろう
私の地球から、グーグルアースから、 して、その特定の場所を削除
removeChildの機能を使用してマークします。
そして、最後に、のは、マーカーを削除しましょう​​、 任意のための2Dマップ上のアイコン
私たちが拾っている乗客。
マーカー、Mを削除するには、私はよ ただMドットのsetmapヌルを実行します。
範囲内の任意の乗客のためにこれを行う、 あなたはピックアップを終えた。