概要

このアプリは現在地情報の強制変更を行う、シンプルな開発者向けアプリです。

ジオ系アプリの開発で、実際に移動を行わなくても、移動中の位置情報に関する動作確認を行うことを想定しています。

テスト

テストは、本アプリのメインとなる操作対象です。

本機能へのアクセス

アプリを起動するとアクセスできます。

一覧画面

テストを一覧表示します。

メニュー

以下のそれぞれの機能にアクセスするための、このアプリのメインメニューです。

検索(虫眼鏡アイコン)
リストの絞り込み検索が可能です。
新規テスト
テストを追加する為の機能です。
タイルサーバー
タイルサーバーを管理する為の機能です。
データ共有
アプリ内のデータをインポート/エクスポートする為の機能です。
設定
アプリの設定を管理する為の機能です。
このアプリについて
このアプリの情報を表示する機能です。

リストセル

以下の操作を行うと、それぞれの機能にアクセスできます。

タップ
テストの編集画面へ遷移します。
ロングタップ | 左へスライド

以下の機能にアクセスすることができます。

実施履歴
テストの実施履歴一覧画面へ遷移します。
複製
テストを複製します。
削除
テストを削除します。

編集画面

テストを実施するための設定を行うための画面です。

メニュー

以下のそれぞれの機能にアクセス可能です。

タイトル編集(鉛筆アイコン)
テストのタイトルを編集できます。
GPX読み込み
経路をGPX(ウェイポイントまたはトラック)形式のファイルから読み込みます。
経路決定後は無効化します。
保存
編集中のテストを保存します。
実行
編集中のテストを保存し実行します。

ボタン(地図読み込み後)

地図を読み込み終わると、以下のボタンが出現します。

表示モード切り替え(太陽・月アイコン)
Googleマップの基本の地図のダークモード表示をオン・オフできます。
初期設定は端末のダークモード設定に従います。
マップタイプ(テクスチャアイコン)

Googleマップのテクスチャを以下から選択して変更できます。

  • 基本の地図
  • 衛星画像
  • 道路トラベルを含む衛星画像
  • 地形データ
  • なし
タイルオーバーレイ(レイヤーアイコン)

タイルサーバーを追加するための以下のボトムシートを表示します。

+ボタン
タイルサーバー選択画面を表示します。
リスト

追加されたタイルサーバーが表示されます。
セルには以下の機能があります。

=アイコン
上下にドラッグすることで、タイルオーバーレイの重なりを変更できます。
削除メニュー
セルを長押しすると、タイルオーバーレイを削除するメニューが出現します。

ボタン(経路決定後)

経路を決定すると以下のボタンが追加されます。

経路の編集(鉛筆アイコン)

押下すると以下の状態になります。

  • 経路に経由地が表示されます。
  • ボタンアイコンがチェックマークに変更されます。
  • 経由地削除ボタンが表示されます。

このモードでは経由地(出発地・目的地を含む)を選択・移動・追加・削除して、経路を編集できます。

出発地・目的地以外の経由地は選択されると赤くなります。
経由地を選択して地図を移動すると、選択された経由地が地図中心を追随します。

経由地の選択を解除するには、以下の操作を行ってください。

  • 地図をタップ
  • スナックバーの「移動終了」をタップ

経由地を追加するには、経路の線分上をタップします。
追加された経由地は選択され、地図中心を追随します。

経由地を削除するには、経由地削除ボタンを押下します。
経由地削除ボタンを押下すると、ボタンが赤く表示され、タップした経由地を削除できます。
経由地削除を解除するには、もう一度ボタンをタップします。

経路の編集を終えるにはチェックマークボタンを押してください。

設定(歯車アイコン)

以下の項目を設定できます。

時速
移動速度を設定できます。
ゆらぎ
経路上を蛇行します。
質の悪いセンサーをシミュレート
移動中にランダムで経路を大きく外れた地点に移動します。

情報ウィンドウ

タイルオーバーレイを表示や経路決定を行うと、右上に表示される小さなウィンドウです。

