上位に戻る PC遠隔電源制御 初版20130211
最新20130331 公開

 ゴルフ場の管理ソフトの依頼話があり、さすがに素人の為無理ぽかったので、NGな上、調べてみると世の中には、いろいろいい
 ソフトがいっぱいあってこりゃなんともでしたが、勉強がてら作ってみました。
 まあ、ゴルフもやってない上に、じじいの素人プログラムで、勝手に作ったものなので、今のところ使い物になりません。
 別の用途でも使えるかもしれず、公開しておきます。検証されていない上に、まだまだ作りかけ途中の代物です
 スマートフォンにて地図上に現在位置を表示して、グリーンまでの距離の表示や、飛距離の記録、スコアを記録することができます
 合わせて、クライントのパソコンから、各端末の位置情報や、スコア情報を取得できます。スコア表の印刷などもできます。
 説明が不十分ですので、使おうなどと物好きな方は、連絡ください

1.動作環境について

2.スマートフォン基本プログラム(エンドユーザ向け)

3.地図データ作成補助機能

4.ゴルフ場利用プログラム

5.プログラム本体




  1. 動作環境について
    ■スマートフォン環境
     Android O/S V2.2以上
     解像度 800×480以上
     通信機能 インターネットに接続できること
     (通信機能を利用しない場合は、無くても動作可能です)

     低スペックな環境となっていますので、売れ残りなどの安価な端末を利用頂けます。
     B-mobileの低速低額プラン980円などを利用できれば、導入しやすいと思っています。
     (スコアや位置情報などの少量のパケットを送出するだけですので、低速で十分だと思います)


    ■サーバ環境
     ゴルフ場の地図データを格納したり、スコアデータや、位置情報をやり取りする為に、インターネット上のWebサーバが
    必用です。
     httpと、ftpを利用しますので、両方が利用できるサーバが必用です まあゴルフ場が使っているレンタルサーバでいいかと
     思っています


    ■クライアントPC環境
     MS Windowsクライアントで、.netFrameWork2.0以上が動作する環境必用です。
     地図データの作成や、位置情報の監視用として利用します



  2. スマートフォン基本プログラム

    本プログラムは、エンドユーザが利用する、ホール情報の表示や、スコア入力、飛距離記録機能と、
    ゴルフ場が利用する、位置情報プログラムと、地図作成者が利用する、測量プログラムがあります


    ■エンドユーザ向け機能
    ・メイン画面
    位置情報が、検出されない場合や、位置が地図上に無い
    場合に、map0.jpgが表示されます

    ■ボタン機能
     ・手動/自動ボタン
      地図の切替を自動的に行います。
      通常自動ですがホールが隣接している為となりの
      ホールが表示したりする場合は、手動で切り替えて
      ください(ベージ切替ボタンを押すと手動に「なります)

     ・ページ切替ボタン
      三角形の矢印ボタンを押すと、ページが切り替わりま
      す。自動に戻す時は、上記自動ボタンを押します。

     ・エッジボタン
      グリーンエッジまでの距離を表示します

     ・中央ボタン
      ピングリーン中央までの距離を表示します

     ・任意ボタン
      本ボタンを押した後、画面にタッチしてスライドすると
      その位置までの距離を表示します

     ・飛距ボタン
      ボールの飛んだ距離を記録する為に機能です
      計測開始位置で本ボタンを押して、計測終了位置に
      着たら、測停ボタンを押します。

     ・測停
      飛距離の計測を停止し、値を記録するか聞いてきます
      ので、必用により、記録します

     ・虫眼鏡
      地図を2倍に拡大して表示します
      タッチして地図をスライドさせることができます





    スマホのメニューボタンを押すと、6つのメニューが出て
    きます

    ・map取得
     まず起動したら、このボタンを押して、該当のゴルフ場
     のデータをダウンロードします
    ・スコア入力
     スコアを入力します
    ・スコア表示
     本日のスコアを表示します
    ・過去スコア
     過去に記録した又は当日スコアを表示します
    ・過去距離
     過去に記録した又は当日の飛距離の記録を表示
    ・設定
     プレーヤの名前など、各種設定を行います



    最初に起動したら、地図や、ホール情報の基本情報
    をダウンロードします。

    map取得画面を表示すると各ゴルフ場のデータの置い
    てあるアドレス情報の記載されたインデックスファイル
    をダウンロードして、ボタンに表示します。

    現在インデックスファイルは、自宅の鯖と、
    利用プロパイダのeoのサーバを参照するようにして
    います。

    ゴルフ場を増やす場合は、このインデックスファイル
    に追記します。

    該当のボタンを押すと、インデックスファイルに記載
    されたサーバからホール情報をダウンロードしてき
    ます
    ダウンロードされたファイルは、SDcardに格納されます
    /mnt/sdcard/golsup/data
    サーバ上に無くてもこの中味を編集することで、
    ローカルでも利用できます



    設定画面


    エンドユーザが設定する情報

    名前:プレーヤの名前
    Tees:使用するティーを選択します
        ティー情報は、ホール情報としてダウンロード
        した情報が表示されます









    スコアを共有する場合は、設定ボタンを押して
    同一メンバーであることを識別する為の情報を
    入力します
    日付+スタート時の組番号+識別番号+
    組内の順番番号


    他のメンバーがスマホを持っていない場合に、自分
    が他のメンバーのスコアを入力することができます

    ちなみに、左画面の例では、自分の組内番号が3
    で、他メンバーが 1 2 4となっています



    スコア共有設定

    少々厄介なのが、スコアを共有する為の識別番号
    です

    識別情報として、
    スタートの組番号
    任意の識別番号(組内で同一の値を入力)
    組内での順番番号(1〜4ユニークな番号)
    を設定します



    管理用設定画面


    管理用画面でエンドユーザには、公表させない
    予定です(現状は、未処理)

    ・SDCardの保存フォルダ名を表示しています

    ・計測モードを追加
     測量するメニューがメイン画面に表示されるように
     なります

    ・省電力モード無効
     常時画面のバックライトが表示された状態になりま
     す。これは、省電力モードから復帰したときに、GPS
     の位置取得がすぐに出来ない端末用の設定です

    ・サーバに位置情報を送出する
     周期的にサーバに現在位置を送出します
     
    ・FTPサーバ情報
     本サーバ情報は、地図情報とともにダウンロードさ
     れますので、設定は不要です

    ・データ送信周期
     現在タイマースレッドではなく、SLEEP+LOOP処理
     にて処理しているため、1秒単位ではありません
     10で、→約30秒です

    ・識別コード
     位置情報の固体を識別する為の番号です
     他の個体とは異なる番号を記述します





    スコア入力


    コース地図が表示されている状態で、スコア入力
    を選択すると、左のような画面が表示されます

    スコア数とパット数を選んでボタンにて選択します
    戻るボタンを押すと、データが記録されます
    ボタンは、スクロールします

    設定画面で、他のメンバーも入力にチェックを入れ
    ておくとメニューボタンを押すと、他のメンバーのスコア
    を入力できます



    スコアの表示


    スコアの表示画面

    HOLE番号は、固定で残りが横スクロールします

    INボタンを押すとINに切り替わります




    過去スコア

    過去スコアを選択すると、過去データが表示
    されます。記録された日付と、ゴルフ場の名前が
    表示されますので、見たいボタンを押すと、該当の
    スコアが表示されrます




    過去飛距離

    過去距離を表示させると、過去に記録した一覧
    が表示されますので、見たいボタンを押します





  3. 地図データ作成補助機能

    ■データの構造について
     必用なデータは、以下の通りです
     map0.jpg〜map18.jpg
      各ホールの地図となります。解像度は自動的に画面の横サイズに合わせて拡大縮小されますので、特に規定はありません
      最低解像度だと、480×640のサイズとなります。但し、縦横比は、横サイズは、縦の0.75倍にする必要があります
      また、現在位置としてプロットする図形は、car.PNGです。地図のサイズにあったサイズにする必要があります
      地図サイズは、任意ですが、サイズを統一しておかないとプロットしたときのcar.PNGのサイズが異なってくることになります
     
     car.PNG
      現在位置にプロットされる画像

     map0.ini〜map18.ini
      地図の位置情報を記録したファイルとなります



    地図左上角の経度(deg)
    地図左上角の緯度(deg)
    地図右下角の経度(deg)
    地図右下角の緯度(deg)
    画像の横幅(pixcel)
    画像の縦幅(pixcel)
    地図の回転角度(deg)反時計周り
    グリーンエッジの経度
    グリーンエッジの緯度
    グリーン中央の経度
    グリーン中央の緯度
    リザーブ
    リザーブ
      ※地図の回転角度は、地図を中心として回転した角度です
      ※地図角の座標は、回転する前の座標を記入します

     scoredata.csv
      ホールのスコア情報
      ティーの種類は、レギュラーティーや、レディーズティーなどで、4種まで記入できます。それ以上になる場合は、別の地図データとして登録します
      このティー名称は、本プログラム内で利用されます



     ftp.csv
      ftpサーバのログインID パスワード フォルダ名を定義したファイル
      ftpサーバを利用できないと、スコアの共有と、PCクライアント側での位置情報の監視などができません。
      
       



    ■ 地図データ作成補助プログラム
      地図データを作るのはかなり面倒なことになりますので、google MAPから jpegの地図画像を切り出しし、同時に、iniファイルを作成する
      補助プログラムを作りました

    住所欄に住所を入力し、検索ボタンを押します

    地図が表示されたら、ズーム度や、地図の位置
    を調節します

    決まったら、座標を取得する為に、左上座標
    右下座標をクリックして現在座標を取得します

    保存先をクリックして地図情報を保存するフォルダ
    を設定します

    切取処理開始ボタンを押します

    赤の四角が表示されますので、切り取る区画
    を設定します

    グリーンエッジ 中心座標を必用により取得しま


    サイズを変更したい場合は、指定サイズを選択
    します
    切取後のサイズは、横幅の値を設定します

    切取ボタンを押します
    切り取った地図画像と、iniファイルがポップアップ
    表示されます

    続けて処理し、位置を移動したい場合は、
    ブラウザに戻るボタンを押して、地図を移動
    させて、上記手順を繰り返してください
    ※移動後は、必ず座標を取得し直してください
    表示できるサイズですが、ウィンドウの大きさを
    変えると、動的に変更されます

    最大サイズですが、横幅は、制限ありませんが
    縦幅は、現状1200pixcelで設定しています
    まあいくらでも大きく設定できますので、希望が
    あれば、言って頂ければ変更します



    ■ 地図データ作成補助プログラムその2
      さて、上記で切り取った、googleの地図ですが、フェアウエイのエッジの位置は航空写真では判別できそうにありません。
      なので、実際にゴルフ場で、エッジの周りを歩いて測定するプログラムを作りました。また、中心コースの記録と、高度を記録
      する機能も追加しています


    設定画面で、計測モードを追加にチェックを入れると
    メイン画面のメニューボタンを押すと、計測モードの
    ボタンが現れます
    通測ボタンを押すと、移動した軌跡を記録することが
    できます

    フェアウェイのエッジや、グリーンエッジ上を移動するこ
    で、記録できます。

    測停ボタンを押すと、追記するか破棄するか聞いて
    きますので、軌跡を保存します
    高測ボタンを押すと、移動した位置の軌跡がグリーン
    で表示、そのときの高度がマゼンタで表示されます

    ポイントボタンを押すと、その位置に赤丸マークを
    プロットし、直線距離を表示します


    左の画像は、実際に計測したわけではなく、プログラム
    で、仮に移動させたものです

    高度のプロットは、左端からスタートして、一番低い
    高度が、左端詰めで、表示されます




  4. ゴルフ場利用プログラム
    各端末の位置情報の表示や、スコアを表示印刷することができます
    作りかけて途中で終わっています 今のところ使う予定もないので、このままかなああ・・・・・。



    フォルダ:地図データなどを保存するフォルダの指定します

    読出ボタンを押すと、サーバに登録されている、ゴルフ場の一覧が表示されます

    選択ボタンを押すと、該当のゴルフ場の地図データなどがダウンロードされます
    但し現状ダウンロードされる地図は、ホール情報のみです。全体地図は、
    ダウンロードされませんので、手動で、mdataフォルダ内に格納する必要が
    あります

    全体地図情報 mapmX.jpgと、mapmX.iniファイルが必要です

    地図表示ボタンを押して、開始ボタンを押すと、監視が開始されます

    識別番号は、スマホで登録した位置登録用の識別番号に合わせます

    位置情報が検出されると、プロットされます
    スコア印刷ボタンを押すと、スコア画面が表示されます

    サーバより読出ボタンを押すと、サーバに登録されている、スコアの日付と
    組が表示されますので、印刷したいものを選択します
    印刷プレビューを押すと、左記のような画面が表示されます
    印刷サイズは、A4の用紙サイズとなっています
    上下に表向きに2つ折にしてから、左右に折るとA6サイズの
    スコア表が出来上がります





5.プログラム本体

■スマホ側プログラム
スマホのブラウザから下記ファイルを指定して直接インストールします
GolSupporter_v1.0 初版 20130211


■地図作成補助プログラム
動作環境としてデフォルトブラウザとしてIEが必須です
MakeMap_v1.0 初版 20130124


■監視管理用クライアントPCソフト
まだ未完成ですが、今のところ使う見込みないので、更新予定ありません
GolMonitor_v0.7 初版 20130331