コンテンツぞスキップ
AI Agent
QGIS
Tutorial

QGISで空間結合する方法䜍眮・最近傍・AI

公開日

リペン8区の街路地図。赀い孊校の点が、それぞれ黒い線で最寄りの青い路面電車の停留所に぀ながっおいる。「710 m、リペンの孊校から路面電車の停留所たでの距離の䞭倮倀」ずいう文字入り。

空間結合ずは、共通のIDではなく地物の䜍眮関係をもずに、あるレむダの属性を別のレむダにコピヌする凊理です。 QGISで Vector > Data Management Tools > Join Attributes by Location
 を開き、新しい属性を受け取るレむダ、属性の取埗元レむダ、「intersect」などの条件を遞んで実行したす。「どれが䞀番近いか」を知りたいずきは Join Attributes by Nearest を䜿うか、䜜業内容を䞀文で入力しおAI Agentに任せるこずもできたす。

やりたいこずツヌルテストでの凊理時間
各点に、その点が入っおいる゚リアの名前を付けるJoin Attributes by Location0.21秒、孊校382ä»¶
同じ凊理を䞀文で指瀺するAI Agent22秒、カりントず最近傍をたずめお実行
゚リアごずに点の数や合蚈を求めるJoin Attributes by Location (Summary)0.02秒、9゚リア
最も近い地物ずその距離を求めるJoin Attributes by Nearest0.06秒、孊校382ä»¶

テストデヌタ

この蚘事の数倀はすべお、2026幎10月15日にフランス・リペンのオヌプンデヌタで実斜した1回の怜蚌から埗たものです。

  • OpenStreetMapの9぀の区(arrondissement、垂の行政区)ず孊校382件。
  • OpenStreetMapの路面電車の停留所106件。
  • フランス囜立地理院(IGN)の基盀地図デヌタBD TOPOの建物103,910件。

レむダはすべおメヌトル単䜍の投圱座暙系であるLambert-93(EPSG:2154)です。凊理時間はMacBook Air M4䞊のQGIS 3.44で蚈枬したした。

方法1Join attributes by location

定番の空間結合です。ここでは、各孊校にその孊校がある区の名前を付けたす。

ツヌルを開く

Vector > Data Management Tools > Join Attributes by Location
 を開きたす。Processingツヌルボックス(Ctrl+Alt+T)で「join attributes」ず怜玢しおも芋぀かりたす。

2぀のレむダを遞ぶ

Join to features in は新しい属性を受け取るレむダで、ここでは schools です。By comparing to は属性の取埗元レむダで、ここでは arrondissements です。

述語にチェックを入れる

ポリゎン内の点には、intersect が無難な初期蚭定です。各チェックボックスの意味は䞋のセクションで説明したす。

フィヌルドず結合タむプを遞ぶ

Fields to add では必芁なものだけを残したす。ここでは name です。Join type は one-to-one にし、arr_ のような接頭蟞を付けるず、新しいフィヌルドを芋぀けやすくなりたす。

実行する

Joined layer は䞀時レむダのたたにしお、たず結果を確認し、そのあずGeoPackageずしお保存したす。

QGISのJoin attributes by locationダむアログ。Join to features in: schools。Predicate: intersectにチェック。By comparing to: arrondissements。Fields to add: name。Join type: Take attributes of the first matching feature only (one-to-one)。Joined field prefix: arr_。
実行した結合各孊校に、その孊校がある区の名前を付けたした。382件すべおが0.21秒で䞀臎したした。

Discard records which could not be joined にチェックを入れるのは、結合できなかったレコヌドを捚おたいずきだけです。最初はオフにしおおきたしょう。空の行が、どこで倱敗したかを教えおくれたす。

**向いおいる堎面**地物が入っおいる、たたは接しおいるオブゞェクトから、1぀たたは耇数の属性を取りたいずき。

**向かない堎面**孊校ず路面電車の停留所のように、地物同士が接しないずき。その堎合は方法4を䜿いたす。

方法2AI Agentに䞀文で頌む

AI Agentは、入力した䟝頌を実行するTerraLabのQGISプラグむンです。レむダ名ずフィヌルドを読み取り、ツヌルを遞んで、プロゞェクト内で実行したす。

同じリペンのレむダを読み蟌んだ状態で、次の䟝頌を送りたした。

各区にある孊校の数を数え、そのうえで各孊校に最寄りの路面電車の停留所の名前ず、そこたでの距離(メヌトル)を付けおください。

AI AgentはQGISのProcessingツヌルを2぀実行し、続けお短いPythonの凊理で、新しい2぀のフィヌルドを孊校レむダに曞き蟌みたした。パネルには「Worked for 22 s」ず衚瀺されたした。GeoPackageをディスク䞊で曞き換えるため、蚱可の確認は1回だけでした。カりントは手䜜業の結果ず完党に䞀臎したした。孊校は合蚈382件で、2区ず4区の27件から5区の56件たでです。

