browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

[地図] Maps.me用カスタム地図を自作する(環境構築)

Posted by on 2018/04/30

オフライン地図アプリMaps.me用地図データ生成のための環境を構築してみました。普通はアプリ内でダウンロード出来る地図だけで問題ないと思うのですが、どうしても自分でカスタマイズしたい内容が出てきたのです。この環境があればオリジナル地図をMaps.meで使うことが出来ます。

 

何故にわざわざ地図を作るか?

ご存知の通り、Maps.meではすでに世界中の地図データが無料で提供されています。内容も定期的に更新されているので普通は自作する必要などありません。しかし、現時点(2018/04/29)では等高線が無いので山登りにはちょっと不便だったり、iPhone4などの古い端末で動作するバージョンだと何年か前の地図データしか無かったりします。地図データが自作出来ればそれも解決出来る、ハズ。ということで、やってみることにしました。

 

環境について

PC環境

まず、VMWarePlayerを使って仮想PC上にUbuntuをインストールしました。ここに地図生成に必要なツール類等の環境一式を構築していきます。ゲストPCのOSはUbuntu 16.10です(たまたまあった環境を再利用しました。多分18.04でもいけると思います)。

ホストPC

  • OS:Windows10(64bit)
  • CPU:Intel Core i5-4670(3.4GHz)
  • メモリ:16GByte
  • 仮想PC:VMware(R) Workstation 12 Player 12.5.9 build-7535481

ゲストPC

  • OS:Ubuntu 16.10(64bit)
  • CPU:4core
  • メモリ:8Gbyte
  • HDD:1TByte
ubuntu-mapsme-env.png

以前にGarminGPS地図を自作した環境を流用しました。ゼロから構築するならUbuntu 18.04のほうがいいと思います。

作業ディレクトリ

本記事では以下ディレクトリで作業をする前提で記載しています。環境に応じて読み替えてください。

  • 作業用ディレクトリ:/media/kiri/data
  • mapmeプロジェクト:/media/kiri/data/git/mapsme
  • OSM地図データ:/media/kiri/data/pbf/planet-latest.o5mもしくはjapan.o5m
  • 海岸線データ:/media/kiri/data/pbf/WorldCoasts.geom
  • 地図ファイルの出力先ディレクトリ:target

 

Maps.me地図作成のための環境構築

環境構築には以下のドキュメントにある手順を参考にしました。バージョンアップに伴って内容が変わっているかもしれないので、最新の情報はリンク先を確認してください。

 

(Step.1)必要なパッケージをインストール

Ubuntuのインストールが終わったら必要なパッケージ類をインストールします。

$ sudo apt-get install git cmake

# Qt5
$ sudo apt-get install qt5-default qtcreator

#clang 3.8
$ sudo apt-get install clang libc++-dev libboost-iostreams-dev libglu1-mesa-dev
$ sudo apt-get install libtbb2 libluabind0.9.1v5 liblua50 libstxxl1v5 libtbb-dev libluabind-dev libstxxl-dev libosmpbf-dev libprotobuf-dev libboost-thread-dev libboost-system-dev libboost-program-options-dev libboost-filesystem-dev libboost-date-time-dev

sudo apt-get install sqlite3 libsqlite3-dev

python-probufも必要ですが、Ubuntu 16.04ではpython-probufのバージョンが古くて動かないのでpipでインストールします(Ubuntu18.04はapt-getでいけると思います)。

<pre># Ubuntu 16.04
$ pip install protobuf

# Ubuntu 18.04
$sudo apt-get install python-protobuf</pre>

念のため、protobufのバージョンを確認。


$ pip show protobuf
---
Metadata-Version: 2.0
Name: protobuf
Version: 3.5.2.post1
Summary: Protocol Buffers
Home-page: https://developers.google.com/protocol-buffers/
Author: protobuf@googlegroups.com
Author-email: protobuf@googlegroups.com
Installer: pip
License: 3-Clause BSD License
Location: /home/kiri/.local/lib/python2.7/site-packages
Requires: setuptools, six
Classifiers:
Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.3
Programming Language :: Python :: 3.4

$ python -c "import google.protobuf; print google.protobuf.__version__"
3.5.2.post1

Ubuntu 16.04環境でapt-getからいれると古いバージョンがインストールされて動きませんでした。以下のように古いバージョンが入っている場合はapt purgeでアンインストールしてから新しいものをインストールしてください。


