AI 地圖產生器能畫真實地點嗎?影像模型 vs QGIS 中的 GIS 代理實測
發布於
搜尋「AI map generator」時排在前面的工具,大多是畫一張看起來像地圖的圖片。如果是真實的地點,您需要的是會讀取 GIS 資料、而不是猜測像素的 AI。我在巴西累西腓(Recife)做了測試:兩個影像模型在自己畫的 1 km 範圍內,放進的真實公園或學校是零個;而 QGIS 內的 GIS 代理,50 座公園和 18 所學校全部與 OpenStreetMap 相符。
我在 2026 年 11 月 7 日進行這項測試,只用一句 prompt,並在任何執行之前就先寫好通過標準:
A map of the parks and schools within 1 km of the metro stations of central Recife, Brazil, with a legend and a scale bar
以下說明每一類工具實際會產出什麼、如何在 QGIS 中免費手動製作同一張地圖,以及我把這句話交給 QGIS 內的代理之後發生了什麼事。
6 of 9
Google 搜尋「ai map generator」前幾名結果中,屬於奇幻或 D&D 工具的數量
0 / 10
每個影像模型地圖上標示的公園和學校中,真實存在且位於 1 km 內的數量
50 & 18
手動 QGIS 方法與 GIS 代理都找到的真實 OSM 公園和學校數量
什麼是 AI 地圖產生器?
AI 地圖產生器指的是任何把文字 prompt 變成地圖的工具。實際上,這個名稱涵蓋了三種完全不同的東西,而 Google 會把三種混在同一頁結果裡。我在 2026 年 11 月 7 日抓取美國地區「ai map generator」的前幾名自然搜尋結果,9 個結果中有 6 個是奇幻、龍與地下城(Dungeons & Dragons)或桌遊戰鬥地圖產生器(Recraft、Reddit 的 r/DnD 討論串、Adobe Firefly、TT-RPG、ZSky AI 和 OpenArt)。只有 3 個跟真實地點有關,而且沒有一個展示以開放資料製作、附有圖例和比例尺的真實區域地圖。
這三類分別是:
- 奇幻與遊戲地圖產生器(Recraft、Adobe Firefly 的奇幻地圖工具、TT-RPG、ZSky、OpenArt、Perchance)。這些是調整過的文字轉圖片模型,用來畫虛構的大陸、羊皮紙風格的世界或地下城格子。拿來跑團很棒,但不是為真實地理設計的。
- 通用影像模型(例如 Google 的 Gemini 影像模型,或 ChatGPT 和 Midjourney 內的影像工具)以及圖釘地圖工具(例如 Proxi 的 MapsGPT 或 PamPam)。影像模型畫出一張模仿街道圖的平面 JPEG。圖釘地圖工具則依照 LLM 的記憶,在網路地圖上放標記;MapsGPT 自己的頁面也說它的結果是「Places come from public data and an AI's best guess」,並補充「It's a good starting point, not a guarantee.」
- GIS 代理,在 QGIS 這類桌面 GIS 軟體內執行。它不畫像素,而是從 OpenStreetMap 等來源下載向量圖層,執行空間工具(以公尺計算的環域、交集),設定圖層樣式,並建立可以編輯或匯出成 PDF 的列印圖面配置。
如果您需要的是小說裡的一座島,第一類就是您要的。如果有人要根據這張地圖走路、施工或做決策,只有第三類是在真實坐標上運作的。
測試:在累西腓用一句 prompt,四種做法
我選累西腓,是因為它東邊有明確的海岸線,兩條河(卡皮巴里貝河和貝貝里貝河)在市中心附近交會,有一條捷運線(Metrorec),而且 OpenStreetMap 的涵蓋度很好。在執行任何東西之前,我先從 OpenStreetMap 取得基準資料(railway=station 加上 station=subway、leisure=park 和 amenity=school),並寫下通過規則:
- 車站必須是真實的 Metrorec 車站,順序正確,至少包含 Recife 和 Joana Bezerra。
- 圖片上每個公園或學校的標籤都要對照 OSM 檢查:累西腓是否有這個名稱和類型的地物?它是否位於真實車站的 1 km 內?
- 比例尺必須與 Recife 站到 Joana Bezerra 站之間實際 1,192 m 的直線距離相符,誤差在 25% 以內。
- GIS 代理的部分:在公制 CRS 中做真正的 1,000 m 環域,公園和學校數量要與我自己的 OSM 幾何檢查一致,圖面配置要有圖例和比例尺,並標示資料來源。
| 方法 | 時間 | 真實的公園與學校名稱(以及位於 1 km 內) | 真實的車站名稱 | 是否註明資料來源與授權 | 可編輯的 GIS 圖層 | 匯出 |
|---|---|---|---|---|---|---|
Gemini 3 Pro Image(gemini-3-pro-image) | 18.2 秒 | 10 個中有 7 個存在於累西腓(10 個中 0 個在 1 km 內) | 6 個中 3 個 | 無 | 否(1408 x 768 平面 JPEG) | JPEG |
Gemini 3.1 Flash Image(gemini-3.1-flash-image) | 10.9 秒 | 10 個中有 5 個存在於累西腓(10 個中 0 個在 1 km 內) | 6 個中 3 個 | 無 | 否(1408 x 768 平面 JPEG) | JPEG |
| QGIS 內的 AI Agent(Medium 強度,一則訊息) | 88.7 秒 | 50 座公園、18 所學校(與 OSM id 100% 相符,未標示名稱) | 2 個中 2 個(僅市中心) | 是:OSM(ODbL 1.0)、Overture Maps | 是,EPSG:31985 中的 6 個已設定樣式圖層 | QGIS 圖面配置、PDF、PNG、GeoPackage |
| 手動 QGIS(6 個步驟,OSM 資料) | 未計時(以腳本執行) | 50 座公園、18 所學校(相同的 OSM id) | 2 個中 2 個 | 是:OSM(ODbL 1.0) | 是 | QGIS 圖面配置、PDF、PNG、GeoPackage |
影像模型在真實城市上錯在哪裡
我透過 Gemini API,以預設設定、不加系統提示,把 prompt 分別送給 gemini-3-pro-image 和 gemini-3.1-flash-image 各一次。每個模型只有一張圖,是單一樣本,不是統計基準測試,所以請把下面的數字看成我這次執行的結果,而不是固定的比率。
乍看之下,兩張圖都很有說服力。雖然 prompt 是英文,兩者都用葡萄牙文標示,把大西洋畫在右側(累西腓的海岸確實在那裡),畫了紅色捷運圖示並加上 1 km 圓圈,還附上圖例和比例尺。