ズームレベル
タイルオーバーレイを表示、もしくは経路を決定すると、地図のズームレベルを表示します。
経路距離
経路を決定すると、経路の全長をズームレベルとともに表示します。

実施履歴

実施履歴は、テストを実施すると履歴として生成される操作対象です。

本機能へのアクセス

テスト一覧画面のリストセルを、ロングタップもしくは左へスライドすると、アクセスできます。

一覧画面

実施履歴を一覧表示します。

メニュー

以下のそれぞれの機能にアクセス可能です。

削除(ゴミ箱アイコン)
リスト内のすべてのレポートを削除します。

リストセル

以下の操作を行うと、それぞれの機能にアクセスできます。

タップ
実施履歴の詳細画面へ遷移します。
ロングタップ | 左へスライド

以下の機能にアクセスすることができます。

削除
実施履歴を削除します。

詳細画面

実施履歴の詳細画面を表示します。

メニュー

以下のそれぞれの機能にアクセス可能です。

前(上向きシェブロンアイコン)
表示中の実施履歴よりひとつ前の実施履歴を表示します。
次(下向きシェブロンアイコン)
表示中の実施履歴よりひとつ後の実施履歴を表示します。
経路出力

経路をGPX形式で出力します。

ウェイポイント
出力するGPXをウェイポイントのリストとして出力します。
トラック
出力するGPXを一つのセグメントを含むトラックとして出力します。
軌跡出力

テストで移動した軌跡をGPX形式で出力します。

ウェイポイント
出力するGPXをウェイポイントのリストとして出力します。
トラック
出力するGPXを一つのセグメントを含むトラックとして出力します。

タイルサーバー

タイルサーバーは、タイルオーバーレイの設定を保持する操作対象です。

本機能へのアクセス

テスト一覧画面のメニューからアクセスできます。

一覧画面

タイルサーバーを一覧表示します。

国土地理院のAPIをプリセットとして収録しています。

メニュー

以下の機能にアクセス可能です。

検索(虫眼鏡アイコン)
リストの絞り込み検索が可能です。
追加(+アイコン)
タイルサーバーを追加する為の機能です。

リストセル

以下の操作を行うと、それぞれの機能にアクセスできます。

タップ
タイルサーバーの編集画面へ遷移します。
ロングタップ | 左へスライド

以下の機能にアクセスすることができます。

削除
タイルサーバーを削除します。

編集画面

タイルサーバーを編集できます。

メニュー

以下の機能にアクセス可能です。

保存(フロッピーアイコン)
設定に必要な情報を全て入力すると、保存メニューが有効化されます。
キャッシュ削除
キャッシュされたタイル画像を削除します。

設定フォーム

名称
名称を入力してください。
URLテンプレート

静的なURLテンプレートの場合は、テキストフィールドに入力してください。

スクリプトで生成を押下し、スクリプトを設定すると、テキストフィールドが非表示になり、入力されていたURLテンプレートは削除されます。

URLテンプレート文字列は以下の要件を満たしたものです。

  • httpsで始まる
  • {z}が含まれる
  • {x}が含まれる
  • {y}が含まれる
サポートズームレベル

サポートされるズームレベル範囲を選択してください。

最小

最小ズームレベルを選択してください。

下部のチェックボックスを選択すると、カレントズームレベルを最小ズームレベル以下に下げた時に、最小ズームレベルのタイル画像からカレントズームレベル相当の画像を生成します。

地図で表示される範囲が広くなるため、タイル画像取得数が増加します。

そのため、表示に時間がかかる上に、キャッシュがたまるまではサーバーに負荷がかかるので、タイルサーバーがテストやステージング環境などの場合に利用してください。

最大

最大ズームレベルを選択してください。

下部のチェックボックスを選択すると、カレントズームレベルを最大ズームレベル以上に上げた時に、最大ズームレベルのタイル画像を拡大・切り取りし、カレントズームレベル相当の画像を生成します。

この処理では、画像が荒くなる以外に、特に負荷におけるデメリットはありません。

透明度
オーバーレイをどれくらい透過するかを0.0〜1.0の範囲で設定してください。
TMS