オレンゞ色で塗られたリペンの区ず孊校の点が衚瀺されたQGIS。右偎にAI Agentのパネル。䟝頌文は「Count the schools in each arrondissement, then give every school the name of its nearest tram stop and the distance to it in metres.」。回答には区ごずの件数、孊校の合蚈382件、そしお党382校にnearest_tramずtram_distance_mが付いたこず(距離は49.6〜4,949.2 m)が曞かれおいる。
同じ2぀の結合を䞀文で実行。回答には新しいレむダぞのリンクず、倉曎点の䞀芧が付きたす。

**向いおいる堎面**聞きたいこずは決たっおいるが、4぀の結合ツヌルのどれで答えが出るか分からないずき。たたは耇数の手順を぀なげたいずき。

**向かない堎面**毎週同じ結合を行うずき。䞀床モデラヌかPythonスクリプトずしお保存しおおきたしょう。

**料金**無料プランはカヌド䞍芁です。Proは月額€49(皎別)です。

方法3空間結合でカりントず集蚈を行う

方法1では、各孊校にその区を付けたした。逆の問い、぀たり各区に孊校が䜕件あるかを知るには、サマリヌ版を䜿いたす。

Processingツヌルボックスで Join attributes by location (summary) を怜玢したす。Join to features in にポリゎン、By comparing to に点を指定し、Summaries to calculate で統蚈倀を遞びたす。個数、合蚈、平均、䞭倮倀、最小倀、最倧倀などが遞べたす。QGISは統蚈倀ごずに1぀のフィヌルドを远加し、名前は osm_id_count のようになりたす。

孊校の件数に応じお、薄い黄色から濃いオレンゞたで色分けしたリペン9区の地図。各区に9e 38、4e 27、1e 33、6e 41、5e 56、2e 27、3e 54、7e 53、8e 53ずラベルが付いおいる。赀い点が孊校を瀺す。
1回のサマリヌ結合で求めた区ごずの孊校数0.02秒。

数倀の合蚈も求められたす。IGNの建物デヌタで1回実行したずころ、各区の建物数ず、そこに登録されおいる䜏戞数が埗られたした。どちらも最倧だったのは3区で、建物9,474棟、䜏戞51,743戞です。

単玔なカりントだけなら、Vector > Analysis Tools > Count Points in Polygon
 で、より少ない蚭定で同じ結果が埗られたす。

**向いおいる堎面**答えが゚リアごずの数倀(個数、合蚈、平均)のずき。

**向かない堎面**䞀臎した地物の䞀芧そのものが必芁なずき。方法1を one-to-many で䜿いたす。

方法4Join attributes by nearest

地物同士が接しおいないずきは、距離で結合したす。Processingツヌルボックスで Join attributes by nearest を怜玢したす。

Input layer に schools、Input layer 2 に tram_stops、Maximum nearest neighbors に1を指定したす。QGISは停留所のフィヌルドに加えお、distance フィヌルドず、䞡端の座暙を远加したす。

リペン8区の街路地図。赀い孊校の点が、それぞれ黒い線で最寄りの青い路面電車の停留所に぀ながっおいる。同じ停留所を共有する孊校も耇数ある。
各孊校を最寄りの路面電車の停留所に結んだ図。リペン党䜓では䞭倮倀が710 mで、382校のうち86校が300 m以内にありたす。

結果を巊右する蚭定は2぀ありたす。

  • **Maximum distance。**300 mにするず、停留所が付いた孊校は86校だけでした。残りの296校は、Discard records which could not be joined にチェックを入れない限り、フィヌルドが空のたた出力に残りたす。
  • **Maximum nearest neighbors。**3にするず、382校が1,146行になりたした。1校ず1停留所の組み合わせごずに1行です。距離がたったく同じ地物があるず行が増える点にも泚意が必芁です。IGNの建物103,910棟では103,911行になりたした。

距離は盎線距離で、道路沿いの歩行距離ではありたせん。

向いおいる堎面「どれが䞀番近いか」「どのくらい離れおいるか」を知りたいずき。

**向かない堎面**移動距離が必芁なずき。Processingツヌルボックスのネットワヌク解析ツヌルを䜿いたす。

どの述語にチェックを入れるか

述語ずは、䞀臎を刀定する空間的なルヌルのこずです。QGISはこれを「レむダA [述語] レむダB」ず読みたす。Aは属性を受け取るレむダです。

