Hello Placemaker! - まずは簡単なPOSTから
ここでの動作環境は次のとおり。
- OS: Mac OS X 10.5.6
- Webブラウザ: Mozilla Firefox 3.0.10
Placemakerは本稿執筆(6月1日)時点で、POSTによるリクエストのみ受け付けている。簡単なフォームを作って、まずはどのような動作をするかみてみよう。なおPlacemakerのレスポンスについてはXML形式とRSS形式の2種類があるが、本稿のサンプルではXML形式を利用するものとする。
placemaker_post.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Placemaker-post test</title>
</head>
<body>
<p>■ Placemaker-post test</p>
<form action="http://wherein.yahooapis.com/v1/document" accept-charset="utf-8" method="post">
<p>
documentContent: <input type="text" name="documentContent" value="" size="100">
<input type="hidden" name="documentType" value="text/plain">
<input type="hidden" name="outputType" value="xml">
<input type="hidden" name="appid" value="(Yahoo!のapplication IDを入力)">
<input type="submit" value="submit">
</p>
</form>
</body>
</html>
ここで使用している引数についてはAPI Documentationを参照されたい。実際にこのhtmlを使用する場合は、<input name="appid">の箇所を自分のapplication IDに置きかえてから実行する。実際になにかテキストを入力してPOSTしてみよう。
テキストから位置情報を抽出した結果のXMLが返ってきた。あとはこれを加工して2次利用することでさまざまなアプリケーションが実装可能になる。XMLの定義・要点については次のとおり。(Reference - YDNより一部を抜粋)
contentlocation (root)
- processingTime: ドキュメントの処理に何秒要したか
- version: Placemaker APIのバージョン
- documentLength: ドキュメントのバイト数
document element
- administrativeScope: ロケーションについての管理上の概要を格納
- extents: ロケーション一帯についての中心点,南西地点,北東地点の緯度経度を格納
- placeDetails: テキストからロケーションを抽出した際の解析結果などを格納
- referenceList: 場所のリファレンスリスト
extents element
- center: 中心点の緯度経度。地図などと連携させる場合は、中心の緯度経度にこれを利用すればよい
- southWest: 南西地点の緯度経度
- northEast: 北東地点の緯度経度
placeDetails element
- matchType: type判定。0=テキストかテキストと座標, 1=座標のみ
- weight: ロケーションとの関連度合い。1-100まで
- confidence: ロケーションの正確さについて。1-100まで
place, adminstrativeScope, and geographicScope elements
- woeId: ロケーションのWOEID(Where On Earth ID)
- type: 市区町村の区分
- name: ロケーションの名前(英語)
- centroid: 緯度経度情報
reference element
- woeIds: WOEIDのリスト
- text: 実際の名前(日本語の地名を含む)
- type: マーカーのタイプ(plaintext, xpath, xpathwithcountsのいずれか)