[音楽再生] スピーカ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ヌルを実行します。 範囲内の任意の乗客のためにこれを行う、 あなたはピックアップを終えた。