サーバーがTMS(Tile Map Service)を採用している場合はチェックしてください。

Y軸を反転して画像取得するようになります。

スクリプト

本アプリにはPython3.8とrequestsモジュールが組み込まれています。
URLテンプレートを動的に生成する必要がある場合に利用してください。

本機能へのアクセス

タイルサーバー編集画面のスクリプトで生成を押下するとアクセスできます。

編集画面

簡易的なスクリプトエディタを表示します。

メニュー

以下のそれぞれの機能にアクセス可能です。

実行(再生アイコン)
記述中のスクリプトを実行し、結果をダイアログ表示します。
保存(フロッピーアイコン)
スクリプトを保存します。
スクリプト読み込み
Pythonファイルを読み込んでエディタ内のスクリプトを上書きします。

スクリプトの書き方

スクリプトの目的はURLテンプレート文字列を定義することです。

URLテンプレート文字列は以下の要件を満たしたものです。

  • httpsで始まる
  • {z}が含まれる
  • {x}が含まれる
  • {y}が含まれる

アプリはスクリプトを評価し、グローバル変数のresultを参照することで、URLテンプレート文字列を取得します。

Python3.8の標準モジュールとrequestsモジュールを使って、ネットワークアクセスとそのレスポンスボディを文字列操作することで、URLテンプレート文字列を生成してください。

スクリプトサンプル

以下に、国土地理院標準地図のURLテンプレート文字列を、アプリに渡すサンプルスクリプトを示します。

import requests

def generate_url():
    try:
        response = requests.get('https://www.sangeisha.com/veer/sample.json', timeout=(5, 10))
        if response.status_code == 200:
            data = response.json()
            hostname_str = data['hostname']
            category_str = data['category']
            type_str = data['type']
            extension_str = data['extension']
            return f'https://{hostname_str}/{category_str}/{type_str}/{{z}}/{{x}}/{{y}}.{extension_str}'
        else:
            return None
    except requests.Timeout:
        return None
    except requests.RequestException as e:
        return None

result = generate_url()
	      

実行タイミング

スクリプトが実行される契機は、テストで以下を実施したタイミングです。

  • タイルサーバーを追加したとき
  • タイルサーバーの重なりを変更したとき
  • スクリプトで生成するタイルサーバーが追加されたテストを開いたとき

データ共有

すべてのデータを端末間で共有するための機能です。

本機能へのアクセス

テスト一覧画面のメニューから以下の機能にそれぞれアクセスできます。

インポート
他の端末でエクスポートしたファイルから、データをインポートします。
エクスポート
他の端末がインポートできるファイルに、データをエクスポートします。

インポート画面

他の端末でエクスポートしたファイルを選択する画面です。

すでに重複した情報があっても、別の情報としてインポートされます。

メニュー

以下の機能にアクセスするためのメニューです。

閉じる(バッテンアイコン)
画面を閉じます。

エクスポート画面

他の端末がインポートできるファイルに、データをエクスポート画面です。

メニュー

以下の機能にアクセスするためのメニューです。

保存(フロッピーアイコン)
出力先ディレクトリを選択し、ファイル名を入力すると、有効化されます。
閉じる(バッテンアイコン)
画面を閉じます。

エクスポートされたファイルは暗号化されていますが、念の為取り扱いはご注意ください。

設定

アプリの設定を変更できる機能です。

移動手段

経路検索のパラメータを以下から設定できます。

walking
歩行者専用道路や歩道(利用可能な場合)を経由した徒歩ルートを示します。
bicycling
自転車専用道路や優先道路(利用可能な場合)を経由した自転車ルートまたは距離を示します。
driving
道路網を使用した標準的な運転ルートまたは距離を示します。
デフォルトの時速
テストで設定する時速のデフォルト値を設定できます。
ポリラインカラー
経路と軌跡の線の色を変更できます。
目的地決定と同時に経路を自動検索する

目的地を地図の長押しや文字列検索で決定した時に、経路を検索します。

チェックを外すと出発地と目的地が直線でつながる経路が作成されます。