YOLPで情報に位置情報を追加して遊んでみる

感想おまちしてます!

YOLP(よるぷ:Yahoo! Open Local Platform)とは、Yahoo!が提供するお手軽に地理位置情報(ジオロケーション)サービスを作るプラットフォームです。このプラットフォームが公開しているAPIを活用すれば、簡単にジオロケーション情報を取得し、活用したサービスを提供することができます。

Javascriptマップだと、Scriptタグを入れるだけで簡単に表示できます。

YOLPは、会社の人が教えてくれて、デブサミでその存在をさらに知ることになりました。

また、Yahoo!デベロッパーネットワークには以下のように書いています。

Yahoo! Open Local Platform(略称:YOLP)は、インターネット上における地域・生活圏情報の流通を目的としています。このため、YOLP Data Format(略称:YDF)という地域情報のための標準データフォーマットを定義しました。YDFによって、Web APIや地域データが統合され、連携します。
また、従来提供してきたパソコンサイト上での地図表示だけでなく、リスト表示が簡単にできることや、モバイル端末、スマートフォンでの利用を視野に入れて、Web APIを構築しました。

Flickrのジオタグ付き写真にYOLP-APIを利用した日本語地図が表示されるようになりました! by 地図スタッフブログ」のようにFlickrでも採用されているようですね。

だいぶ前に、「これからの携帯にはデフォルトでGPSが付いてくる」という話を聞いたときに、これまでの情報に加え「位置」という情報が付加されるということに興奮した記憶があります。GoogleMapが登場したときのようなわくわく感が、YOLPにはあるように感じました。ここまでリッチだとたしかに使いたくなります。

Twitterとかは投稿に地理位置情報(ジオロケーション)を入れることができますが、ジオロケーションのない情報にもジオロケーションを持たせることができるようになるかもしれません。

Yahoo!には日本語形態素解析キーフレーズ抽出というAPIも存在します。
試しに、キーフレーズ抽出をしてみましょう。

このブログはPCから書くことが多いのでジオロケーションはついていません。まずは、特定のブログにジオロケーションを付けてみたいと思います。
この前、沖縄に行ったときのエントリーがあるので、そのエントリーのジオロケーションを探してみます。

APIにエントリーを食べてもらうと以下のような結果が返ってきました。

[code lang=”xml” toolbar=”true” collapse=”true”]
<ResultSet xsi:schemaLocation="urn:yahoo:jp:jlp:KeyphraseService http://jlp.yahooapis.jp/KeyphraseService/V1/extract.xsd">
<Result>
<Keyphrase>ひめゆり</Keyphrase>
<Score>100</Score>
</Result>
<Result>
<Keyphrase>万座毛</Keyphrase>
<Score>71</Score>
</Result>
<Result>
<Keyphrase>夕暮れ</Keyphrase>
<Score>68</Score>
</Result>
・・・
</ResultSet>
[/code]

形態素解析をすると解析後の結果が短くなってしまうため、キーフレーズで住所を抜き出すほうがいいかもしれません。あとは、キーフレーズから住所を見つける必要がありますが、そこは抜粋。そういうことをしてくれるサービスもあるみたいです。

キーフレーズを抽出した結果、二番目に「万座毛」という住所情報があったので、それを元に試してみましたが、住所では見つかりませんでした。困ったなぁと思ったのですが、これをキーワードにローカルサーチを使い、「万座毛」にひもづくジオロケーションを見つけることができそうです。結果は以下のようになりました。

[code lang=”xml” toolbar=”true” collapse=”true”]
<YDF totalResultsAvailable="2" totalResultsReturned="2" firstResultPosition="1">
<ResultInfo>
<Count>2</Count>
<Total>2</Total>
<Start>1</Start>
<Status>200</Status>
<Description/>
<Copyright/>
<Latency>0.007</Latency>
</ResultInfo>
<Feature>
<Id>24730168872</Id>
<Gid>2fES2GyJr12</Gid>
<Name>万座毛ゆいまーる会</Name>
<Geometry>
<Type>point</Type>
<Coordinates>127.852967777778,26.484345000000</Coordinates>
</Geometry>
<Category/>
<Description/>
<Style/>
<Property>
<Uid>5b21a2a1f5e75a7a446bbda91370b68f73d64e94</Uid>
<CassetteId>d8a23e9e64a4c817227ab09858bc1330</CassetteId>
<Yomi>マンザモウユイマールカイ</Yomi>
<Country>
<Code>JP</Code>
<Name>日本</Name>
</Country>
<Address>沖縄県国頭郡恩納村字恩納2886</Address>
<GovernmentCode>47311</GovernmentCode>
<Tel1>098-966-1151</Tel1>
<Genre>
<Name>みやげ品店</Name>
</Genre>
<Genre>
<Name>食料品卸売業</Name>
</Genre>
<Image/>
<Rating/>
<ReviewCount/>
<BuildingInfo/>
<PlaceInfo/>
<CatchCopy/>
</Property>
</Feature>
・・・
</YDF>
[/code]

どうもCoordinatesというのがジオロケーションのようです。では、この情報を使って地図を表示してみます。

とれたー。
ちょっと遠回りしていますが、情報をつなげることができるので、裏でこういった処理を行っておけばもっと簡単にアクセスできるとおもいます。