[音楽再生] DAVID J.マラン:こんにちは。 それではを散策してみましょう 問題セット8マッシュアップ、 にあなたに挑戦しようとしている Googleマップのための要素に頼る Googleニュースやマッシュからの要素を持つ そのWebアプレットにそれらを一緒 ユーザーが検索することができます ローカルニュースのマップ 具体的な町へ、 都市、および郵便番号。 これを行うために、我々はするつもりだ 、いくつかのHTML、CSS、PHP、SQLを統合 JavaScript、および技術 一般的にするためにAJAXとして知られている この没入型を作成する ユーザーエクスペリエンス。 初のGoogleマップ自体にしましょう​​。 もちろん、これは、おそらくある 使い慣れたインターフェイス。 しかし、それはことが判明したGoogleマップ またAPI--アプリケーションを提供しています これを介してinterface--プログラミング あなたはGoogleマップの要素を取ることができます とにそれらを統合する 独自のアプリケーション。 実際、この全体 プロセス、あなたが行っている URLのカップルを見つけるために その特に便利 に記載されている 問題セットの8のための仕様、 特にこの入門 ガイドや開発者ガイド Google Maps APIのバージョン3のためにも GoogleマップのJavaScript APIなど あるV3の参照、 読みもう少し難解な しかし、実際には低いレベルのすべてを持ってい 何の関数やメソッドの詳細 そしてオブジェクトとプロパティと イベントは、実際にAPIが付属して、 精神が非常に似て [聞こえない]のページへ。 今、私たちは見てみると Googleニュースで、あなたはよ おそらくここで使い慣れたインターフェイスを参照してください。 しかし、それはあなたにも検索することができますが判明 特定の地域のためのGoogleニュース ジオと呼ばれるHTTPパラメータ経由。 実際、私はズームインするとき、 ここに、あなたがいることがわかります 私はにいる news.google.com/news/section?geo=02138。 そして、確かに、私はズームした場合 アウト、あなたは私がいることがわかります の全体の束でページを見ている ケンブリッジ、マサチューセッツ約ビュー。 一方、私は実際に変更された場合 URLは、このような郵便番号ではないと しかし、何か少しメシエ ケンブリッジ、+マサチューセッツ州のように、 プラスは、あなたがエンコード方法です URL内の空白文字と入力してEnterキーを押し、 あなたは、私が実際にいることがわかります ほぼ同じニュースを参照してください。 多分それは少し違う 実際にケンブリッジ理由 複数の郵便番号を有している。 今どのように私はそれを知っているとなり、 実際には、どのように何とか私でし タイの都市や町 ケースIにおける郵便番号へ ユーザーを許可したい どちらルックアップする? まあ、それはそこだと判明 そこに呼ばれるウェブサイト geonames.orgこれは 持っているためのイニシアチブ すべての自由に利用可能なデータベース 地理情報の種類、 私たちのためだけでなく、 他の国のためにも同様。 実際に、私は、ここにこのURLに行けばいる また、問題の集合に記載されている 仕様、あなたがそれ3が表示されます zipファイルの全体の束のリスト そのうちのいずれかがあなたによってダウンロードすることができます。 実際には、この問題のために設定され あなたがus.zipダウンロードするつもりだ。 今、このファイル内で、全体で テキスト形式のデータの束。 ファイルは、と非常によく似ています CSV--カンマ区切り値file-- それが実際に使用してい タブはフィールドを画定する。 さて、その間、あなたが見れば ここで私は強調したもので、 このファイル内のフィールドをしようとしている 国コードのようなものであるためには、 郵便番号、地名、 その後、何らかの形で またはその他、州や郡、 地域社会、そしてより多くの。 実際に、私はすでにました 事前にこのファイルをダウンロードした。 私が先に行くと、それを開いてみましょうhere-- 確かに、あなたはよ、us.text--と 私は16792行目にスクロールダウンしている場合を参照してください。 あなたは、ケンブリッジのためのいくつかのレコードが表示されます マサチューセッツ州とその様々な郵便番号。 あなたも見るもの郡があり、 私は本当にないいくつかの数字 理解するだけでなく、すべての 右の方法、 いくつかのGPS coordinates-- 緯度と経度。 これは素晴らしいですの1理由 Google Maps APIの機能 検出する能力がある あなたが地理的にどこ GPS座標の観点。 それでは、どのように把握し始めてみましょう これらのことを一緒に結ぶ開始。 私たちはあなたの全体を与えてくれた 流通コードの束、 だけでなく、MySQLデータベース。 私が引く場合、実際には、phpMyAdminは持つ すでにインポート、あなたはすぐにするように、 pset8.SQL、あなたはそのMySQLのテーブルが表示されます このようになり、IDフィールド、国 コー​​ド、郵便番号、地名など。 それらのすべての種類 私は単純に導出列 readme.textを読んで 指定されたことをここにファイル フィールドが整数であるかどうか、 またはvarcharなど。 だから我々はそのテーブルのを作成しました あなたとあなたのSQLコマンドを与えられた それを作成するために実行する 独自のデータベース内のテーブル、 しかし、それにはデータがまだ実際にありません。 むしろ、あなたがする必要があるとしている us.zipダウンロードしたり、任意の国の郵便番号 そこそのURLからファイル。 そして、あなたが書く必要があるとしている だPHPのコマンドラインスクリプト そのテキストを開くに行く ファイルには、その行に対して繰り返し、 その後のそれぞれについて これらの行は、挿入を行う それは、テーブルを配置へ あなたのMySQLデータベースで。 このプロセスの終わりに、あなたはよそう 最終的にそのスクリプトを実行した 一度だけ理論的には。 現実には、おそらくよ 回の束それを実行 さまざまなバグを修正しようとしているとき。 最終的には、必要があるとしている 何千もの本当に大きなデータベース と地理数千行。 その後、そのインポートを置くつもりだ スクリプトはさておき、それは働いてたら そして、あなたのデータベースがいいです その後、正しい、と あなたが実際にに移動するつもりだ マッシュそれ自体を実装する。 マッシュアップは見に行くされている このような少し何か。 mashup.cs50.netで、我々 スタッフのソリューションを持っている それは、このような小さなものになります。 実際、私はこの新聞をクリックした場合 ケンブリッジ、マサチューセッツ州、のアイコン あなたはスピニングが表示されます 簡潔にして、アイコン 順序付きリスト、A 記事の箇条書きリスト ケンブリッジ、マサチューセッツ州に関連する。 私はチャールズタウンをクリックすると、 マサチューセッツ州、 私はその町に同じが表示されます。 そして、私は上をクリックした場合 ウォータータウン、マサチューセッツ州、 どんな存在しない可能性があります ウォータータウンからのニュース、 だから、何かが表示されます 遅いニュース日のよう。 さて、一方で、左上にある いくつかの見慣れたGoogleマップのコントロール ズームアウトできるようにするには、パン 上、下、左、右、 だけでなく、私たちはそこに置か検索ボックス。 だから私は率直に言って、検索する場合には、 私が知っている唯一の他の郵便番号、 90210、私たちは実際に表示されます ビバリーヒルズ、カリフォルニア州。 クリックしたとき、それはに私をリード カリフォルニア州と全体の束 ビバリーヒルズについてのニュースの。 今、そこに何が起こったのか、あまりにも、気づく。 でも02138またはのために、私の場合、このタイムサーチ ケンブリッジコンママサチューセッツ州または一部 その変異体は、あなたが得る 少しオートコンプリートドロップダウン。 さて、これはプラグインを使用しています jQueryのと呼ばれるライブラリのために、 とそのプラグインが先行入力と呼ばれている。 私たちは、単に読み ドキュメンテーション、 .jsファイルの統合をダウンロード あなたように分配コードに 最終的にコードを書くことができます 自動でそのドロップダウンメニューを埋め 選択または自動提案。 今流通コード、しかし、その あなたはほぼ同じくらい行いません受け取った。 あなたが埋め込まれたGoogleマップを取得し、 あなたは、一番上の左のコントロールを取得 あなたが検索ボックスを取得する。 しかし、私は次のように入力した場合 02138は、全く場所はまだ見つかっていません。 だから、になるだろう ここに私たちの目標の一つ。 また、あなたは手順を取る場合 背中やマップ自体を見て、 全くニュースはありません。 私は、クリックしてもと ドラッグ、実際に無マーカー そのため、ニュースに対して表示され 課題は、同様にあなたのために残されている。 それでは、次に見てみましょう 流通コードで。 あなたがダウンロードしたら pset8.zipは、それを解凍した あなたのバーチャルホストディレクトリに CS50アプライアンスで、 あなたはこれらが表示されます ここで内部ディレクトリ。 一般の略Bin-- 実行ファイルprograms--のバイナリ pset7のように、含まれる、いくつかのPHP 他のファイルが含まれるファイル、 あるパブリック、 必要なファイル パブリックにアクセスすることが ブラウザでユーザーに。 それではで見てみましょう binディレクトリに、私たちはよ ファイルがあることを参照してください。 すでにインポートそこに呼ばれる。 我々はgeditのでこれを開くと、我々が表示されます それは、残念ながら、多くはありません そこ。 すべてのことは、しかし、があります 上部のシバンです これを指定する この場合、interpreter-- PHP-- 実際に使用されるべきである このファイルを実行します。 しかし、それは言う場所 あなたはどこTODOです いくつかのコードを記述する必要があるとして それはおそらく、設定が必要です 含まれるディレクトリ内のファイル 私たちは、PHPファイルを前にやったように。 そして、あなたはするつもりだ 何とか開放する必要が us.textいるおそらくあなた 既に解凍した。 その後、必要があるとしている そのファイル内の行を反復処理する、 おそらく機能のいくつかを使用して 仕様で提案されている。 次に、これらのそれぞれを挿入 MySQLデータベースへのライン クエリ関数を使用することにより、その 我々は再びwith--あなたを提供してきました または少なくともバリアント そののfunctions.phpで、 その我々だけで一瞬で表示されます。 今度は、輸入を閉じて、バックに行こう 私たちのディレクトリとこの時間に入る 含まれています。 私はそこにはlsをすれば、あなたはわかります かなり問題セット7のような三つのファイル。 そして、それでは簡単に見てみましょう、 例えば、config.phpのでは。 そこでは、より少ない行です 以前より、それ このファイルが含まれているよう constants.phpとのfunctions.php。 私たちは、わずかに異なるを使用している テクニックを実際に周りのこの時間 これらのファイルが相対的であることを指定する カレントディレクトリに_ DIR__ どのようなディレクトリこれを表し ファイル、config.phpには、それ自体である。 だから、これはもっとある 指定の明示的な方法 あなたが必要とするようにしたい他のどのファイル。 今私は、このファイルを閉じている場合 代わりにconstants.phpを開く、 あなたは非常に連想させるファイルが表示されます 問題セット7のにも同様に、とはいえ pset8と呼ばれる別のデータベースを持つ。 最後に、のfunctions.phpで、 私たちは一つの機能が表示されます クエリと呼ばれるこの時間。 これは、我々が扱う除いてほぼ同じである 少し周りのエラーがこの時間を 異なったが、それは使用法ですそれは 問題と同じでは7に設定してください。 今度は、私たちのpset8に戻りましょう ディレクトリには、公的に入ると、そこに 私はLSをすれば、あなたはthis--表示されます articles.php、index.htmlを、search.php、 と、すべてのファイルをupdate.php--。 そして、CSSのフォント、IMG、および かなりpset7のようなJSディレクトリ。 それでは見てみましょう あるindex.htmlを、 本当にになるだろう smashupへのエントリポイント。 今のindex.htmlに、あなたは、全体が表示されます 頭の中でリンク要素の束、 具体的には、私たち自身のためのブートストラップ用 スクリプトの全体の束に続くCSS 地図、APIのようなもののためのタグ 自体、ラベルを持つ特別なマーカー 我々はに記載されているユーティリティ 仕様では、あなたに利用可能である jQueryの自体、ブートストラップ それ自体、別のライブラリー アンダースコアが呼び出さ 我々は仕様での話。 jquery.jsのようなUnderscore.js JavaScriptライブラリです それは、機能の全体の束を持って その世界の願いで多くの人々 JavaScriptの自体に存在していた。 したがって、これらのすべては 実際には非常に人気がある。 我々はまた、先行入力言及した ライブラリがあるもの そのオートコンプリートドロップダウンを行い、 最終的に私たち自身のJavaScriptへのリンク。 一方、おそらく ありがたいことに、このマッシュアップ 比較的少ないによって駆動される ここでは一番下のHTMLダウン。 我々はDIVを指定したことに注目してください クラスコンテナ流体の私たちの体。 ブートストラップのあたり。この、 ドキュメンテーション、ちょうど このDIVが埋めるために起こっていることを意味します ビューポートまたはブラウザのウィンドウに完全に。 一方、その下に、我々はdiv要素を持っている それが開かれ、すぐに閉じただ マップキャンバスのユニークなIDを持つ。 これは今のGoogleからのものである 地図ドキュメンテーション そのAPIのために、それによって私は単純にする必要が 注入するに空のdivを持っている、 最終的に、実際のGoogleマップ。 少しだけのものではなく、より多くの。 最後に、フォームがあります ここでの内部が テキストボックスまでの左上に実装 検索するための我々のインタフェースで。 我々が使用したことに注目してください ブートストラップのビット ここのようなものをtoo-- フォームインラインとフォーム·グループ。 私たちは、かつてのを与えてくれた フォームの固有のID。 そして、最終的に、私は実際に持っている かなりよく知られている入力タイプ、 Qは、そのIDです。 ちょうど大会。 query--が持っている可能性があるため、Q 何と呼ばれて。 そして、プレースホルダ、 一方、都市、状態であり、 そしてあなたが思い出すかもしれません郵便番号 デモ以前の私たちのマッシュアップで見て。 では、このファイルを閉じてみましょう。 今ではPHPファイルを見てみましょう 待って、次にJavaScriptファイル。 私たちのPHPファイルでは、我々はしました 既にあなたのために実装され、 例えば、アップデート。 私たちは巨大なを費やすことはありませんUpdate.php-- 一言で言えばhere--上の時間 その私たちのファイルがある JavaScriptコードが起こっている AJAXを経由していることを連絡する 非同期技術者 だこれらの日は、J​​avaScriptに組み込まれて 私たちはupdate.phpを尋ねることができるようにしよう 詳細については。 具体的には、いつでも ユーザは、地図をドラッグ またはジャンプ検索を実行する 別の場所にユーザ 私たちのJavaScriptコード、 我々はすぐにわかりますように、ある update.phpを呼ぶことにし そして10かそこらのマーカーを求める ベースのビューポート内 GPS座標に 上部と下部の そのマップのコーナー。 次に、現在、そのマップを再設定することができます ユーザは、順番に画面を移動している 10はおそらく新見るために 別の町のマーカー。 一方、このファイルは、最終的です SQLクエリを実行しようとして 私達のデータベースに対して テーブルと呼ばれる場所にいる それらを返すために起こっている 10以下の場所。 一方、articles.phpで、別のある 私たちは、その全体が書かれているファイル。 それは、精神において非常によく似ています 問題セット7の検索機能、 これはあなたのためにヤフーファイナンスに連絡した。 このファイルの連絡先Googleニュース あなたのために、最終的につかむ 機械可読な 何かにversion-- ニュースのRSS format--と呼ばれる ケンブリッジやビバリーヒルズのために または何町あなたが検索した そのgeoparameterをもとにしています。 私達はちょうどであることRSSを解析する XMLと呼ばれるマークアップ言語の種類、 実際にし、我々 お使いのブラウザにそれを返す とJavaScriptコードに、 具体的には、形式で呼び出さ JSON、JavaScriptオブジェクト表記。 今、あなたが表示されます specification--私たちはあなたを指す あなたが実際に見ることができる方法で、 JSON来るback--の一部 最終的にはこの機能がその そのように、これらのポップアップメニューを取り込むことができます あなたがクリックしたときに、その マップ内のマーカーに あなたが実際に全体の束を参照してください。 弾丸の、各々の 記事へのリンク。 今度は、最後の1を見てみましょう 幸いなことに、しない、PHPファイル ずっとon--行くしている ただかなり大きなTODO。 今のところ、このファイルには、宣言して アレイは、場所を呼んだ。 そして、最終的にプリント JSONでその配列format-- それはちょうどそのようにかなり印刷する 物事は、デバッグが容易です。 残念ながら、中 真ん中のこのTODOがある、 そのあなたが検索するための呼び出し 一致する場所のためのデータベースのジオHTTP パラメータ。 そして、確かに、これがために起こっている あなたのchallenges--の一つである ここでこの機能を実装するには あなたはこのファイルを連絡したときにそのように 検索のようなURL。 PHP?ジオ=何か、 あなたのコードでは、最終的にJSONを返す。 あなたの中の場所のすべての配列 その入力に一致するデータベーステーブル。 ケンブリッジでのユーザーのタイプはもしそうであれば、 ここにあなたのファイルsearch.php 最終的にJSON配列を返す必要があります ケンブリッジのためのマッチのすべてのために、 マサチューセッツ州にあるかもしれないもの それでもどこか他の可能性があります。 最後に、の2を見てみましょう 静的なファイルultimately-- あなたのCSSファイルとJavaScriptファイル。 私は、私たちのCSSディレクトリに移動した場合は、 ファイルの全体の束が、そこにあります それらのほとんどはライブラリーである。 私は見てみるつもりだ、 具体的には、styles.cssをで、 これだ私たち自身の世界的なCSSです この全体のマッシュアップを型にはめるつもり。 私が通って読むことあなたにそれを残しておきます コメントここに、しかし、一言で言えば、 これは私たちのことを確実にCSSです マッシュアップ、箱から出して、デフォルトでは、 我々はit--を望むとおりに見える ビューポートを埋めマップ付き と検索で 左上にアップするボックス。 我々はまたの自由を撮影した その先行入力ドロップダウンをstylizing メニューは少しも同様。 最も重要なファイル おそらく設定されたこの問題のために この最後の1、scripts.jsです。 あなたのJSディレクトリの内側 でも、複数のファイルである。 それらのすべては、ライブラリファイルです この1を除いて、scripts.js。 私たちはこれを開くと、私たちのしてみましょう その機能はを通して最終ツアー このファイルに組み込まれている あなたのためにと注意を喚起 待ち受けているTODOのに。 このファイルの先頭に、 3グローバル変数です。 しようとしているマップ、の一つ 私たちのグーグルマップを参照してください。 あなたはそれを考えることができます ポインタとしての一種。 一方、我々は持っている 別のグローバル変数 であるように見えると呼ば情報、 呼び出しの戻り値を格納する 新しいgoogle.maps.InfoWindowへ。 JavaScriptはオブジェクトをサポートする Strutsの精神において非常によく似ています。 そして、何のためにこの行 私たちの目的は、やっている 新しい情報を作成している メモリ内のウィンドウとその後 参照の周りに保つ 情報と呼ばれる変数で、これ。 そして、それらの間で、 その間、表示されるものです。 空のJavaScriptをすべき 配列はマーカーと呼ばれる。 これらの新聞アイコンのすべて、またはあなた 完全に別のアイコンを選択するかもしれないが、 格納されようとしている 最終的にこの配列の 我々は非常に簡単に追加できるように、 マップとマップからそれらを削除。 それでは、下にスクロールしてみましょう 少しと達人 になるだろう、コードを DOMまたはドキュメントとすぐに実行 オブジェクトモデルまたは ページ自体は準備ができています。 この構文ことを思い出してください ここで簡単に指定 次のコードはその のみ実行されるべき ブラウザが終了したとき 他のすべてをロードする。 私たちは、最初に宣言 スタイルの全体の束、 stylizingに終わるもの 仕様に従ってマップ。 私たちは、その後宣言する オプションの全体の束、 さらにグーグルをカスタマイズした 我々は埋め込むしようとしているマップ。 次に、jQueryコードのビットを使用し、 もう少し詳細に説明されている スペックで、グラブへ その要素、マップキャンバス 私たちはそのように一意に識別すること。 そして、この行はここにある 魔法のように私たちを与えると思われるもの 内部のグーグルマップ 私たち自身のアプリケーション、 これらへの参照を保存する その変数と呼ばれるマップに。 最後に、ダウンここでは登録 リスナー何と呼ばれています。 back--道を考えて、道 CS50で週にゼロにback-- 我々はスクラッチで見たときと ウォークスルーのサポート と呼ばれるもののために通って イベントやブロードキャスト。 あなたが使用されていない可能性があります それ自身が、それはだ メカニズムにより、 この場合、ブラウザ それはだとき私たちの注意を得ることができます 実際にいくつかのコードを実行する準備ができて。 この場合には、聞くために起こっている アイドルと呼ばれるイベント用のマップへ。 これはブラウザがあることを意味 グーグルマップをロードが終了。 この時点で、関数が呼び出さ 設定する必要があり、最終的に 実行される。 この関数は、構成し、 私たちは私たちによって書かれている、表示されます。 今、ダウンここに関数である その、残念ながら、 ただTODOはマーカーを追加されている。 スペックパー。あなたが必要になるだろう 実際にコードを書くために それが見えるかどうかmarker--が追加されます 新聞、または親指タックのように、 か何かは、Googleマップにelse--。 ここでは、今その関数である のconfigureと呼ばれる。 私は読むことあなたにそれを残しておきます より詳細にはこの貫通、 我々は追加することを実現する たくさんのリスナー ときに我々は、コードを実行できるように、 ユーザーは、上のクリックし、マップをドラッグする。 我々はまた、ここでその内のコードを持っている その先行入力プラグインを初期化する そのため、ドロップダウン メニューには、実際に動作する。 しかし、ちょうどに集中しましょう ここに場所のカップル。 具体的には、ここにすることができません。 私がオンラインに延期するだろう ドキュメントと仕様 このTODOを埋める方法について。 しかし、一言で言えば、このライブラリ 入力補完では、通過することを可能にする 一般的にテンプレートとして知られているもので、 いくつかの変数のプレースホルダを持っている printfのの%に精神に非常に似ています。* S。 しかし、この場合には、 スペックごとのテンプレート あなたが指定することができます あなたが望むものの変数 来ているデータから注入する バックPHPのようなものから あなたが書いたファイル つまり、JSON出力を放出している。 今、ダウンここで私たちがあることを理解 先行入力の選択のリスニング ときに、ユーザーが実際に行って 検索と値を選択する。 これは、我々が実際にしている方法です そのために聞くつもり その結果、いくつかのコードを実行する。 その後、我々は設定していき マッシュアップは少しだけ。 そして、最終的に、私たちは呼んで この機能の更新。 これは、画面上のマーカーを更新します。 一瞬でその上にもっと。 一方、少数があります ここで小さな関数。 の一つはhideInfoある 単に情報ウィンドウを閉じます。 ここでは別の機能、最終的に マーカーを削除する、長すぎることはありません。 つまり、元に戻すために起こっている何でも あなたのアドオンのマーカー機能がない。 そして、ダウンここに検索がある。 我々ので、この1つは興味深いです のJavaScriptコードを書かれている 上search.phpに話をするつもり サーバーといくつかの応答を取り戻す。 あなたは、もちろん、まだ意志 sea​​rch.phpを実装する必要があり、 しかし、我々は実装しました JavaScriptのコードです 実際に実行を処理するだろう そのテキストボックスから検索します。 特に、予告 ここでこの機能すること、 検索は、search.phpを呼ぶん と呼ばれる方法によって 私たちは講義で見たJSONを取得。 そして、ここ構文 少し異なっている 講義からその中で私たちは使用している jQueryのいわゆる約束インターフェイス。 スペックのものの詳細。 これは単に私たちのための手段 今、そこに目的 二つの特別な機能があり、私たち ドット表記で呼び出す必要が ここですぐにJSONを取得する呼び出した後。 Oneが行わ呼ばれています。 一つは失敗すると呼ばれている。 あなたはこれらを考えることができます 成功ハンドラとして とエラーハンドラだけ 場合に何かがうまくいかない。 それでは、最後に見てみましょう このファイル内の関数のカップル。 ここでダウン機能がある と呼ばれるSHOWINFO、その それらのいずれかで情報を示しています 少し情報ウィンドウこと ユーザーがマーカーをクリックしたときにポップアップ表示されます。 ダウンここに遠い その更新機能 私たちはあなたのために実装されていること。 これは、マップの境界を決定します。 そののGPS座標は何ですか ここに北東と南西の角。 我々はいくつかのHDPパラメータを用意しました ここで、その後、最終的にそれらを渡す 我々は済ませた、update.phpをする またあなたのために実装されています。 つまり、最終的にいくつかのJSONを取り戻す update.phpをというファイルから その後いずれかを削除します 画面上のマーカー その後反復処理 戻ってくるのデータ update.phpを、からの もう一度だけでJSON配列です。 そしてそれは、最終的マーカーのが追加され それらの場所のそれぞれ、障害対応 または非常によく起こる可能性のあるエラー。 今だけあなたにどのようにあなたの味を与えるために このプロジェクトのデバッグについては行くかもしれない、 私は年にオープンしたことを実現 このURLに、ここでは、このタブを進める、 pset8 / articles.php?ジオ= 02138。 約今、再び、記事 私たちはあなたのための実装PHP これはそんなにいない あなたは何を使用することがあります デバッグ、むしろ技術に関する。 私が検索したお知らせ ここでケンブリッジの郵便番号、 そして私は、確かに、戻ってJSONを得ている その内部JSONオブジェクトの配列 2 keys--リンクとタイトルです。 だから、この機能 あなたのためにすでに動作します。 しかし、手動でのこの技術は行く のようなもののために、このようなURLへ sea​​rch.php?ジオ=ケンブリッジまたは02138または ユーザーがすべきで入力した何でも あなたは、あなた自身が、試してとして非常に貴重証明する 正確にどうか理由を把握する sea​​rch.phpは仕事やされていません。 最終的には、その後、あなたが持っている あなたの前にいくつかのTODOの。 あなたが最初に実装するつもりだ そのインポートスクリプトこと あなたのデータベースにus.textに読み込みます。 その後、必要になるだろう sea​​rch.phpを実装する 指定されたそれが正確に動作するようにします。 その後、するつもりだ scripts.jsに焦点を当てる そして最終的に実装します TODOののそれらのカップル、 の設定を含めた とそのテンプレート、 、マーカーを追加するマーカーを削除し、 その後、最後の、ではなく、少なくとも、1 個人的なタッチ。 あなたは、あなたのマッシュアップの作業を取得したら 手元に非常に私たちのような、目標 あなたが個人的なを追加するためのものです あなたのマッシュアップに触れ、 それは美的または機能だかどうか。 今までのでマッシュアップしてください 少し次のレベルへ。 だから、限り、あなたは超えて自分自身をプッシュとして スペック自体であなたの精通 と一技法を拾う 新しい、それだけだ場合でも、 変化のような美的なもの あなたが使用しているマップのレイアウト、 私たちが期待する範囲 満足されます。 つまり、その後問題セット8マッシュアップです。 でより多くのをお楽しみに 仕様と最高の幸運 このタックル、あなたの最後の CS50の問題がこれまでに設定してください。 [音楽再生]