Labo288

プログラミングのこと、GISのこと、パソコンのこと、趣味のこと

GIS

OpenLayersでバイナリベクトルタイルをstyle.jsonでスタイリング表示する

OpenLayersで地理院タイルをスタイリングしつつ表示する例 はじめに OpenLayersは基本機能だけでバイナリベクトルタイルをソースとしたレイヤーを表示する事が出来ます。 qiita.com でも基本機能ではMapbox Style形式のいわゆるstyle.jsonを読み込む事は出来…

Mapbox GL JS用のラッパーライブラリを作ってみた話

はじめに ベクタータイルやWebGLによる高速描画など、WebGISで今最もアツいのはMapbox GL JSに違いありませんが、私はLeaflet.jsが好きです。 なぜならAPIが非常にシンプルだからです。例えばGeoJSONレイヤーを追加したければ、Leaflet.jsでは以下のように書…

QGISで地図PDFを簡単に出力するプラグイン「EZPrinter」をつくりました

はじめに QGISの基本機能としてのPDF出力は、範囲や縮尺の指定が微妙に使いにくいです。 レイアウト機能を使って少し手間をかければ、かなり綺麗な地図も作成出来ますが、QGISで表示している地図をサクッと紙などに出力したい時のためにプラグインを作りまし…

北海道内15箇所にポケモンマンホールが設置されるので最適経路を計算してみた

この記事はFOSS4G Advent Calendar 2019の12月8日の記事です。 昨日の記事は、chomyさんのGDALでGCOM-Cの可視領域のデータからTrue Colorイメージを再構成してみたでした。 FOSS4G Advent Calendar、毎日楽しませて頂いております。 参加表明した時点ではMap…

基盤地図情報の水域や道路界等のXMLデータをひとつのベクターデータにする手順

はじめに fgd.gsi.go.jp 国土地理院は、日本の国土に関する様々なベクターデータをオープンデータとして提供しています。 当然、オープンデータとはいえ出典の明記等の制約はありますが、それなりに自由に使えます。 ところが、提供されているファイル形式が…

iOS向けGeoJSONビューア「Vanilla GIS for iOS」リリース。使い方など

はじめに 大体1ヶ月間くらいかけて、タイトルのとおり「Vanilla GIS for iOS」を開発しリリースしました。 Vanilla GIS for iOSとは コンセプト Vanilla GISという名前は、以前に作ったWebアプリと同じ名前です。そのコンセプトは「シンプルでユーザーがカ…

Mapbox for iOSで自作のスタイルを設定する(好きな背景図を表示する)

はじめに 地図系のフレームワークで有名で、最近ではゼンリンとの提携がニュースになったりしたMapboxはiOS向けにもフレームワークを提供しています。 www.mapbox.com Mapbox for iOSの導入 ただ地図を表示するだけなら、チュートリアルのとおりとてもシンプ…

MapboxにGeoJsonファイルをドラッグドロップで読み込むサンプル

はじめに www.labo288.site 以前紹介したLeafletによるWebGISでは、GeoJSONファイルとシェープファイル(zip圧縮されたもの)の読み込みに対応していました。 ドラッグドロップすると、POSTリクエストが飛び、(シェープファイルなら変換されて)GeoJSON形式…

静的なGeoJSONファイルを読み込んでLeafletにレイヤーを追加する