把名稱拿去對照 OpenStreetMap,這張地圖就站不住了。在 Pro 的圖上,10 個不重複的公園和學校名稱中,有 7 個是累西腓的真實地點(例如 Parque 13 de Maio、Parque da Jaqueira、Ginásio Pernambucano 和 Colégio Damas)。有一個是街道而不是公園(Praça do Arsenal),另外兩個在 OSM 中不存在(Parque das Jaqueira 和 Colégio de Mantes)。
更大的問題是位置。圖上的每個標籤都落在畫出來的 1 km 圓圈內,因為 prompt 就是這樣要求的。但實際上,10 個有名稱的公園和學校中,沒有一個位於真實捷運站的 1,000 m 內。最近的是 Liceu de Artes e Ofícios,距離 Recife 站 1,101 m;Parque 13 de Maio 距離 1,248 m;Parque da Jaqueira 距離 4,144 m。模型記得累西腓的真實地名,然後把它們畫進自己的圓圈裡。
車站也有同樣的問題。Pro 圖上 6 個不重複的車站名稱中,只有 3 個是真實的 Metrorec 車站(Largo da Paz、Joana Bezerra 和 Afogados)。「Recife Antigo」是一個街區,「Larga Bezerra」把 Largo da Paz 和 Joana Bezerra 混在一起,而「Central」這個標籤出現在地圖上三個不同區域的三個紅色圖示上。在 OSM 中,Afogados 和 Largo da Paz 相距 489 m;用圖上自己的 1 km 比例尺量,Pro 的圖把它們畫成相距 2.8 km。