$ pip show protobuf
---
Metadata-Version: 1.0
Name: protobuf
Version: 2.6.1
Summary: Protocol Buffers
Home-page: https://developers.google.com/protocol-buffers/
Author: protobuf@googlegroups.com
Author-email: protobuf@googlegroups.com
License: New BSD License
Location: /usr/lib/python2.7/dist-packages
Requires:
Classifiers:

 

(Step.2)Qt5のインストール

Qtはapt-getからでもインストール出来ますが、Ubuntu16.04環境では地図スタイルの生成ツールに必要なQtのモジュールが入っておらずビルドエラーが発生します。そのためQt公式サイトからダウンロードしてインストールしました。Ubuntu 18.04で構築する場合はapt-getでいけるかもしれませんので、この項はひとまず飛ばしください。もしQt関連のビルドエラーが出た場合にはあらためてこの項のようにQt5をインストールすればよいと思います。

まず、Qt公式サイトからOpenSource版をダウンロードします。実行するとインストーラが起動するので指示に従ってください。


$ chmod +x qt-unified-linux-x64-3.0.4-online.run
$ sudo ./qt-unified-linux-x64-3.0.4-online.run

  • インストール先:/opt/Qt
Qtインストーラ

インストーラの指示に従ってQtをインストールします。ここでは5.10.1を選びましたが5.9(LTS)の方がいいかもしれません。

次にqtchooserにインストールしたパスを設定します。


$ cd /usr/lib/x86_64-linux-gnu/qtchooser
$ sudo ln -s /opt/Qt/qt5.10.1.conf .

$ qtchooser -l
4
5
default
qt4-x86_64-linux-gnu
qt4
qt5-x86_64-linux-gnu
qt5.10.1
qt5

$ qtchooser -print-envQT_SELECT="qt5.10.1"
QTTOOLDIR="/opt/Qt/5.10.1/gcc_64/bin"
QTLIBDIR="/opt/Qt/5.10.1/gcc_64/lib"

環境変数を設定します。これは地図生成ツールのビルドに必要でした。


$ export QT_SELECT=qt5.10.1
$ export QT_PATH=/opt/Qt
$ export PATH=$PATH:$QT_PATH/5.10.1/gcc_64/bin
$ export LD_LIBRARY_PATH=$QT_PATH/5.10.1/gcc_64/lib

$ qmake -query QT_VERSION
5.10.1

 

(Step.3)maps.meプロジェクトを取得

地図作成ツールを含むmaps.meプロジェクトをgithubから取得します。


$ mkdir -p git/mapsme
$ cd git/mapsme

$ git clone https://github.com/mapsme/omim.git

$ cd omim
$ git submodule init
$ git submodule update

普通は最新のソースコードで問題ないと思いますが、もし古いバージョンのmaps.me向けに地図を作りたい場合はそのバージョン時点の地図生成ツールが必要です。
基本的にmaps.meはアプリケーション本体のバージョンに適合した地図フォーマットでないと読み込めません(アプリのアップデート配信直後に地図アップデート通知が来るのはこのため)。無理に読み込もうとするとアプリケーションが例外を投げて落ちます。


#例えば"release-64"ブランチを取得する場合
$ git checkout release-64
$ git submodule init
$ git submodule update

 

(Step.4)地図生成ツールのビルド

取得したプロジェクトをビルドします。ビルドした内容は以下のパスに格納されますが、地図生成にはスクリプトが用意されているのでビルドしたプログラム(generator_tool等)を直接操作することは無いと思います。

  • git/mapsme/omim/omim-release-build/

$ cd git/mapsme/omim
$ echo | ./configure.sh
$ tools/unix/build_omim.sh -r

 

カスタム地図の作成

地図作成に使用するスクリプトについて

Maps.meプロジェクトには、必要な手順を一括で実行してくれるスクリプトが以下のディレクトリに用意されています。

  • omim/tools/unix

このなかで使うのは次の3つかと思います。

  • build_omim.sh : プロジェクトのビルド用スクリプト。プロジェクトをcheckoutしたらまずはコレを実行します。
  • generate_planet.sh : Maps.me用地図(*.mwm)作成スクリプト。パラメータを与えれば最初から最後まで自動でやってくれます。
  • generate_symbols.sh : 地図スタイル作成スクリプト。地図の見た目をカスタマイズしたり新しい要素(等高線など)を地図に追加する場合に使います。

