goo blog サービス終了のお知らせ 

DEVELOPMENTOR*LEARNING RESOURCE LAB.

ソフトウェア開発現場の視点からソフトウェアと開発者の価値を高める「ホットな何か」をお届けします。(休止)

GoogleマップとBLOGRANGERパーツでレジャースポット案内を作る

2006年10月23日 | Web 2.0

「googleマップ」と「BLOGRANGER 2.0」のBLOGRANGERパーツを使って、東京近郊のレジャースポット案内を作ってみました。↓こんな感じです。


View example

googleマップにレジャースポットのマーカーを配置しています。そのマーカーをクリックすると、レジャースポットの周辺地図を噴出しに表示します。さらにBLOGRANGERパーツを使って、ブログ界でのレジャースポットへの感想を右側に表示します。

GoogleマップとBLOGRANGERパーツでレジャースポット案内を作る手順は次のとおりです。

はじめにBLOGRANGER 2.0でBLOGRANGERパーツを作ります。ここでは「感想を選ぶ」を使って「六本木ヒルズ」「表参道ヒルズ」「東京ディズニーランド」のレジャースポットのパーツを作りました。

 次にレジャースポットのBLOGRANGERパーツを次のようにWEBページに貼り付けます。パーツはdiv要素のidで識別できるようにしておきます。またパーツを意味するclassを付与し、はじめはstyleで非表示としておきます。

<div id="roppongihills" class="blogranger" style="display: none;">
<script type="text/javascript" src="http://ranger.labs.goo.ne.jp/rpc/api.php"></script>
<script type="text/javascript" src="http://ranger.labs.goo.ne.jp/rpc/parts.php?key=1510"></script>
<noscript>
<a title="by BLOGRANGER" href="http://ranger.labs.goo.ne.jp/" target="_blank">
<img style="border: 0;" alt="by BLOGRANGER" 
  src="http://ranger.labs.goo.ne.jp/rpc/image/promote.gif" /></a>
</noscript>
</div>

<div id="omotesandohills" class="blogranger" style="display: none;">
  …
</div>

<div id="tokyodisneyresort" class="blogranger" style="display: none;">
  …
</div>

googleマップにマーカーを配置します。

  map.addOverlay(createMarker(new GLatLng(35.660347, 139.729121), 'roppongihills'));
  map.addOverlay(createMarker(new GLatLng(35.665246, 139.712319), 'omotesandohills'));
  map.addOverlay(createMarker(new GLatLng(35.634017, 139.878595), 'tokyodisneyresort'));

googleマップのマーカーを作成し、clickイベントの関数を登録しています。マーカーをクリックすると、BLOGRANGERパーツをすべて非表示(Element.hide)にした後、該当するBLOGRANGERパーツを表示(Element.show)します。つまり、マーカーをクリックするごとにBLOGRANGERパーツが切り替わります。続けてマーカー周辺の拡大地図を噴出しに表示(GMarker.showMapBlowup)します。

function createMarker(point, element) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, 'click', function() {
    var elements = document.getElementsByClassName('blogranger');
    elements.each(function(element) {
      Element.hide(element);
    });
    Element.show(element);
    marker.showMapBlowup(15);
  });
  return marker;
}

これで完了です。

レジャースポットを増やしていくのは簡単ですね。BLOGRANGERパーツを作ってgoogleマップにマーカーを配置していきます。ただBLOGRANGERパーツをたくさん貼り付けると、だんだんWEBページが表示されるまで時間がかかるようになります。その時間が気になるようなら別の仕組みを考えないといけませんね。


AOL Video Search AJAX API Introductionを試す

2006年10月18日 | Web 2.0

AOL Video Search APIs」という動画検索のAPIがあります。「AOL Video Search APIs」はREST APIとAJAX APIの2つのインタフェースがあります。RESTはXMLベースです。AJAX APIはJSONPベースじゃないかと推測できますが、その実装はAPIで隠蔽されています。

まずは体験ということで「AJAX API Introduction」のサンプルコードを抜粋して、私のWEBサイトに設置してみました。こちらからどうぞ。

http://developmentor.lrlab.to/aolvideosearch/intoro.html

「AOL Video Search APIs」を使うには「My API Account」の登録が必要です。登録は無料ですが「AOL Video Search APIs」を使うWEBサイトを申告する必要があります。「My API Account」を登録すると「appid」が発行されますので、その「appid」をソースコードに埋め込みます。

今のところサンプルコードは動作しています。ただし「Daily Query Limit  10000」とあるので、1日に1万回までしか検索できないようです。1万回を超えるとどうなるのだろう。それ以前に「AOL video」自体が日本語のインデックスを持つのかどうかも調べないといけない。


よく読むブログの反響をBLOGRANGERに聞いてみる

2006年10月13日 | Web 2.0

