12 October 2019

GpsPruneで外部の地図(マップ・ソース)を表示する

GpsPruneで、APIが公開されている外部サーバの地図を表示するように設定するには、 設定 - 背景地図 - 新しいマップ・ソースの追加 で設定を行う

20191012-gpsprune-addserver.jpg
マップ・ソースの追加ダイアログ ( Adding a new map server)

ココに設定する外部サーバの書式は

https://www.example.com/map/{zoom}/{x}/{y}.png

というAPIの場合は

https://www.example.com/map/

と設定する

例えば、国土地理院地図の場合は『地理院タイル一覧』から、表示したい地図の種類を選択し、標準地図の場合は

https://cyberjapandata.gsi.go.jp/xyz/std/

と設定する。

しかし、地質図 『20万分の1日本シームレス地質図V2 Web API』の場合は、APIの書式が

https://gbank.gsj.jp/seamless/v2/api/1.0/tiles/{zoom}/{y}/{x}.png

となっていて、よく見ると {x} と {y} が国土地理院のものと逆!

GpsPruneに設定しても表示できない。

理由は簡単で、GpsPruneのソースコードを見ればわかる

gpsprune-18.6/tim/prune/gui/map/MapSource.java
/**
 * Make a relative file path from the base directory including site name
 * @param inLayerNum layer number
 * @param inZoom zoom level
 * @param inX x coordinate
 * @param inY y coordinate
 * @return relative file path as String
 */
public String makeFilePath(int inLayerNum, int inZoom, int inX, int inY)
{
    return getSiteName(inLayerNum) + inZoom + "/" + inX + "/" + inY + "." + getFileExtension(inLayerNum);
}

{zoom} , {x} , {y} の順番はカスタマイズできないのだ