QGISでOpenStreetMapデータをダウンロードする方法
Published

OpenStreetMapデータをQGISにダウンロードするには、QuickOSM pluginをインストールし、Vector > QuickOSM > QuickOSM…を開き、Quick queryタブでbuildingのようなキーを入力し、Canvas Extentを選んでRun queryをクリックします。国全体が必要なら、代わりにGeofabrikから.osm.pbfファイルをダウンロードしてQGISにドラッグします。
どちらを使うべきかは2つの要素で決まります。エリアの広さと、必要な対象のOpenStreetMapタグをすでに知っているかどうかです。以下のすべての方法を、2026年9月23日にケニアのKisumu中心部で、QGIS 3.44.7を使って実行し、それぞれ時間を計測しました。
手短な答え
| あなたのエリア | 方法 | Kisumuでの計測 |
|---|---|---|
| 町、または開いている表示範囲で、タグを知っている | 方法1:QuickOSM | 6.3 km²で4,560棟の建物を5秒 |
| タグが分からない、またはスタイル設定と保存を一度に済ませたい | 方法2:QGIS内のAI agent | 建物、主要道路、スタイル設定、GeoPackageまで3分41秒 |
| 地域または国全体 | 方法3:Geofabrikの抽出データ | ケニア(334 MB)のダウンロードに57秒、Kisumuの切り出しに6分28秒 |
| まず地図上で試したいクエリ | 方法4:Overpass TurboでGeoJSONをエクスポート | 画面上に417棟の建物を数秒で |
私の既定は、町以下のサイズならQuickOSM、地域になった時点でGeofabrikです。避けたいのは、国サイズのクエリをOverpassに送ることです。次のセクションでその理由を示します。
始める前に
OpenStreetMapはすべてをタグ、つまりキーと値のペアとして保存しています:building=yes、highway=primary、amenity=school。どのダウンロード方法もキー、値、またはその両方を尋ねてくるので、まずOSM wikiのMap featuresページでタグを調べておくと役立ちます。キーだけ(building)を指定すると、そのすべての値が返ります。
QuickOSM 2.5.3(pluginリポジトリの現行版、2026年9月23日時点)にはQGIS 3.34以降とインターネット接続が必要です。Geofabrikの方法では、国ごとに数百メガバイトのディスク容量を見込んでください。
ウェブでよくある間違い
「QGISのOpenStreetMap layerがデータそのものだ」 そうではありません。BrowserパネルのXYZ TilesにあるOpenStreetMapの項目は、データから描画された画像の集合です。その上で建物を選択したり、属性を読んだり、計測したりはできません。
タイル利用ポリシーは一行でこう述べています。「OpenStreetMap(OSM)のデータは誰でも自由に使えます。私たちのタイルサーバーはそうではありません。」またタイルの一括ダウンロードを禁じているので、ベースマップをディスクに保存するのも回避策にはなりません。
「Access blockedはOpenStreetMapにブロックされたという意味だ」 「Access blocked」というメッセージはデータではなく地図タイルに表示されます。ブロックされたタイルに関するOSM wikiのページには、最も一般的な例として「403r. Access blocked. Referer is required by tile usage policy of OpenStreetMap's volunteer-run servers」が挙げられています。
これは、ベースマップを表示しているアプリケーションがRefererまたはUser-Agentヘッダーを送らなかったことを意味します。以下で説明するデータサービスとは無関係で、そちらは別の形で失敗します。
「Overpassなら国全体を取得できる」 Overpass API wikiは、一般ユーザーに1日あたり10,000クエリ、1 GB未満に抑えるよう求め、広いエリアが必要な人にはGeofabrikの地域別ダンプを案内しています。ケニアの全建物をQuickOSMに要求した私のテストは、約32秒後にタイムアウトで失敗しました。これについては方法4で扱います。
方法1:QuickOSM、町または現在の表示範囲向け
QuickOSMはクエリをOverpassサーバーに送り、返ってきた答えをlayerとして読み込みます。エリアが画面に収まる場合は最速の方法です。
QuickOSMをインストール
Plugins > Manage and Install Pluginsを開き、QuickOSMを検索してInstall Pluginをクリックします。初回起動時には、OSMデータがODbLの下にあるという注意が表示され、「© OpenStreetMap contributors」のクレジットを求められます。エリアにズーム
canvas上で町や近隣を画面に収めます。私はKisumu中心部、約3 km×2 kmにズームしました。Quick queryタブを入力
Vector > QuickOSM > QuickOSM…を開き、Quick queryを選びます。キーにbuildingを入力し、値は空のままにし(「Query on all values」と表示されます)、extentをCanvas Extentに設定します。他のextentオプションはIn(地名)、Around、Layer Extent、Not Spatialです。クエリを実行
Run queryをクリックします。Kisumuでは5秒で2つのlayerとして返ってきました:58個の属性フィールドを持つ4,560個の建物ポリゴンと、ポイントとしてマッピングされた3棟の建物です。
Advancedセクションは見た目以上に重要です。timeoutは既定で25秒で、町には十分ですが地域には足りません。Directoryフィールドは既定で「Save to temporary file」なので、layerはメモリ上に配置され、Layersパネルではscratch-layerアイコンで示され、保存せずにQGISを閉じると消えます。