スクリプトの詳細については以下のドキュメントが参考になります。

 

“generate_planet.sh”の使い方

地図を自作するにあたって必要な処理は”generate_planet.sh”がほとんどやってくれます。やることはオプションと環境変数でパラメータを渡すことだけです。詳しい使い方はパラメータを与えずにスクリプトを実行すると表示される使い方を参照してください(バージョンによってはオプションスイッチが若干違います)。


#現時点(2018/04/28)のバージョンです
$ omim/tools/unix/generate_planet.sh

Usage: ./generate_planet.sh [-c] [-u] [-l] [-w] [-r]

-u Update planet until coastline is not broken
-U Download planet when it is missing
-l Generate coastlines
-w Generate a world file
-r Generate routing files
-o Generate online routing files
-a Equivalent to -ulwr
-p Generate only countries, no world and no routing
-c Clean last pass results if there was an error, and start anew
-v Print all commands executed
-h This help message

If there is unfinished job, continues it, ignoring all arguments (use -p if in doubt).
Use -c to clean temporary data and build everything from scratch.

Useful environment variables:

PLANET Planet file to use
TARGET Where to put resulting files
REGIONS Newline-separated list of border polygons to use. Example usage:
REGIONS=$(ls ../../data/A*.poly) ./generate_planet.sh
NS Node storage; use "map" when you have less than 64 GB of memory
ASYNC_PBF Generate PBF files asynchronously, not in a separate step
MODE A mode to start with: coast, inter, routing, test, etc.
MAIL E-mail address to send notifications
OSRM_URL URL of the osrm server to build world roads.
SRTM_PATH Path to 27k zip files with SRTM data.
OLD_INTDIR Path to an intermediate_data directory with older files.

よく使うであろう環境変数は次の通りです。

 
環境変数 説明
PLANET OSM地図へのパス。指定された地図が無い場合はOSMから自動ダウンロードされます。 PLANET=~/planet-latest.o5m
TARGET mwmファイルの出力先。中間生成物もここにおかれます。 TARGET=~/target
REGIONS polyファイルのパス。ここで指定したpolyファイル毎にmwmファイルが出力されます(omim/data/boardersに世界中のpolyファイルがあります)。 東京都の地図だけ出力したい場合

REGIONS=~/git/omim/data/borders/Japan_Kanto_Tokyo.poly

NS 処理中にノードキャッシュを何処に保持するかを指定します。指定出来るのは以下3種類です。

  • mem : 全てメモリに保持(普通のPC環境だとまずメモリ不足で落ちます)
  • map : キーのみメモリに保持(デフォルト値。日本だけでメモリ10GByteくらい欲しいです)
  • raw : 全てファイルに保持(メモリ消費量が断トツで少なくてすみますが、HDDゆえ遅いのと数十GByte以上の巨大なキャッシュファイルが生成されます。地図に等高線を追加してノード数が激増するとコレ一択になります)
NS=raw
SRTM_PATH SRTM1(NASA EARTHDATAが公開しているデジタル標高モデル)が格納されているパスを指定します。

必須ではないですが、このオプションを指定しておくと道路のノードに標高が追加され、Maps.meで徒歩/自転車のルーティングをした時にルートの高低差が表示されるようになります。

SRTM_PATH=./hgt/

(最後の”/”まで入力しないとエラーになります)

環境変数をいちいち指定するのが面倒な場合は以下のようなスクリプトを作っておくと便利です。


#!/bin/bash
SCRIPT_PATH="$(dirname "$0")"
export REGIONS="$(ls $SCRIPT_PATH/../../data/borders/Japan*.poly)"
export PLANET="/media/kiri/data/pbf/planet-latest.o5m"
export COASTS="/media/kiri/data/pbf/WorldCoasts.geom"
export TARGET="${TARGET:-$SCRIPT_PATH/target}"
export SRTM_PATH="/media/kiri/data/SRTM/"
export NS=raw
#export NS=map
#export NS=mem
bash "$SCRIPT_PATH/generate_planet.sh" $@

このファイルを”omim/tools/unix”に配置して以下のように実行します。TARGETが未指定の場合はスクリプトのあるディレクトリにtargetが作成されます。


$ omim/tools/unix/test.sh -l

 

“generate_styles.sh”の使い方