Flash 的圖(gemini-3.1-flash-image,10.9 秒)在標籤上更糟:10 個不重複的公園和學校名稱中,只有 5 個是累西腓真實的公園或學校,2 個類型錯誤(Lagoa do Araçá 是池塘,而 Escola Estadual Sizenando Silveira 在 OSM 中只以一個用它命名的共享單車站出現),另外 3 個在 OSM 中不存在。同樣地,真實的公園或學校沒有一個位於市中心捷運站的 1 km 內。
它還會捏造製圖細節。在上方和左側邊框,它印出不屬於任何坐標系統的坐標刻度(85000、40000、70000),下方那排刻度則糊成無法辨識的形狀。在海岸上,它把 Praia de Boa Viagem 畫在 Praia do Pina 的北邊;實際上在累西腓,Boa Viagem 位於 Pina 南方約 3.7 km。
只要記得影像模型的運作方式,這些都不令人意外。它沒有 GIS 圖層、沒有坐標系統,也沒有辦法量出 1,000 m。它預測的是看起來像累西腓地圖的像素。
如何在 QGIS 中免費製作真正的地圖
在看 AI 代理之前,先介紹在 QGIS 中用 OpenStreetMap 資料製作這張地圖的標準免費做法。如果您從來沒做過圖面配置,我們的如何在 QGIS 中製作地圖指南會更詳細地說明基礎,而我們的 QGIS 的 OpenStreetMap 下載指南則會帶您操作 QuickOSM。
從 OpenStreetMap 下載公園、學校和捷運站
如果還沒有,請先安裝免費的 QuickOSM 外掛,然後開啟 Vector > QuickOSM > QuickOSM…。在 Quick query 分頁中,把 In 設為 Recife, Brazil,執行三個查詢:
leisure=parkamenity=schoolrailway=station(再加一列station=subway)
保留市中心的捷運站
如果您像我一樣載入的是原始 .osm 檔,標籤會放在 points 圖層的 other_tags 裡。開啟 Processing Toolbox > Vector selection > Extract by expression,然後執行:
"other_tags" LIKE '%"railway"=>"station"%' AND "other_tags" LIKE '%"station"=>"subway"%' AND "name" IN ('Recife','Joana Bezerra')
這樣會留下 2 個市中心車站點。
重新投影到公制 CRS
OpenStreetMap 資料是以度為單位(EPSG:4326)。以度為單位的環域沒有意義,所以請先用 Vector > Data Management Tools > Reproject Layer…(「向量」→「資料管理工具」→「重新投影圖層」)把車站、公園和學校圖層重新投影到 EPSG:31985(SIRGAS 2000 / UTM zone 25S,以公尺為單位)。
建立 1,000 m 環域
開啟 Vector > Geoprocessing Tools > Buffer…(「向量」→「地理處理工具」→「環域」)。輸入設為重新投影後的車站,Distance 設為 1000 公尺,Segments 設為 36,勾選 Dissolve result,然後執行。您會得到一個合併後面積 5,374,942 m² 的多邊形。
擷取環域內的公園和學校
開啟 Processing Toolbox > Vector selection > Extract by location。從重新投影後的公園圖層中,選取與 1,000 m 環域相交的地物。對學校重複同樣的操作(在 OSM 中,這個範圍內有 17 所學校是以多邊形繪製,1 所是點;如果您想把 18 所全部畫成點,請對多邊形執行 Vector > Geometry Tools > Centroids…,再用 Merge vector layers 合併)。這樣會留下 50 座公園和 18 所學校。
加入底圖並建立列印圖面配置
從瀏覽器面板的 XYZ Tiles 下加入 OpenStreetMap,設定圖層樣式,然後開啟 Project > New Print Layout…(「專案」→「新增列印圖面配置」)。加入地圖框、圖例、比例尺、指北針和一行 © OpenStreetMap contributors (ODbL) 來源標示,再用 Layout > Export as PDF… 匯出。
這是步驟 1 的 QuickOSM 對話框,已設定為查詢累西腓的 leisure=park:

接著是在步驟 4 和 5 中真正執行空間運算的兩個 Processing 對話框,分別是以公尺做環域和依位置擷取:

環域建立之後,Extract by location 會把下載範圍內的 135 座公園篩選到與 1 km 範圍相接的 50 座:

把這些圖層放在 QGIS 列印圖面配置中的 OpenStreetMap 底圖上,就得到一張可以驗證的參考地圖,上面正好是 50 座公園和 18 所學校:

