投稿

Windows 10 で CAPS LOCK を CTRL にする

イメージ
A キーの隣は CTRL であってほしいタイプです。 以前は xkeymacs の付属のツールでキー配置を変えたりしていたんですが、メンテされていないようなので、レジストリをいじって CAPS LOCK と CTRL を入れ替えます。 レジストリエディタを開く [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] を選択 [Scancode Map] という名前でバイナリ値を作成 以下の値を設定する

Windows で Node.js の開発環境を作る

ここからパクッてる。 http://tyru.hatenablog.com/entry/2017/03/13/162318 nodist のインストール Pyenv のようなもの。ちなみに Pyenv は好きじゃないので使ってない。 https://github.com/marcelklehr/nodist nodist をインストールできたら安定板の node.js をインストールする。 nodist + 8 nodist 8.11.1 windows-build-tools のインストール npm を使用するうえで c++ のコンパイラや python のランタイムがいるらしい。へぇ。 Administrator として起動した PowerShell で以下コマンドを実行。cmd でやってエラーをいただいた。 npm install --global --production windows-build-tools

Windows Subsystem for Linux の Ubuntu に GIS 環境を整備する

WSL (Windows Subsystem for Linux) 使ってますか? msys2 やら古くは cygwin やらいろいろ Unix ライクな環境を Windows 上に作ろうと苦労してきましたが、最近は WSL の Ubuntu で落ち着いております。 さて、基本はコマンドラインでのお仕事に使ってるわけですが、gdal ぐらいは使いたくなるわけなんですよ。その手順です。って Ubuntu なんで WSL 固有の操作なんてないんですけどね・・・。 $ sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable $ sudo apt update $ sudo apt install gdal-bin

Mac で GIS 環境を整える

python brew install python brew install python3 geos brew install geos proj brew install proj --with-vdatum gdal/ogr brew install gdal --with-libkml --with-postgreql --with-python3 --with-complete --with-opencl postgis brew install postgresql brew install postgis --with-protobuf-c gdal/ogr2 brew tap osgeo/osgeo4mac brew install gdal2 --with-postgresql --with-sfcgal --with-complete --with-libkml --with-opencl grass7 brew install grass7 --with-netcdf --with-postgresql qgis2 brew install qgis2 pip2 install psycopg2 matplotlib pyparsing requests future jinja2 pygments brew linkapps qgis2

GeoPackage で ポータブル OSM

イメージ
FOSS4G Advent Calendar 2016 14 日目の記事です! Advent Calendar でしか更新されないブログへようこそ。 NPO法人 オープンコンシェルジュ  とか OSGeo.JP  の松浦です。 みなさんは GIS データをどんな形式で保存していますか? 私のようなリッチメンは家計簿兼暖房用に購入した Oracle Exadata に Oracle Locator のSDO_Geometry と SDO_Georaster で管理していますが(真っ赤なウソ)、大抵の場合は Shapefile じゃないでしょうか。 Shapefile は米国Esri 社が開発した空間データを格納するフォーマットで、仕様が公開されていることもあり多くの GIS ソフトウェアで使用可能です。 ただ、ハードウェア、ソフトウェアの急速な進化に伴って、いろいろ不都合が生じてきました。 Shapefile の闇 1. なんかファイルいっぱい必要 「データ添付しました。ご査収ください。」っていうメールが来て確認したら、満を持して登場する【データ.shp】。「どうも、一人できました。てへっ」つって。 開けねーよ。ご査収できねぇよ。 なんて経験、ありますよね? Shapefile は最低でも .shp, .dbf, .shx という 3 つのファイルが必要です。 必須以外にも、.prj、.sbn、.shp.xml、.cpg などなどいろいろ構成員がいらっさいます。これら合わせて 1 つの Shapefile です。 2. なんか、もう文字コードがつらい 最近はソフトウェアが頑張るのでましですが、たいてい CP932 の Shapefile は一発目化ける。 3. 容量制限 今時 2 GB って・・・ まぁ 2 GB のベクターデータって結構でかいんですがね。 とはいっても、TB を超えるディスクが 1, 2 万で買える時代に 2 GB はきつい。 4. 属性名足りない、短いよ... 10 バイト まで (UTF-8 だと 3 文字とか・・・)。なので「都道府県」という属性名にしたくても「 都道府 」になってしまうという・・・ とまぁきりがないのですが、決して Shapefile を陥