Maps.meアプリで各要素(道、川、POI、etc…)をどのように描画するか指定するスタイルファイルを生成します。前項のgenerate_planet.shがスタイルを参照するので先に実行する必要がありますが、特にスタイルを変更しないのであれば不要です。

スクリプトに引数はなく単純に実行するだけで処理が進みます。また、初回実行時のみツール(skin_generator_tool)のビルドが行われます。


$ omim/tools/unix/generate_styles.sh

スタイルはMapCSSで記述されています。以下のディレクトリに定義があるので、スタイルを変更する場合はこちらを編集してからスクリプトを実行します。他に”styles/vehicle”以下にもスタイル定義がありますが、こちらは現時点(2018/4/28)では使用されていないようです。

  • omim/data/styles/clear/style-clear (通常スタイル)
  • omim/data/styles/clear/style-night(夜間表示スタイル)

MapCSSについては以下のドキュメントが参考になります。

このスクリプトを実行すると”omim/data”以下にファイルが生成されます。表示スタイルに関係するファイル/ディレクトリとして以下のものがあります。スタイルを変更した場合、これらをMaps.meのstylesディレクトリ(無い場合は作成する)に転送すると反映されます。

  • omim/data/resources-*-clear/
  • omim/data/resources-*-dark/
  • omim/data/drules_proto_clear.bin
  • omim/data/drules_proto_dark.bin

地図に新しい要素を追加した場合は以下のファイルも更新されます。こちらは重要で、必ず地図と対応したファイルを読み込ませる必要があります。Android端末では少し面倒でOBBファイルを作成して読み込ませるか、apkをばらして置き換えるかします。iOSは実際に試せていませんが、ソースコードを見た感じだとテキストファイルをそのままMaps.meのディレクトリに配置すれば読み込むようです。この辺りは別記事で詳しく書きたいと思います。

  • omim/data/classificator.txt
  • omim/data/types.txt
  • omim/data/colors.txt

 

全世界の地図を生成する場合

maps.meプロジェクトに用意されているスクリプトを実行すると、地図データのダウンロードからmaps.me用地図ファイル(*.mwm)生成まで一括して行ってくれます。ただ、相当な時間(メモリ/HDD容量も)を必要とします。私の環境では実行したもののいつまで経っても終わる気配が無いので断念しました。


$ cd git/omim/tools/unix/
$ ./generate_planet.sh -a

 

地域を絞って生成する場合

ここでは日本に絞って地図を生成します。地図のカスタマイズで試行錯誤する場合はさらに絞ってどこかの都道府県のみにすると時間短縮出来ます。

“WorldCoasts.geom”の生成

まず海岸線データ”WorldCoasts.geom”を生成します。これにはOSMのデータが世界丸ごと(約60GByte)で、初回実行時にはダウンロードに時間がかかります。OSM地図はパラメータを指定しなければユーザディレクトリ(~/)にダウンロードされます。


$ NS=raw TARGET=/media/kiri/data/target omim/tools/unix/generate_planet.sh -Ul

[2018/04/28 15:12:20]: STATUS Start
Using tool: /media/kiri/data/git/suke-blog/omim/../omim-build-release/generator_tool
[2018/04/28 15:12:35]: STATUS Step 2: Creating and processing new coastline in ./target/intermediate_data/coasts/coastlines-latest.o5m
LOG TID(1) INFO 425.514 generator/osm_source.cpp:470 Finish() Generating coastline polygons
[2018/04/28 23:07:03]: WARNING: OSRM_URL variable is not set. World roads will not be calculated.
[2018/04/28 23:07:03]: STATUS Step 3: Generating intermediate data for all MWMs
[2018/04/29 01:20:26]: STATUS Step 4: Generating features of everything into ./target
...

コンソールの進行状況を見て、”Step 4″まで進んでいれば”target/intermediate_data/”に”WorldCoats.geom”が出来ているはずです。確認してファイルが存在していればスクリプトを中断してかまいません。このファイルは後ほど使用するので何処か別な場所に退避させておきます。


