自動チェックインアプリ(1) – 保存したスポットの読込

これまでの作業で、ロケタッチのスポットをタグつきで保存できるようになった。ここからは、このアプリを活用して、「訪問予定のスポットと予定日時」を管理し、自動チェックインするアプリを作成していく。

xlocplan02.html
xlocplan02_a01

  • 保存(clip)したスポットを読み込む:loadClip()
  • GAE (Google App Engine)のデータストアに保存したスポットのデータを読み込む。データストアへのアクセスにはgaedirectを利用する。

    // JavaScript
    function loadClip(){
      gDSspotClip.dbRevAll2('','',function(clips){ // 全てのエンティティ(レコード)を対象
        xumiscMessage(clips.length +  ' clip spots loaded.', 2000); // 読み込んだ件数を表示
      });
    }
    
  • 保存したタグ(clip用)を読み込む:loadTagClip()
  • GAEに保存したタグ一覧を読み込む。

    // JavaScript
    function loadTagClip(){
      // 並び順は昇順、ステータス:live(使用中)のものを読み込み
      gDStag.dbRevAll2('tag_name:ASCENDING', 'tag_status:live', function(tags){
        setCbxTagClip(tags); // コンボボックスの初期化
      });
    }
    
  • コンボボックスを初期化する:setCbxTagClip()
  • 読み込んだタグ一覧でコンボボックス(タグ選択用)を初期化する。

    // JavaScript
    function setCbxTagClip(tags){
      $('#cbxTagClip').combobox({
        valueField: 'tag_key',
        textField: 'tag_name',
        multiple: false, // 複数選択しない
        data: tags, // データをセット
        onSelect: function(){ // 選択時の動作を指定
          // 保存したspotを選択したタグでフィルタリング
          var _spots = 
            filterSpotByTag(gDSspotClip.getData(), $('#cbxTagClip').combobox('getValues'));
          if ( _spots.length > 0) { // 対象spotが1つ以上の場合
            showTblClip($('#tblClipSpot'), _spots); // spot一覧をテーブル表示
            displaySpotsOnMap(_spots); // spot一覧を地図表示
            //xumiscMessage(_spots.length + ' spots clipped.');
          }
          else { // 対象spotがない場合
            xumiscMessage('No for the tag:' + $('#cbxTagClip').combobox('getValues'));
          }
          //showTblClip($('#tblClipSpot'), gDSspotClip.getData());
          //console.log('cbxTagClip onSelect');
        },
        onUnselect: function(){
          // タグの複数選択を許容していないので、今のところ不要
        }
      });
    }
    
カテゴリー: Development, Location Service タグ: , , パーマリンク