OruxMapsでGoogle Map Hybridを使う
Google Map Hybridを使う方法。
/mnt/sdcard/oruxmaps/mapfiles/onlinemapsources.xml
に以下の分を追加する。
<onlinemapsource uid="1"> <name>Google Maps Hybrid</name> <url><![CDATA[http://mt{$s}.google.com/vt/lyrs=y&hl=ja&x={$x}&y={$y}&z={$z}]]></url> <minzoom>0</minzoom> <maxzoom>19</maxzoom> <projection>MERCATORESFERICA</projection> <servers>0,1,2,3</servers> <httpparam name=""></httpparam> <cacheable>1</cacheable> <downloadable>1</downloadable> <maxtilesday>0</maxtilesday> <maxthreads>0</maxthreads> <xop></xop> <yop></yop> <zop></zop> <qop></qop> </onlinemapsource>
OruxMapsでGoogle Earthを使う
OruxMapsでgoogle mapを使う - tattii's blogの第2弾。
OruxMapsでGoogle Earthを表示する方法。
/mnt/sdcard/oruxmaps/mapfiles/onlinemapsources.xml
に以下の分を追加する。
<onlinemapsource uid="2"> <name>Google Earth</name> <url><![CDATA[http://khms0.google.com/kh/v=149&src=app&x={$x}&y={$y}&z={$z}]]></url> <minzoom>0</minzoom> <maxzoom>18</maxzoom> <projection>MERCATORESFERICA</projection> <servers>0,1,2,3</servers> <httpparam name=""></httpparam> <cacheable>1</cacheable> <downloadable>1</downloadable> <maxtilesday>0</maxtilesday> <maxthreads>0</maxthreads> <xop></xop> <yop></yop> <zop></zop> <qop></qop> <sop></sop> </onlinemapsource>
Android端末内のファイルを編集するには、AirDroidを使って一度パソコンにファイルをダウンロードして、編集したファイルを同じ場所にアップロードするのが簡単。
CentOSでPostgreSQLのデータベースの格納場所を変更する
CentOSにPostgreSQLをインストールしてデータベースの格納場所を変更するときにSELinuxではまったので、やったことのメモ。
環境
CentOS 6.4 PostgreSQL 9.3.4 SELinux Enforcing
データベース格納場所
デフォルト: /var/lib/pgsql 変更先: /home/pgsql
1. ディレクトリ作成
# mkdir /home/pgsql/data
2. 所有者、パーミッション変更
# chown -R postgres:postgres /home/pgsql # chmod -R 700 /home/pgsql
3. PostgreSQLの設定ファイル編集
# vim /etc/sysconfig/pgsql/postgres PGDATA=/home/pgsql/data PGLOG=/home/pgsql/data/pgstartup.log
4. データベース初期化
# su postgres -c "initdb -D /home/pgsql/data"
5. SELinuxのコンテキスト設定
PostgreSQLのデータベースには postgresql_db_t ラベルが必要。
# semanage fcontext -a -t postgresql_db_t "/home/pgsql(/.*)?" # restorecon -R /home/pgsql
6. SELinuxポリシー設定
postmaster(postgresqlの実行プロセス)が/homeにアクセスできるよう設定する。
(違う場所にデータベースを格納する場合も、/から格納場所までのすべてのディレクトリに以下のような設定が必要)
postmasterのドメインは postgresql_t
/homeのタイプは home_root_t
6.1. ポリシー・ソースファイル作成
適当な場所にpostgres_local.teを作成
# vim postgres_local.te module postgresql_local 1.0; require { type postgresql_t, home_root_t; class dir { search getattr }; } allow postgresql_t home_root_t:dir { search getattr };
6.2. モジュールのコンパイル、インストール
# checkmodule -M -m -o postgres_local.mod postgres_local.te # semodule_package -o postgres_local.pp -m postgres_local.mod # semodule -i postgres_local.pp
OruxMapsでGoogle Mapを使う
OruxMapsがめっちゃ高機能ですごい。
でも、そのままではgoogle mapを見れないので追加する方法を調べた。
/mnt/sdcard/oruxmaps/mapfiles/onlinemapsources.xml
というファイルを開いて、以下の分を追加するだけ。
<onlinemapsource uid="0"> <name>Google Maps</name> <url><![CDATA[http://mt{$s}.google.com/vt/lyrs=m@121&hl=ja&x={$x}&y={$y}&z={$z}]]></url> <minzoom>0</minzoom> <maxzoom>19</maxzoom> <projection>MERCATORESFERICA</projection> <servers>0,1,2,3</servers> <httpparam name=""></httpparam> <cacheable>1</cacheable> <downloadable>1</downloadable> <maxtilesday>0</maxtilesday> <maxthreads>0</maxthreads> <xop></xop> <yop></yop> <zop></zop> <qop></qop> </onlinemapsource>
これでオフラインの地図も保存できるようになる。
追記: Google Mapの他の地図を使う方法について
Google Earth (航空写真) - OruxMapsでGoogle Earthを使う - To The Sky!
Google Map Hybrid (航空写真+道路地図) - OruxMapsでGoogle Map Hybridを使う - To The Sky!
Hybridがおすすめ。
JavaScriptでsvgをpngに変換して保存する
1.svgをcanvasに描画。
GitHub - canvg/canvg: Javascript SVG parser and renderer on Canvas
canvg("canvas", "<svg>...</svg>" );
2.canvasをtoDataURL()で、Base64エンコードした文字列に変換。
toDataURL() メソッド - Canvasリファレンス - HTML5.JP
var png = document.getElementById("canvas").toDataURL();
3.pngとして保存。
いろいろ方法があるみたい。
chrome, firefoxではa要素にdownload属性をつけるとうまく1clickで保存できるので、無理やりリンクを生成してclickイベントを発生させている。
dot mapで使ったコード
$("#save-png").click(function(){ $("#map").hide(); $("#map-container").append( '<canvas id="canvas" width="' + width + 'px" height="' + height + 'px"></canvas>' ); canvg("canvas", $("#map").html() ); var png = $("#canvas")[0].toDataURL("image/png"); png = png.replace("image/png", "application/octet-stream"); $("#map-container").append( '<a id="png" type="application/octet-stream" href="" download="dotmap.png">saving...</a>' ); $("#png").attr("href", png); $("#png")[0].click(); $("#map").show(); $("#canvas").remove(); $("#png").remove(); });
dot mapをリリースしました。
ドットの日本地図に色塗りができるdot mapをリリースしました。
http://azuresky.fam.cx/d3/dotmap/
できること
- ドット日本地図に色塗り
- local strageに保存
- pngとしてダウンロード
例えば
今までに行ったことのある場所を地図に表してみると。
説明
すべてJavaScriptで動きます。
svgを扱うのが得意なd3.jsを使用して作成しました。