赀い図圢Aず青い図圢Bの8皮類の空間関係を瀺した図intersect(䞀郚でも共有)、contain(AがBをすべお含む)、are within(AがBの内偎にある)、equal(同じ圢状)、touch(境界だけを共有)、overlap(同じ皮類で䞀郚が重なる)、cross(線が通り抜ける)、no match(disjoint、䜕も結合されない)。
赀は属性を受け取るレむダ、青は比范先のレむダです。

倚くの䜜業は次の3぀の芏則でカバヌできたす。

  • intersectポリゎン内の点や、接しおいればよいものすべおに䜿いたす。境界䞊の地物も拟いたす。
  • are within地物が完党に内偎に収たっおいる必芁があるずきに䜿いたす。リペンず亀差する建物のうち112棟は、1぀の区に完党には収たっおいたせんでした。108棟は垂境をたたぎ、4棟は区の内郚の境界をたたいでいたす。
  • contain逆向きの堎合、぀たり点を含むポリゎン偎から結合するずきに䜿いたす。

耇数のボックスにチェックを入れるこずもできたす。その堎合、どれか1぀でも成り立おば䞀臎ずみなされたす。

one-to-one、one-to-many、largest overlap

境界䞊にある建物は、2぀の区に接しおいたす。その建物をどう扱うかを決めるのが Join type です。リペンず亀差するIGNの建物46,250棟での結果です。

結合タむプ出力行数凊理時間
One-to-many(䞀臎ごずに地物を1぀)46,2541.13秒
First matching feature only(one-to-one)46,2500.99秒
Largest overlap only(one-to-one)46,2509.62秒

One-to-many では、区の内郚の境界をたたぐ4棟が重耇したした。䞀臎の䞀芧ずしおは正しい結果ですが、合蚈には向きたせん。これらの建物が2回数えられおしたいたす。

「First matching」は、QGISが最初に芋぀けた䞀臎を採甚するため、境界䞊の建物はどちらの区にも入る可胜性がありたす。「Largest overlap」は建物の倧郚分が入っおいる区を遞ぶので最も公平な答えですが、ここでは玄10倍の時間がかかりたした。

座暙参照系(CRS)の萜ずし穎

座暙参照系が間違っおいおも、結合が止たるこずはほずんどありたせん。結果が気づかないうちに倉わっおしたいたす。

  • **䜍眮による結合では、CRSが混圚しおいおも動きたす。**å­Šæ ¡ã‚’WGS 84(EPSG:4326)のたた、区をLambert-93のたたにしお詊したした。QGISがその堎で再投圱し、382件すべおが䞀臎したした。
  • **距離は入力レむダの単䜍で出たす。**WGS 84のファむルで Join by nearest を実行するず、「距離」の䞭倮倀は0.0071になりたす。これはメヌトルではなく床です。先に Vector > Data Management Tools > Reproject Layer
 で、䞡方のレむダをメヌトル単䜍の投圱座暙系に倉換しおください。
  • **Maximum distance も同じ単䜍です。**床の単䜍で300ず指定するず、地球党䜓が範囲に入っおしたいたす。

CRSずは䜕かの蚘事では、床ずメヌトルの違いず、䜍眮がずれたレむダの盎し方を説明しおいたす。

倧きなレむダでの凊理速床

QGISは、垂町村芏暡の結合なら数秒で凊理できたす。IGNの建物103,910棟での結果です。

  • 9぀の区ぞの one-to-one 結合GeoPackageから0.97秒。
  • 同じレむダをShapefileにした堎合1.69秒。Vector > Data Management Tools > Create Spatial Index
 のあずは1.04秒。
  • すべおの建物に最寄りの路面電車の停留所を付ける凊理3.5秒。
  • Largest overlap9.62秒で、最も遅い蚭定です。

倧きな結合を速く保぀コツは4぀ありたす。

  • **GeoPackageで䜜業する。**空間むンデックスが組み蟌たれおいたす。Shapefileには .qix ファむルが必芁で、Create Spatial Index がこれを曞き出したす。
  • **フィヌルドを絞る。**すべおをコピヌせず、Fields to add に必芁なものだけを指定したす。
  • **largest overlap は避ける。**境界䞊の地物が本圓に重芁なずきだけ䜿いたす。
  • **先にゞオメトリを修埩する。**無効なポリゎンがあるず「has invalid geometry」ずいう゚ラヌで凊理が止たりたす。Processingツヌルボックスの Fix geometries ツヌルで修埩できたす。入力レむダの暪にあるレンチのアむコンから Invalid feature filtering を倉曎する方法もありたす。

点の䜍眮も確認したしょう。孊校の点382件のうち、IGNの建物の内偎に入ったのは211件だけでした。残りは校庭や運動堎を指しおいるため、「建物の䞭にある孊校」ずいう条件では171校が挏れおいたした。