QGIS GEOHEX Plugin

イメージ
NPO法人 オープンコンシェルジュ の松浦です。 この記事は  FOSS4G Advent Calendar 2015  の 12/11 の記事でっす。 みなさん GEOHEX ってご存知ですか? GEOHEX は @sa2da 氏が開発した世界地図を隙間なく敷き詰める六角形(ヘックス)です。 GeoHash やタイルスキーマの六角形版のようなものをイメージしてもらえればいいと思います。 こちら で @sa2da 氏作成のデモが見られます。 GEOHEX の詳しい仕様については 公式ページ をご参照ください。 で、本題に入りますが、GEOHEX は見た目もかっこいいし、便利に使えると思うので多くの人に使ってほしいのですが、簡単に GEOHEX を作成するようなツールがありません。 GEOHEX を扱うためのライブラリは多くの言語に対して実装されていますが、できることなら GUI でサクッと作りたいですよね。 というわけで QGIS の Plugin にしてみました。 2年前に Python 用のライブラリを書いていたのでそれを使用してやっつけで作りました。 (Python ライブラリもライセンスを定義しないまま放置していたので MIT ライセンスをこの機会に設定・・・) 使ってみよう QGIS にこの Plugin を入れると、下のように緑の六角形のアイコンが追加されます。アイコンがダサいのは許して。 これをぽちっと押すとダイアログが出て、GEOHEX のレベル(サイズ)と作成範囲の元となるレイヤを設定します。 レベルは 0 から数字が大きくなるにつれて GEOHEX のサイズは小さくなります。キャプチャの表示範囲でレベル 9 とか 10 にすると QGIS 様が沈黙しやがりますので注意してください。 作成範囲 (Set extent from:) はレイヤを選択するとそのレイヤを内包する最小の四角形の範囲と重なる GEOHEX がすべて生成されます。リストの最後の "Current Map Window" を選択すると表示されている範囲を六角形が埋め尽くします。やってみよう。 これでレベル 5 です。次にちょうど地図の中央に見えるポイントレイヤー(室蘭市公開のAED設置場所を示

PostgreSQL(PostGIS) でベクトルタイルを作る決意を固めたものの挫折しそう

イメージ
この記事は FOSS4G Advent Calendar 2014 の 12/13 (土) の記事です。 さて、ここ1年色々環境が変化したわけで、あまり FOSS4G 関連の場に出ていけてないそんな私ですが、今年は久しぶりに書きたいと思います。 ブログもうやってなかったんですが、このために作りました。来年また使うと思います。 ベクトルタイルです。ベクトルタイルですってよ。 新卒で某オレンジ色のWebで地図な会社に入って、退職するまでずっと地図画像作ったり、配信していたわけですが、ベクトルタイルに関してはちょっと距離を置いていたわけです。 数学的な素養がないとか、クライアントサイドでの描画を行なうための某フリーダムな言語およびデザイン等にあまり明るくないなど色々理由はあるわけですが。 普段タイルタイル言ってるだけではだめだなーって。そう思ったのでベクトルタイルを作ろうと思ったんです。SQLで(オカシイ)。 趣味でいじっている地理空間データはすべて PostgreSQL (PostGIS) に格納しているんですが、RDBMS 内でデータ管理からタイル生成、隙をみてタイル配信までできやしないかとふと思ったのでやってみたら挫折した記録をお届けしたいと思います。 特に PostgreSQL の JSON 関連機能が最近がんがん実装されてきたりしているので、色々夢が広がったんでしょうね、数時間前の私は。 ちなみに RDBMS は前職でも触ってたし、現職では RDBMS 担当なわけですが、どちらかというと DBA 的な部分の仕事が多くて実は SQL 力が低いです。 すごい頑張ったんですが、結果的にはタイルの境界線を発生させる関数しか現状できていません。以下です。 引数に zoom レベルをとります。RECORD 型で zoom レベルと LineString を返します。使い方はこんな感じ。 insert into tileline (zoom, geom) select zoom, geom from create_tileline(16) as (zoom integer, geom geometry); QGIS で表示するとこんな感じ。 zoom レベルにはそのラインが存在する最大レベルが入ります。この値によっ