GIS 代理處理同一句 prompt
AI Agent 是我們開發的,所以這一節測試的是我們自己的外掛,用的是完全相同的句子。它是停駐在 QGIS 內的聊天面板(詳細介紹請看我們的 QGIS AI Agent 完整指南)。它不產生圖片,而是讀取您的專案、取得向量資料集、執行 QGIS Processing 工具,並建立列印圖面配置。
我在 macOS 上從空白的 QGIS 3.44.15 專案開始,把強度設為 Medium、權限設為 Balanced,貼上完全相同的測試 prompt,按一次送出。沒有後續訊息、沒有提問卡片,也沒有手動調整。

它在 88.7 秒內完成(34 次內部工具呼叫,0 個錯誤)。它讀取的是我們託管的 OpenStreetMap 擷取資料(日期為 2026 年 10 月 19 日),所以那天拒絕我連線的公開伺服器並沒有擋住它。它把專案切換到 EPSG:31985(SIRGAS 2000 / UTM zone 25S),取得捷運站,建立 1,000 m 環域,裁切公園和學校,為六個圖層設定樣式,並建立 A4 橫向圖面配置。
它在面板中的回答是:
已建立 A4 圖面配置「Central Recife parks and schools」,包含圖例和比例尺。圖中顯示兩個捷運站直線距離 1 km 內已繪製的 18 所學校和 50 座公園。「市中心」指的是距離累西腓市中心 2.5 km 以內;涵蓋程度取決於 OpenStreetMap。我也可以把圖面配置匯出成 PDF。

我把它的圖層拿去對照我自己的 OpenStreetMap 幾何檢查:
- 車站: 它選了 Recife(
-8.06917, -34.88537)和 Joana Bezerra(-8.07321, -34.89539)。 - 環域: 它在
EPSG:31985中的環域圖層面積為 5,375,557 m²,與兩個相距 1,192 m 的 1,000 m 圓的解析面積(5,376,700 m²)相差不到 0.02%。 - 公園和學校: 50 座公園和 18 所學校,與手動流程的 OSM ID 比對,公園 50 個中 50 個相符,學校 18 個中 18 個相符。最遠的公園頂點距離車站 998 m,最遠的學校距離 944 m。
- 來源標示: 圖面配置的頁尾寫著
© OpenStreetMap contributors; © Overture Maps Foundation, TomTom; modified by TerraLab | ODbL 1.0 | October 2026 | SIRGAS 2000 / UTM 25S。