$ ll target/intermediate_data/*.geom
-rw-rw-r-- 1 kiri kiri 155915741 Apr 28 23:07 target/intermediate_data/WorldCoasts.geom

# backup WorldCoasts.geom
$ cp target/intermediate_data/WorldCoasts.geom /media/kiri/data/pbf

ちなみに、”Step 4″の途中で止めた場合でディスク消費量は約81GByteでした。”WorldCoasts.geom”を退避させたらtarget以下は削除して問題ありません。


$ du -bhc ./target
4.0K ./target/intermediate_data/coasts/tmp
2.2G ./target/intermediate_data/coasts
564K ./target/intermediate_data/tmp
81G ./target/intermediate_data
27K ./target/logs
335K ./target/borders
81G ./target
81G total

 

世界地図から必要な地域を切り出す

OSMの地図データ”planet-latest.o5m”から必要となる部分だけを切り出します。こうすると処理時間を大幅に短縮することが出来ます。ここでは日本に絞って切り出したいと思います。次のようにコマンドを実行してください。


$ osmconvert planet-latest.o5m -B=japan.poly -o=japan.o5m

ここで指定している”japan.poly”は以下のサイトのものを使用しました。日本全体を切り出す場合にはこれを使うのが一番簡単だと思います。
あるいは、Geofabricのサイトから切り出し済みの日本地図データ(japan-latest.pbf)を取得するのもありです。

もっと細かい単位で切り出したい場合は、maps.meプロジェクトに都道府県毎のpolyファイルがあるのでそれを使うとよいと思います(ファイル名に半角スペースが含まれているのでご注意)。


$ ls omim/data/borders/Japan*.poly
Japan_Chubu Region_Aichi_Nagoya.poly Japan_Kanto_Tokyo.poly
Japan_Chubu Region_Aichi_Toyohashi.poly Japan_Kinki Region_Mie.poly
Japan_Chubu Region_Fukui.poly Japan_Kinki Region_Nara.poly
Japan_Chubu Region_Gifu.poly Japan_Kinki Region_Osaka_Osaka.poly
Japan_Chubu Region_Ishikawa.poly Japan_Kinki Region_Osaka_West.poly
Japan_Chubu Region_Nagano.poly Japan_Kinki Region_Wakayama.poly
Japan_Chubu Region_Niigata.poly Japan_Kyushu Region_Fukuoka.poly
Japan_Chubu Region_Shizuoka.poly Japan_Kyushu Region_Kagoshima.poly
Japan_Chubu Region_Toyama.poly Japan_Kyushu Region_Kumamoto.poly
Japan_Chubu Region_Yamanashi.poly Japan_Kyushu Region_Miyazaki.poly
Japan_Chugoku Region_Hiroshima.poly Japan_Kyushu Region_Nagasaki.poly
Japan_Chugoku Region_Okayama.poly Japan_Kyushu Region_Oita.poly
Japan_Chugoku Region_Shimane.poly Japan_Kyushu Region_Okinawa.poly
Japan_Chugoku Region_Tottori.poly Japan_Kyushu Region_Saga.poly
Japan_Chugoku Region_Yamaguchi.poly Japan_Shikoku Region_Ehime.poly
Japan_Hokkaido Region_East.poly Japan_Shikoku Region_Kagawa.poly
Japan_Hokkaido Region_North.poly Japan_Shikoku Region_Kochi.poly
Japan_Hokkaido Region_Sapporo.poly Japan_Shikoku Region_Kyoto.poly
Japan_Hokkaido Region_West.poly Japan_Shikoku Region_Tokushima.poly
Japan_Kanto_Chiba.poly Japan_Tohoku_Akita.poly
Japan_Kanto_Gunma.poly Japan_Tohoku_Aomori.poly
Japan_Kanto_Ibaraki.poly Japan_Tohoku_Fukushima.poly
Japan_Kanto_Kanagawa.poly Japan_Tohoku_Iwate.poly
Japan_Kanto_Saitama.poly Japan_Tohoku_Miyagi.poly
Japan_Kanto_Tochigi.poly Japan_Tohoku_Yamagata.poly

 

(option)SRTM_PATHを指定する場合

SRTM_PATHを指定するとルート上のざっくりとした高低差が表示されるようになります。車では関係ありませんが、山歩きや自転車ツーリングの際には便利です。

まずSRTM1のデータが手元に無い方は入手してください。ブラウザからでもダウンロード出来ますがphyghtmapを使って一括ダウンロードするのが簡単かと思います。phyghtmapは最新のバージョンを使用してください(2018/05/08時点で2.10が最新)。古いバージョンだとSRTMのダウンロードURLが変更になっていたりでうまく動きません。また、SRTMのダウンロードには”NASA Earthdata”のユーザ登録が必要です。

以下のようにしてSRTM1のデータをダウンロードします。今回は”–polygon”オプションでダウンロード範囲を日本に絞りました(無指定だと世界中のデータがダウンロードされます)。EARTHDATAのログインID(YOUR_USER_ID)とパスワード(YOUR_PASSWORD)は各自のものに置き換えてください。


$ mkdir SRTM
$ cd ./SRTM
$ phyghtmap --srtm=1 --download-only --polygon=japan.poly --earthexplorer-user=YOUR_USER_ID --earthexplorer-password=YOUR_PASSWORD

次にダウンロードしたデータ(*.hgt)をzip圧縮します。二度手間ですが、こうしておかないとMaps.meのツールが読み込んでくれません。


$ cd ./hgt

# zip圧縮
$ find ./ -name \*.hgt -exec zip ./{}.zip {} \;

# 拡張子を変更
$ rename "s/hgt.zip/SRTMGL1.hgt.zip/;" *.hgt.zip

 

map.me地図ファイル(*.mwm)生成

以下のようにスクリプトを実行します。環境変数で切り出した地図や海岸線のデータを指定しているので作業環境に応じて変更してください。mwmファイルはREGIONSに指定したpolyファイル毎に作成されます。


# generate_planetを直接実行する
$ SRTM_PATH=./hgt/ TARGET=/media/kiri/data/target REGIONS=(ls /media/kiri/data/git/mapsme/omim/data/borders/Japan*.poly) COASTS=/meida/kiri/data/pbf/WorldCoasts.geom PLANET=/media/kiri/data/pbf/japan.o5m NS=raw omim/tools/unix/generate_planet.sh -r

# あるいはテストスクリプトの環境変数を変更して実行する
$ omim/tools/unix/test.sh -r

この処理はそこそこ長丁場になります。私の環境では一晩といったところでしょうか。メモリが潤沢にある環境(10GByteくらい?)であれば、環境変数NS=mapとすることで作業時間が短縮出来ると思います。メモリが少ないとスワップが大量発生して逆に遅くなるのでNS=rawとした方が速くなります。

また、地域を日本に絞ると最後のテストでエラーが発生しますがこれで正常です(テストプログラムが国外の道路を指定していて、当然ながらそこが無くのでエラーとなる)。

maps.me地図の自作

OSM地図に含まれるノード数が多いほどメモリを食います。等高線を付与してNS=mapとするとこんな感じに・・・こうなるとNS=rawの方が断然早いです。

maps.me地図の自作

NS=rawで実行するとほとんどメモリを消費しません。代わりに巨大なキャッシュファイルが出来ますのでドライブの空き容量にご注意。

 

スマートフォン上で表示を確認する

地図(*.mwm)が出来たら、そのファイルをスマートフォンに転送して既存の地図ファイルを上書きしてやります。必要であればスタイルファイル等も置き換えます。
地図の格納先はmaps.meの”設定”->”地図の保存先”を確認してください。

maps.meの地図の保存先

何処に地図があるかはmapsmeの設定から確認できます。

mapsmeの地図

直接USB接続するかSDカードリーダを使って地図を置き換えます。

mapsmeの自作地図

ようやく完成した地図を確認中。表示スタイルをいじったので道路番号が黒塗りになっています。

所感

Garmin用地図に続いてMaps.me用地図自作に挑戦です。今回の記事では現時点(2018/04)での最新版アプリに対応した地図データが出来上がりました。ここからどんな地図を作るかというと、取り合えず以下のふたつをやってみたいと考えています。

  • iPhone4で動く古いバージョンのMaps.me向け地図
  • 山登りで使えそうな等高線付き地図

今回のネタは、我が家で眠っているiPhone4をスーパーカブ専用GPSナビにしようと目論んだのが始まりです。実はMaps.meならいつでも最新地図が入手できると思い込んでいたのですが、なんと本体バージョンに依存することが発覚。どおりでiPhone4(アプリのバージョンが古い)で見ると地図が古いままなわけです。ならば自作しかない、となったわけです。

正直なところマイナーなネタだとは思いますが、もし興味がありましたら次回以降に紹介する等高線付き地図の自作記事もお付き合い頂ければと思います(試行錯誤でしたが等高線付き地図については目星がつきました)。それでは。

 

 

参考

この記事は以下の内容を参考にさせて頂きました。

 

コメントを残す

メールアドレスが公開されることはありません。

This blog is kept spam free by WP-SpamFree.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください