junaio ARELAPI上で位置情報を扱う

こんばんは。寒さが増しています。僕の研究室では最後の追い上げが続いています。
一応自分の本論で書きたいことは書き終えたつもりなのですが、まだこれから直すべき場所がありそうです。あとは足りない分のスクリーンショットや画像を撮影する必要があるでしょう。とりあえずこれで本論の中身は一応形になっているはずですが・・・。

さて今回、本論を書くこと以外にこれまで作ってきたWordPress×junaioのWebシステムを2012年に登場した新API・AREL-API上で扱うべく、挑戦したのでその時に使ったPHPの関数の復習をしたいと思います。

これまでのjunaioのAPI(以下:旧API)で扱ってきた位置情報は

<l>35.000,135.000,0</l>

といったようにlタグでかこまれた部分にx,y,zの緯度経度高度の情報を入れることでARを生成していました。

しかし、新API上では位置情報の取得の仕方が若干かわりました。

<lat>35.000</lat>
<lon>135.000</lon>
<alt>0</alt>

といったように変化しています。これまでの位置情報をひとつにまとめたものではなく、配列として受け取っているようです。
ということはこれまで旧APIで用いてきた位置情報の形ではいないということです。

//新APIで位置情報は扱えないので分割して配列にする。
for($i=0;$i < count( $loc ); $i++){//$locの数だけPOIを生成する。
$explodedLoc = explode(",", $loc[$i]);//$loc[$i]の中身をx,y,zに分割
ArelXMLHelper::start(NULL, WWW_ROOT . "/arel/index.php");
$j=1;
$oObject[$j] = ArelXMLHelper::createLocationBasedPOI(
$j, //id
$title[$i], //title
array($explodedLoc[0],$explodedLoc[1],$explodedLoc[2]), //location
$iconthumb[$i], //thumb
$iconthumb[$i], //icon
$desc[$i],//description
array(array("PressThis", "soundButton", "takelab.sub.jp")) //buttons
);
//output the object
ArelXMLHelper::outputObject($oObject[$j]);
}
$j++;
//
ArelXMLHelper::end();

上のコードの3行目で、これまで扱ってきた位置情報が扱えるように$loc[$i]に入っていた文字列を「,」で分割してそれぞれを$explodedLocに格納するようにしています。
この時、$explodedLocは配列の変数となります。

$explodedLoc[0]には35.000
$explodedLoc[1]には135.000
$explodedLoc[2]には0

という文字列が格納されます。

これらの文字列を「配列」として$oObjectのlocationの部分に入れなければなりません。
そのため、arrayを使って値を一個ずつ入れています。

関数explode
explode()関数は連続した文字列があるとき、指定した文字をもって文字列を分割してくれます。
詳しくはこちら

<?php
$loc = "35.000,135.000,0";
$explodedLoc = explode(",", $loc);//$locの中身をx,y,zに分割
echo $explodedLoc[0];
echo "<br>";
echo $explodedLoc[1];
echo "<br>";
echo $explodedLoc[2];
?>

出力結果
35.000
135.000
0

junaioARELAPI上で日本語を扱うと文字化けするので対処が必要らしい・・・
一応junaioARELAPI上でRSSをエアタグ化に成功。

とりあえず、junaio規定のXMLを複数生成することに成功したもののエアタグ自体はひとつしか表示されなかった。
研究室OBの先輩曰く「アイコン画像が抜けているからでは?」という意見。
新APIではアイコン画像が抜けるとそれだけでエアタグ生成をストップしてしまうようです。旧APIの方が圧倒的に扱い易かった。
文字化けに関しては生成部でというのを使えばなんとかなる可能性があるのでこれからやってみます。
ああ、本論・・・

※今回テストでエアタグを置いた場所は僕が浪人時代に住んでいた街です。

【追記】
アイコン画像設定しましたがうまくいきませんでした・・・