たずめ

点に゚リア名を付けるには、Join Attributes by Location で intersect を䜿いたす。

゚リアごずの個数や合蚈には Summary 版を、最も近い地物ずその距離には Join Attributes by Nearest を䜿いたす。

合蚈を出すなら one-to-one、すべおの䞀臎が必芁なら one-to-many を遞びたす。

距離を扱う前に、メヌトル単䜍のCRSぞ再投圱しおください。

どのツヌルが合うか迷ったら、欲しい結果をAI Agentに䌝えお、䜕が䜜られたかを確認したしょう。

よくある質問

QGISの空間結合ずは䜕ですか

空間結合は、䜍眮関係(内偎にある、接しおいる、最も近い)をもずに、あるレむダの属性を別のレむダに远加する凊理です。QGISの䞻なツヌルは、Join Attributes by Location、個数や統蚈倀を求めるそのSummary版、距離を求める Join Attributes by Nearest の3぀です。

QGISで䜍眮による属性の結合はどうやりたすか

Vector > Data Management Tools > Join Attributes by Location
 を開きたす。Join to features in に属性を受け取るレむダ、By comparing to に取埗元レむダを指定し、intersect にチェックを入れ、フィヌルドず one-to-one の結合タむプを遞んで実行したす。

䜍眮による結合ず最近傍による結合の違いは䜕ですか

䜍眮による結合では、チェックを入れた述語に埓っお、地物が接しおいる、たたは重なっおいる必芁がありたす。最近傍による結合は接しおいる必芁がなく、最も近い地物を探しお距離フィヌルドを远加したす。距離の単䜍は入力レむダのCRSの単䜍です。

空間結合の結果のフィヌルドが空になるのはなぜですか

倚くの堎合、地物が述語の条件を満たしおいたせん。点がポリゎンのすぐ倖にある、「are within」のように条件が厳しすぎる、ゞオメトリが無効である、ずいった原因です。䞡方のレむダを地図䞊で確認し、「intersect」を詊しお、Fix Geometries を実行しおください。片方のレむダのCRSが未蚭定の堎合も、䜍眮がずれたす。

AIでQGISの空間結合はできたすか

できたす。AI Agentは、入力した䟝頌からQGISのツヌルを実行したす。リペンのテストでは、区ごずのカりントず最近傍の結合を䞀文の指瀺で22秒で実行し、結果は手䜜業ず䞀臎したした。

QGISでAI Agentを無料で詊す(カヌド䞍芁)

関連蚘事

アンゞェの航空写真を衚瀺したQGISず、右偎に入力枈みの䟝頌が䞊ぶAI Agentパネル。画像内の文字は「+7%、米囜の地図䜜成職、2025幎から2035幎」。
AI AgentQGISGuide

GISの仕事はAIに奪われる今すでに自動化された䜜業

AIは䜜図やスクリプト䜜成、QGISの䜜業たで自動化し始めおいたす。それでも米囜の地図䜜成職は2035幎たで増加の芋通しです。䜜業ごずの倉化ず孊ぶこずをたずめたした。

TerraLabTerraLab
·
ラ・ロッシュ・シュル・ペンの䜏宅団地の空䞭写真。172棟の家の茪郭が黄色で描かれ、「1,399 clicks, to draw these 172 houses by hand」この172棟を手䜜業で描くず1,399クリックずいう文字が入っおいる。
AI SegmentationQGISTutorial

QGISのデゞタむズ方法手動・スキャン地図・AIの5手法

QGISでポリゎンをデゞタむズする方法を解説。スナップずトレヌスを䜿った手䜜業、スキャン地図の図化、ラスタのベクタ倉換、AIによる党オブゞェクトの䞀括抜出たで、5぀の手法を比べたす。

TerraLabTerraLab
·
䞊べお曞き出した2枚のA4印刷レむアりト。巊はチャットボットの最初の回答で、空の地図フレヌムの呚りにタむトル、凡䟋、方䜍蚘号があり、「゚ラヌなしで実行されたが、地図フレヌムは空」ずいう文字が添えられおいる。右はAI Agentによるアヌシヌの孊校のレむアりトで、地区、色分けされた孊校、凡䟋、瞮尺バヌがあり、「メッセヌゞ1回」ずいう文字が添えられおいる。
AI AgentQGISガむド

QGISでChatGPTは䜿える3぀の実タスクで怜蚌

ChatGPTはPyQGISコヌドを曞けたすが、プロゞェクトを芋られないため掚枬で動きたす。3぀の実タスクで党スクリプトをQGISで実行し、゚ラヌなしで空の地図が出た理由ず察凊法をたずめたした。

Yvann BarbotYvann Barbot
·