保持するには、layerを右クリックしてMake Permanent…を選び、GeoPackageのパスを指定します。Kisumuの建物は1.5 MBのファイルになりました。実行前にAdvancedでディレクトリを設定することもでき、QuickOSMはGeoPackage(既定)、GeoJSON、Shapefile、KMLを直接書き出します。

ここまでタグが乏しいとは予想していませんでした。Kisumuの4,560棟のうち4,453棟(98%)がbuilding=yesしか持っていません。「建物タイプ別」にスタイル設定すると、1色と107個の例外になるだけです。タグは地元のマッパーが付けた分だけの詳細さなので、タイプ別の地図を約束する前に値の件数を確認してください。
使うべきとき: エリアが町以下で、必要なキーが分かっているとき。
避けるべきとき: エリアが地域か国の場合、または複数のタグを組み合わせたクエリが必要でQuick queryフォームでは表現できない場合。
方法2:QGIS内のAI agentに一文で頼む
私たちはこうしたツールの1つ、AI Agentを作っています。QGIS内のチャットパネルで、開いているプロジェクト内で手順を実行します。このセクションは私たち自身のツールについてです。
タグを知らない読者や、取得・切り出し・スタイル設定・保存という一連の流れを一度に済ませたい読者に合っています。新しいプロジェクトで、同じKisumuの表示範囲にズームし、私はこう入力しました:
ケニアのKisumu中心部の建物と主要道路をOpenStreetMapから読み込んで、建物をフットプリント面積で色分けして、両方のlayerをGeoPackageに保存して。
3分41秒、39アクションで完了しました。Kisumuをジオコーディングし、6.2 km²の表示範囲でOpenStreetMapに建物と、motorwayからtertiaryまでのタグが付いた道路をクエリし、両方をその表示範囲に切り出し、UTMゾーン36Sでarea_m2フィールドを計算して面積が実際の平方メートルになるようにしました。その後、5クラスの段階スタイルを適用し、両方のlayerをプロジェクトの隣のKisumu central OSM.gpkgに書き込み、ファイル書き込み前に一度確認を求めました。

これらのlayerはGeoPackage内の通常のQGIS layerなので、QuickOSMのものと同様にプロジェクトの残りへそのまま持ち込めます。1つの表示範囲に1つのタグなら、QuickOSMの5秒が勝ります。agentは切り出し、面積フィールドの追加、スタイル設定、保存も行うため、数分かかります。
2つ目のメッセージは、他のどの方法も一度にはやらないことを示します。同じ表示範囲のOverture Mapsの建物を読み込み、OpenStreetMapが持っていないものを数えるよう頼みました。2分41秒で7,318棟のOverture建物を読み込み、IDで照合しました:4,572棟がOpenStreetMap由来、2,367棟がGoogle Open Buildings由来、379棟がMicrosoftの機械学習フットプリント由来です。
つまり、Kisumu中心部の純粋なOSMダウンロードが見逃す建物が2,746棟、全体の38%あります。