在這一則訊息中,它也有實際的限制,從上面的圖面配置就看得出來:
- 只有兩個車站。 它把「市中心」定義為距離累西腓歷史中心 2.5 km 以內,因此漏掉了 Afogados(距離 Recife 站 2,475 m)、Largo da Paz 和 Ipiranga。加入 Afogados 後,數量會增加到 63 座公園和 26 所學校。至少它在回答和頁面上都寫明了 2.5 km 的規則,所以您可以在後續訊息中要求加入 Afogados。
- 地圖上沒有公園或學校的名稱標籤。 只有兩個車站有標籤;要看某所學校的名稱,您得在 QGIS 中點選該地物,或請代理加上標籤。
- 沒有指北針,版面配置也不太平衡。 我的 prompt 沒有要求指北針,所以代理沒有加。「Joana Bezerra」標籤壓在它的紅點上,Overture 道路和 OSM 水體下面沒有網格底圖,而 A4 頁面右邊三分之一大多是空白。
- 它差一步就產出 PDF 檔。 它建立了 QGIS 列印圖面配置,並提議匯出成 PDF,所以我自己點了
Layout > Export as PDF…。
它與影像產生器的差別在於,這張地圖的每一個部分都是公制坐標系統中真正的 QGIS 圖層。移動圖例、加上指北針、開啟學校標籤或加入 Afogados 站,在同一張地圖上只要幾秒鐘,而不是再擲一次骰子重新產生一張 JPEG。
什麼情況該用哪種工具
- 地點是虛構的時候,用奇幻地圖產生器(Recraft、Firefly、TT-RPG、OpenArt)。大多數「AI map generator」搜尋結果就是為此而做的,而且做得很好。
- 有人會造訪、在報告中引用或在上面施工的地點,絕對不要用影像模型。
gemini-3-pro-image和gemini-3.1-flash-image的危險之處不在於它們看起來很差,而在於它們看起來很完整,卻把累西腓真實的學校名稱放在離實際位置 3 到 4 km 的地方。如果您手邊只有瀏覽器裡的聊天機器人,請它寫 PyQGIS 程式碼,而不是畫圖片;我們的 ChatGPT for QGIS 測試說明了哪些做法可行,以及盲寫的腳本在哪裡出錯。 - 想完全掌控每個查詢、符號和圖面配置項目又不想花錢,或是正在學習空間連結和公制投影如何運作時,用手動 QGIS。
- 想在一分半鐘內得到真實的 OpenStreetMap 或 Overture 圖層、真正的公制環域和可編輯的圖面配置,而且不介意最後自己整理一個標籤或加上指北針時,用 QGIS 內的 GIS 代理。您可以在 QGIS AI 總覽看到我們所有的 QGIS 工具。
我們如何測量。 測試日期為 2026 年 11 月 7 日。兩次影像執行呼叫 Gemini API(generateContent,搭配 responseModalities: ["TEXT","IMAGE"],預設設定,無系統提示,每個模型 n = 1 張圖),模型為 gemini-3-pro-image 和 gemini-3.1-flash-image。基準資料來自 OpenStreetMap API(/api/0.6/map,八個圖塊涵蓋經度 -34.9245 到 -34.8745、緯度 -8.0885 到 -8.0585)以及同一天的 Nominatim 查詢。AI Agent 的執行使用 macOS 上的 QGIS 3.44.15,AI Agent 1.9.4,Medium 強度和 Balanced 權限,在空白專案中進行;代理查詢的 OpenStreetMap 擷取資料日期為 2026 年 10 月 19 日,Overture Maps 道路擷取資料為 2026 年 10 月 21 日。一句 prompt、一座城市是很小的樣本;換一座城市、改用葡萄牙文 prompt 或重複執行影像生成,確切的標籤數字都會改變。
常見問題
ChatGPT 或 Gemini 能畫出真實城市的準確地圖嗎?
用產生圖片的方式不行。影像模型畫地圖時,預測的是像素,而不是讀取 GIS 坐標。在我們對累西腓市中心的測試中,兩個 Gemini 影像模型都畫出了有說服力的葡萄牙文地圖,附有圖例和比例尺,但每張圖上 10 個有名稱的公園和學校中,真實存在且位於它們所畫 1 km 捷運範圍內的是 0 個。要準確的地圖,請使用 QGIS 這類 GIS,或是在真實 OpenStreetMap 圖層上運作的代理。
有沒有免費、能畫真實地點的 AI 地圖產生器?
有,但有限制。MapsGPT 這類網頁圖釘工具每小時可以免費產生幾張互動式圖釘地圖,不過它們自己的頁面也註明這些點是「an AI's best guess」。如果要有多邊形、比例尺和列印圖面配置的真正 GIS 地圖,QGIS 完全免費且開放原始碼,而 QGIS 的 AI Agent 提供免費方案,每月 5 項任務、Low 強度,不需要銀行卡或 API 金鑰(Pro 每月 300 項任務,並可使用 Medium 或 High 強度)。
AI 能用我自己的 GIS 資料或試算表產生地圖嗎?
影像產生器無法讀取 Shapefile、GeoPackage 或坐標 CSV。QGIS 內的 GIS 代理可以:您開啟現有的專案,或把 CSV、GeoPackage、Shapefile 或 GeoJSON 拖進 AI Agent 聊天面板,請它用您的圖層搭配 OpenStreetMap 或 Overture Maps 資料,做環域、連結、設定樣式或建立列印圖面配置。
為什麼「AI map generator」的搜尋結果大多是奇幻或 D&D 地圖?
因為文字轉圖片模型非常擅長在沒有基準資料的地方捏造海岸線、羊皮紙質感和地下城房間。我們在 2026 年 11 月查看 Google 搜尋「ai map generator」的前 9 個結果,其中 6 個是奇幻或桌遊戰鬥地圖工具。如果您需要真實地點的地圖,請找 GIS 工具或 QGIS 外掛,而不是影像產生器。
內的 GIS 代理,50 座公園和 18 所學校全部與 OpenStreetMap 相符。

