2016年4月20日水曜日

消防署データの内容

消防署データが必要でダウンロードして得られたデータを検証しました。

ダウンロード
http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P17.html
ここから静岡県をダウンロードしました。

ファイル名:P17-12_22.xml
1.タグ[gml : Point id = pt_fsnXXX]

これは消防署の場所を表していて緯度、経度を持つ。このIDで検索すると
タグ[ksj : FireStation gml : id=fs_XXX]の中に
となり、消防署名前、市町村コード、種別、住所が得られる。
2.次に消防署管轄の情報を見てみると
タグ[gml : Surface gml : id =sf_fsnYYYY]
このsf_fsnYYYYの少し上にcvZZがあって、これが管轄の緯度経度を表している。つまりIDがある直上が管轄の緯度経度。




このsf_fsnYYYYで検索すると
となる。
この1と2を紐付けるのは「消防署名」しかないのかな?日本語でのマッチングはいろいろ問題あるのでやりたくありません。いい方法が欲しい。

2016年4月19日火曜日

Office365 : PowerShell環境設定とパスワード変更

Windows7にPowerShellの環境を整え、Office365ユーザのパスワードを変更します。

1.PoserShell環境設定
Microsoft Online Services サインイン アシスタントの導入
https://www.microsoft.com/ja-jp/download/details.aspx?id=41950
からダウンロードし、インストールします。
 
Windows PowerShell 用 Windows Azure Active Directory モジュールのインストール
http://social.technet.microsoft.com/wiki/contents/articles/28552.microsoft-azure-active-directory-powershell-module-version-release-history.aspx
から今回はVersion 8362.1をダウンロード、インストールします。

Windows Management Framework 3.0 (Windows7で必要ならば)
https://www.microsoft.com/en-us/download/details.aspx?id=34595
からダウンロードし、インストールします。

2.PowerShellでの操作
すべてのプログラム->アクセサリ->Windows PowerShell->Windows PowerShell ISEを管理者で起動
Import-Module  MSOnline
Connect-MsolService
Office365のユーザ名とパスワードを入力します(管理者のID)。 
パスワードを変更します。
Set-MsolUserPassword -ForceChangePassword $False -UserPrincipalName username@domein.jp -NewPassword "password"

上記はパスワードを指定して、ログイン時にパスワード変更が入らないコマンドです。これでPowerShellからパスワード変更ができました。

参考
http://news.mynavi.jp/series/365/009/
Office 365 PowerShell ガイド

2016年4月18日月曜日

Cakephp : 類似度関数(similar_text関数利用)

PHPの関数 : similar_text関数を用いて、2つのテキストの類似度を算出しました。
今回は課題テーブルsubjectsのviewで類似度を算出し、similaritiesテーブルに格納しました。


        public function view($id = null) {
                if (!$this->Subject->exists($id)) {
                        throw new NotFoundException(__('Invalid subject'));
                }
                $options = array('conditions' => array('Subject.' . $this->Subject->primaryKey => $id));
                $this->set('subject', $this->Subject->find('first', $options));

                $subject = $this->Subject->find('first', $options);

                App::import('Model', 'Similarity');
                $this->Similarity = new Similarity;

                for($i = 0; $i < count($subject['Report']) - 1 ; $i++){
                        for($j = $i + 1; $j < count($subject['Report']);$j++){

                                similar_text($subject['Report'][$i]['answer'], $subject['Report'][$j]['answer'], $diff);
                                $data = array('Similarity' =>
                                                array('fromid' => $subject['Report'][$i]['id'],
                                                        'toid' => $subject['Report'][$j]['id'],
                                                        'value' => $diff
                                                )
                                        );
                                $this->Similarity->create();
                                $fields = array('fromid', 'toid', 'value');
                                $this->Similarity->save($data, false, $fields);
                        }

                }
        }


参考
http://php.net/manual/ja/function.similar-text.php
http://nitou.dip.jp/blog/archives/4238

2016年4月14日木曜日

Cakephp:動画を表示

Cakephpにビデオタグを実装して、実際に画面で動画を見る方法です。


4行加えるだけなので実装は簡単。 載せるページのview.ctpに以下のコードを加えます。

今回はContentテーブルにpathを格納しているので、アドレスの呼び出しは$content['Content']['path']になっています。





pathは「 /movie/動画ファイル名.mp4 」でテーブルに格納してあります。





contents画面からviewボタンで詳細ページに移動すると、画像のように動画が表示されます。