使うべきとき: エリアが町か開いている表示範囲で、データを読み込むだけでなく、スタイル設定・切り出し・比較までしたい場合。
避けるべきとき: 地域や国が必要な場合。これは町のスケールで機能し、広いエリアへのリクエストはより頻繁にタイムアウトし、そこではGeofabrikの抽出データの方が速い方法です。
方法3:Geofabrikの抽出データ、地域または国向け
Geofabrikは、大陸別、国別、一部の国では地域別に、無料のOpenStreetMap抽出データを公開しています。クエリは不要で、すべてのオブジェクトをすでに含むファイルをダウンロードします。
地域を選ぶ
自分の国を探します。2026年9月23日時点のケニアのページには、334 MBのkenya-latest.osm.pbf、939 MBのkenya-latest-free.shp.zip、965 MBのkenya-latest-free.gpkg.zipがありました。.pbfはここで57秒でダウンロードできました。.pbfをQGISにドラッグ
QGISは「Select Items to Add」ダイアログを開き、5つのlayerを表示します:points、lines、multilinestrings、multipolygons、other_relations。建物、土地利用、ほとんどのエリアはmultipolygonsに入っています。必要なものだけにフィルタ
layerを右クリックしてFilter…を選び、"building" IS NOT NULLと入力します。building、amenity、landuseなどの一般的なキーは独立したカラムになっています。それ以外はすべてother_tagsに入っています。エリアを切り出して保存
国全体は描画が遅いです。以下のコマンドで一度だけ自分のエリアを切り出し、そのファイルから作業します。
国のファイルをそのまま使って作業しないでください。QGISはズームに関係なく、描画やカウントのたびに.osm.pbfを最初から最後まで読み込みます。ケニアのファイルから直接Kisumuの表示範囲を描画したところ、初回は同じファイルを読む別のジョブもあってノートPCで19分かかり、2回目のパスでその表示範囲の建物をカウントするのに2分42秒かかりました。QGISに同梱されているGDALツール、ogr2ogrで一度だけ切り出します:
ogr2ogr -f GPKG kisumu.gpkg kenya-latest.osm.pbf multipolygons -spat 34.745 -0.1114 34.772 -0.0926 -where "building IS NOT NULL"
これには6分28秒かかり、4,576棟の建物を含む1.3 MBのGeoPackageが残りました。QGISはこれを他の小さなlayerと同様に扱えます。-spatの後の4つの数値は、度単位の西、南、東、北です。
shapefileとGeoPackageのzipは、テーマごとに1つのlayerが入っていて開くのが簡単ですが、形式の説明には無料版が省いているものが列挙されています。建物の高さや階数などです。.pbfはすべてのタグを保持します。
使うべきとき: エリアが地域か国の場合、または同じエリアを何度もクエリする場合。
避けるべきとき: 1つの近隣で1つのタグだけが必要な場合。6 km²のために334 MBをダウンロードするのは遅い方法です。
方法4:Overpass Turbo、まず結果を見たいクエリ向け
Overpass Turboは、Overpassクエリを書いて現在の地図表示範囲で実行し、何かをダウンロードする前に結果を確認できるウェブページです。QuickOSMのフォームでは表現できないクエリを組み立てる場所です。
以下の3行は、現在の地図表示範囲にあるすべての建物を要求します:
[out:json][timeout:25];
way["building"]({{bbox}});
out geom;
クエリを書く
左側のエディタに貼り付けるか、Wizardボタンで組み立てます。自分の表示範囲で実行
地図を自分のエリアにズームし、Runをクリックします。Kisumu中心部のズーム17の表示範囲では417棟の建物が描画されました。GeoJSONとしてエクスポート
Export、次にGeoJSON、downloadを選びます。同じダイアログでGPX、KML、生のOSMデータも選べます。.geojsonファイルをQGISにドラッグします。
ここがタイムアウトの出どころでもあります。QuickOSMとOverpass Turboは同じサーバーと通信するためです。Overpass QLのドキュメントによると、[timeout:]設定の既定は180秒、[maxsize:]はサーバーメモリ512 MBです。どちらかを超えたクエリは打ち切られます。QuickOSMは既定で25秒を送ります。ケニアの全建物を要求したとき、約32秒後の応答は次のとおりでした:
Overpass error: Query timed out in "area-query" at line 5 after 30 seconds.
公開サーバーはリクエストも制限します。この記事のために町を選ぶべく素早く連続で直接クエリしたところ、約20秒で5回目のリクエストが429 Too Many Requests、6回目が504 Gateway Timeoutで返ってきました。429に関するwikiの助言は、次のリクエストを送る前に30秒待つことです。[timeout:]を上げるのは、あと少しで間に合うクエリには役立ちます。国の場合、同じ答えを得るまでの待ち時間が長くなるだけです。
使うべきとき: カスタムクエリを書いていて、読み込む前に地図上で結果を確認したい場合。
避けるべきとき: エリアが広い場合、またはダウンロードを頻繁に繰り返す場合。方法3を使ってください。
公開するときはOpenStreetMapのクレジットを
OpenStreetMapデータはOpen Database Licenseの下にあります。著作権ページは、使用する場所どこでも2つのことを求めています:OpenStreetMapのクレジットと、データがODbLの下にあることを明示することです。後者はopenstreetmap.org/copyrightへのリンクで満たせます。帰属ガイドラインは「© OpenStreetMap contributors」を認めており、地図の隣、または読者がクレジットを期待する場所に置くことを求めています。
地図画像やPDFは創作物(produced work)であり、クレジットで十分です。データとして共有するlayer、たとえば修正した建物のGeoPackageは、ODbLの下にとどまります。同じページにはこうあります:「私たちのデータを改変したり、それを基に何かを作ったりした場合、その結果は同じライセンスの下でのみ配布できます。」QGISの印刷レイアウトでは、地図の隅にクレジットを入れたテキストアイテムが前者のケースを満たします。
覚えておきたいこと
- エリアで方法を選びます:町か現在の表示範囲ならQuickOSM(Kisumuの4,560棟で5秒)、切り出し・スタイル設定・保存を1つのメッセージで済ませたいならAI agent、地域か国ならGeofabrikの
.pbf、カスタムクエリのテストならOverpass Turbo。 - QGISのOpenStreetMapベースマップはデータから描画された画像であり、「Access blocked」はその画像に関するメッセージで、データに関するものではありません。
- QuickOSMの結果は、
Make Permanent…を使うかAdvancedでディレクトリを設定するまで一時layerです。 - Overpassクエリは広いエリアで失敗します:QuickOSMの既定タイムアウトは25秒、サーバーは429でリクエストを制限し、国はGeofabrikの抽出データの領分です。
- OpenStreetMapのカバレッジは不均一です:Kisumu中心部では、Overpassが4,572棟の建物を返した一方、GoogleとMicrosoftのフットプリントを加えたOvertureは7,318棟を保持していました。
よくある質問
自分の町のOSMの建物や道路を取得するには?
QGISで町にズームし、Vector > QuickOSM > QuickOSM…を開き、キーにbuilding(道路ならhighway)を入力し、Canvas Extentを設定してクエリを実行します。道路の場合はprimaryのような値を追加するか、空のままにして歩道を含むすべての道路クラスを取得します。結果はMake Permanent…で保存します。
QuickOSM、Geofabrik、Overpassのどれを使う?
タグが分かっている町以下ならQuickOSM。地域か国、または同じエリアを再利用するならGeofabrik。まず地図上でクエリを書いてテストしたいならOverpass Turbo。QuickOSMとOverpass Turboは同じOverpassサーバーを使うため、同じサイズ制限を共有します。
Overpassクエリがタイムアウトしたりaccess blockedと表示されるのはなぜ?
タイムアウトは、クエリが[timeout:](QuickOSMでは25秒、Overpassでは既定180秒)またはメモリ制限を超えたことを意味するので、エリアを狭めるかGeofabrikの抽出データに切り替えてください。429 Too Many Requestsは、短期間に送りすぎたという意味です。30秒待ってください。「Access blocked」はベースマップのタイルに表示されるもので、Overpassデータではありません。タイルサーバーのRefererとUser-Agentのルールによるものです。
QuickOSMが作成する一時layerを保存するには?
Layersパネルでlayerを右クリックし、Make Permanent…を選び、GeoPackageとファイルパスを指定します。次回この手順を省くには、クエリ実行前にQuickOSMのAdvancedセクションでDirectoryを設定すると、ファイルを直接書き出します。
地図を公開するとき、ODbLライセンスは何を求めますか?
地図の隣にOpenStreetMapのクレジット、たとえば「© OpenStreetMap contributors」を表示し、データがODbLの下にあることを明示します。通常はopenstreetmap.org/copyrightへのリンクを添えます。データそのものを、変更の有無にかかわらず共有する場合、それはODbLの下にとどまる必要があります。
OSMの建物カバレッジは完全ですか?
どこでも完全ではありません。2023年のNature Communicationsの研究では、OSM建物の平均完全性は世界の都市中心部で24%、ヨーロッパと中央アジアで71%、南アジアで9%と推定されています。Kisumu中心部では、Overtureが保持する建物の38%がOSMにありません。
件数を信用する前に他のソースと比較するか、QGISで建物フットプリントを検出するのように画像から欠けているものを検出してください。建物フットプリントとは何かではデータセット間の違いを扱っています。
データを読み込んだら、AI Agentガイドで1つのメッセージで他に何ができるかを示します。次のlayerがベクタではなく画像なら、QGISでSentinel-2をダウンロードするとスキャンした地図をジオレファレンスするが2つの姉妹チュートリアルで、ベースマップを追加するがこの記事の出発点となる画像layerを扱っています。
にダウンロードするには、QuickOSM pluginをインストールし、