gooラボで「BLOGRANGER 2.0」というブログ検索のサービスが公開されました。その中の「BLOGRANGERパーツ」という機能を使うと、自分好みのブログ検索パーツを作成して、そのパーツをWEBページに貼り付けたり、ブックマークしたりできます。

私がよく読むブログのひとつは「naoyaのはてなダイアリー」です。はてなのネットワークやサーバ構成、Perlモジュールの紹介など参考になる記事がたくさんあります。私と同じようにたくさんの人がnaoyaのはてなダイアリーを読んでいますが、その人たちがどんなコメントをしているか気になります。

そこで、「BLOGRANGERパーツ」という機能を使ってnaoyaのはてなダイアリーをリンクしているブログ記事をリストアップするパーツを作りました。パーツを作る手順は簡単ですが、ブログ記事を思ったとおりにリストアップさせるには少しコツ(試行錯誤ともいう)がいるようです。

たくさんあるパーツの中から「BLOGRANGER 検索窓」をチョイスしました。パーツを使うボタンをクリックするとカスタマイズのためのフォームが表示されるので、タイトルを入力して白色を選択しました。そしてリンク先URLにnaoyaのはてなダイアリーのURL「http://d.hatena.ne.jp/naoya」を入力しました。リンク先URLとは入力したURLにリンクしているブログ記事をリストアップするということ。それ以外の条件は初期値のままとしました。

※はじめは「話題の新着ブログをチェック」をチョイスしたのですが、思ったほどブログ記事がリストアップされませんでした。説明に「3日以内に登録された新着ブログを・・・」とあるので新着ブログが少なかったのかもしれません。

パーツを生成ボタンをクリックすると、次のようなパーツが作成できました。

このとき、次のようなHTMLソースも表示されます。このHTMLソースをWEBページに貼り付けると、作成したパーツが表示されるという仕組みです。要JavaScriptですね。

<script type="text/javascript" src="http://ranger.labs.goo.ne.jp/rpc/api.php"></script><script type="text/javascript" src="http://ranger.labs.goo.ne.jp/rpc/parts.php?key=1301"></script><noscript><a title="by BLOGRANGER" href="http://ranger.labs.goo.ne.jp/" target="_blank"><img style="border: 0;" alt="by BLOGRANGER" src="http://ranger.labs.goo.ne.jp/rpc/image/promote.gif" /></a></noscript>

WEBページに貼り付けなくてもパーツは表示できます。次のブックマークURLを開くと「BLOGRANGER 2.0」サイト上でパーツが表示されます。自分のWEBページがなくても使えますね。

http://ranger.labs.goo.ne.jp/rpc/partsview.php?key=1301

gooブログではscriptタグが使えないので、このブックマークURLをリンクして紹介することにしよう。


任意のテキストから特徴語を抽出する

2006年10月07日 | Web 2.0

ブログのエントリから特徴的なキーワード(=特徴語)を抽出して表示することを考えています。茶筌(ChaSen)などの形態素解析器を利用する方法がありますが、特徴語を抽出するには辞書を改善し続ける必要があります。

Bulkfeeds Home - RSS Directory & Search では開発者向けにAPIを公開しています。その中に「任意のテキストに対して形態素解析を行い、 Bulkfeeds の記事データベースの統計データをもとに特徴語を抽出します。」というAPIがあることを発見しました。 REST APIなので簡単に試すことができます。指定のURLにテキストをPOSTすると、抽出した特徴語をXMLで返却するという仕組みです。

次のようなフォームを用意し、あなたの API key を指定します。API keyは開発者登録をして取得しておきます。なお、テキストの文字コードはUTF-8として送信する必要があります。

<form action="http://bulkfeeds.net/app/terms.xml" method="POST">
<input type="hidden" name="apikey" value="<YOUR Key API>"/>
<textarea name="content" rows="10" cols="40"></textarea><br>
<input type="submit" value="go"/>
</form>

「ソフトウェア開発現場の視点からソフトウェアと開発者の価値を高める「ホットな何か」をお届けします。」というテキストを入力してフォームから送信すると、次のようなXMLが返却されます。現在のところ特徴語は20語しか抽出されないようです。そのため、大きなテキストから特徴語を抽出するときは注意が必要です。

<?xml version="1.0" encoding="utf-8" ?> 
<terms>
 <term>ソフトウェア</term> 
 <term>開発者</term> 
 <term>ホット</term> 
 <term>視点</term> 
 <term>高め</term> 
 <term>価値</term> 
 <term>届け</term> 
 <term>何か</term> 
 <term>開発支援</term> 
 <term>開発現場</term> 
 <term /> 
 <term /> 
 <term /> 
 <term /> 
 <term /> 
 <term /> 
 <term /> 
</terms>

一般的な語も抽出されてしまうなぁという印象があります。ただ、形態素解析器を利用しなくても、このように特徴語を抽出できるのであれば色々と用途はありそうです。