概要 GeoJSONファイルとは、以下のとおり、ある程度データの構造が予め規定されたJSON形式のファイルです。 { "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": {"type": "Point", "coordinates": [102.0, 0.5]}, "properties"…

QGIS3.x系向けプラグイン作成手順や各種処理の実装方法について

はじめに オープンソースGISソフトウェア、いわゆるFOSS4Gの定番ソフト「QGIS」でプラグイン(拡張機能)を作成しました。QGISの最新バージョンは3.8で、3.x系はPython3を採用するなど後方互換性が一部失われ、2.x系のコードは動きません。ウェブ上にはプラ…

QGIS3.x系向けプラグイン「MagicWand」を作成しました

はじめに わたしは仕事柄GISで農地を見る機会が多く、オルソ画像からほ場のポリゴンを作ったりする事もあります。基本的にポリゴンの頂点をマウスのクリックでカチカチして作ります、めんどくさいです。 たとえばグラフィック系のソフトでよくある「自動選択…

シンプルなWebGIS「VanillaGIS」の紹介

はじめに オープンソースのGISにはQGISというド定番・大正義が存在しますが、インストールの手間、投影法など、若干敷居が高くなっています。ウェブ上で公開されている多数のGISデータ(国土数値情報等)の内容をすぐに確認出来る、シンプルなWebGISがあれば…

DBFファイルを変換するスクリプトを書き直した(Python3.x対応)

はじめに www.labo288.site 以前にも、DBFファイルを変換するスクリプトについての記事を掲載していました。 しかしながそこで利用していたライブラリがPython2.x系でのみ動作する枯れて管理されていないものだったため、今回、よりポピュラーなpyshp(shape…

Leafletのパフォーマンス改善について

はじめに Leafletは実装が簡単でカスタマイズ性も高く、非常に使いやすいWeb地図ライブラリですが、デフォルトの設定だと、多数の地物で構成されるベクターレイヤーの描画に、パフォーマンス上の問題がありました。要はポリゴンが多くなると途端に動作が重く…

Leaflet.jsでオーバーレイを追加する

はじめに 路線バスのShapefile(zip圧縮)を読み込んで表示する動画 なおGeoJSONエクスポート機能も実装済み 保存機能も実装はしているもののまだまだ完成は遠い それなりに大きいデータでもそこそこの速度で動作しているのがうれしい #GIS #Leaflet pic.twitt…

LeafletでGeoJsonを読み込む

はじめに オープンソースのWeb地図なら、Leafletが使いやすくてよいです。たとえばOpenStreetMapのタイル地図を実装する場合、以下のとおりです。 //地図を表示するdiv要素のidを設定 var map = L.map('map_container'); //地図の中心とズームレベルを指定 m…

ShapeファイルをGeoJSON形式に変換する

前提 zip圧縮されたシェープファイル群(.shp, .shx, .dbf)を、GeoJson形式で出力する関数です。 当然、シェープファイル群のファイル名が共通している必要があります。 また、.geojsonファイルを出力するのではなく、メモリ上での処理です。 事前にpyshp(s…

DBFとCSVの相互変換ツールをWebアプリとして公開しました

更新5/15 エクセルファイル(.xls,.xlsx)のDBFへの変換に対応 ※現状、日本語が含まれていると正常に動作しません はじめに 結構前に、シェープファイルのプロパティであるDBFファイルとCSVファイルを相互に変換するPythonスクリプトを紹介しました。 www.la…

iPhoneのGISはこれで決まり!「Map Plus」

はじめに www.labo288.site 以前に上記の記事で、iPhoneでGISを使いたいならiGIS!と紹介しました。 しかしながらiGISには致命的な弱点が存在していて、日本語で書かれたプロパティが文字化けしてしまいます。 数値は読めるので使えない事はないですが、文字…

データ可視化特化GISフレームワーク「deck.gl」を使ってみた

はじめに 先進的なタクシー事業で有名なかのUber社によるオープンソースフレームワーク「deck.gl」を使ってみたので紹介を兼ねた感想の記事になります。このフレームワークはデータビジュアライゼーションに特化したGISフレームワークとなっております。WebG…

iPhone、iPadで無料で使えるGISアプリ「iGIS」

2019/10/28告知 iPhoneで使える簡易GISを作りました。 GeoJsonの読み込みに対応しています。 www.labo288.site はじめに GISを使う必要のある職場であるならば、おそらく現地踏査等の業務があるかと思います。事務所にはGISを搭載したパソコンがあるけれども…

シェープファイルの.dbfファイルと.csvファイルを相互変換する

2019/7/2Python3.x系対応版を公開しました www.labo288.site 2019/5/2ウェブアプリ版を公開しました www.labo288.site はじめに 一般にシェープファイルとはいわゆるベクター図形データと理解されていると思いますが、図形にはプロパティと呼ばれるデータが…