検索
特集

地図とオンラインOSの関係(後編)Windows Liveが魅せる次世代マッシュアップ(4/5 ページ)

“マッシュアップの面白さは手軽さにある”。Webページを作る感覚でJavaScriptを使い、地図を自由に利用する醍醐味は? この記事では、Virtual Earth(地図)とWindows Messenger(メッセンジャー)のマッシュアップを紹介しよう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 引数p_contactsで受け取った場合、i番目の連絡先は、p_contacts[i]だ。それぞれの連絡先の値は、次のようにプロパティとして取得できる。このプロパティ名は、大文字小文字を区別する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Live Contacts ControlとVirtual Earth Controlを組み合わせる

 Live Contacts Controlの仕組みが分かったところで、Virtual Earth Controlと組み合わせてみよう。

 ここでは、連絡先情報を送信すると、その連絡先の個人住所が、Virtual Earth Control上にプッシュピンとして表示されるという例を示す(リスト5、画面9)

 リスト5では、検索のために次に挙げるFindLocationメソッドを使っている(関連記事:前編)

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 FindLocationメソッドの第2引数に渡すのは、コールバックの関数だ。FindLocationメソッドは非同期のメソッドであり、検索対象が見つかると、ここで指定したメソッドをコールバックする。

 コールバック先のメソッドでは、その見つかった位置が、VESearchResultオブジェクトの配列として得られる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 VESearchResultオブジェクトには、IDプロパティとLatLongプロパティがある。

 IDプロパティは検索したそれぞれのアイテムを識別するユニークなID値、LatLongはその場所を示すVELatLongオブジェクトだ。そこで次のようにすれば、検索結果として最初に見つかった位置にプッシュピンを付けることができる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 本来であれば、プッシュピンに表示される文字を「友人」ではなくて、その人の名称にしたいところだろう。しかしコールバック関数が絡んでおり、非同期で呼び出されるため、それを実現するコードは複雑となる。

 現在検索対象となっている「個人名」「住所」などをオブジェクトで表現し、それをコールバック関数に渡すといった仕組みを考える必要がある(特に、コールバック関数では、オブジェクト化したときにthisがどこを指すのかという問題がつきまとうのだ)。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る