AI 地图生成器实测:图像模型和 QGIS 智能体,谁能做出真实地图
发布于
在“AI map generator”(AI 地图生成器)这个词上排名靠前的工具,大多数画出来的是一张看起来像地图的图片。如果要做真实地点的地图,您需要的是读取 GIS 数据的 AI,而不是猜测像素的 AI。在我对巴西累西腓(Recife)的测试中,两个图像模型在它们画出的 1 km 范围内放进的真实公园和学校数量为零,而 QGIS 内的一个 GIS 智能体找到的 50 个公园和 18 所学校全部与 OpenStreetMap 吻合。
我在 2026 年 11 月 7 日做了这项测试,只用一条提示词,并在运行之前就写好了它的通过标准:
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
(意思是:一张巴西累西腓市中心地铁站 1 km 范围内公园和学校的地图,带图例和比例尺。)
下面是每类工具实际交出的结果,如何在 QGIS 中免费手工做出同一张地图,以及把这句话交给 QGIS 内的智能体之后发生了什么。
6 / 9
Google 上“ai map generator”的前 9 个结果中,奇幻或龙与地下城类工具的数量
0 / 10
每个图像模型地图上标注的公园和学校中,真实存在且位于 1 km 内的数量
50 和 18
手工 QGIS 方法和 GIS 智能体都找到的真实 OSM 公园和学校数量
什么是 AI 地图生成器?
AI 地图生成器是指任何能把文字提示变成地图的工具。实际上,这个标签涵盖了三类完全不同的东西,而 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。标点地图工具凭大语言模型的记忆在网页地图上放置标记;MapsGPT 自己的页面就写着它的结果“Places come from public data and an AI's best guess”(地点来自公开数据和 AI 的最佳猜测),还补了一句“It's a good starting point, not a guarantee.”(这是个好的起点,不是保证。)
- 在 QGIS 等桌面 GIS 软件内运行的 GIS 智能体。它不画像素,而是从 OpenStreetMap 等来源下载矢量图层,运行空间工具(按米计算的缓冲区、相交),为图层设置样式,并制作一个可以编辑或导出为 PDF 的打印布局。
如果您需要为小说画一座岛,第一类就够了。如果有人要根据这张地图出行、施工或做决策,只有第三类是在真实坐标上工作的。
测试:累西腓的一条提示词,四种做法
我选累西腓,是因为它东边有清晰的海岸线,两条河(Capibaribe 河和 Beberibe 河)在市中心附近交汇,有一条地铁线(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 把这条提示词分别发给 gemini-3-pro-image 和 gemini-3.1-flash-image 各一次,使用默认设置,没有系统提示词。每个模型只生成一张图,这只是单次样本,不是统计基准,所以下面的数字请看作我这次运行的结果,而不是固定比率。
乍一看,两张图都很有说服力。虽然提示词是英文的,两个模型都用葡萄牙语写了标注,把大西洋放在右侧(累西腓的海岸确实在那边),画了带 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 圆圈内,因为提示词就是这么要求的。实际上,这 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 智能体之前,先介绍用 OpenStreetMap 数据在 QGIS 中制作这张地图的标准免费方法。如果您从没做过布局,我们的如何在 QGIS 中制作地图指南更详细地介绍了基础知识,而我们的 QGIS 下载 OpenStreetMap 数据指南会一步步讲解 QuickOSM。
从 OpenStreetMap 下载公园、学校和地铁站
如果还没有安装免费的 QuickOSM 插件,先安装它,然后打开 矢量 > QuickOSM > 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…)。把输入设为重投影后的车站图层,距离设为 1000 米,线段数设为 36,勾选融合结果,然后运行。您会得到一个面积为 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) 版权说明,然后用 布局 > 导出为 PDF…(英文界面为 Layout > Export as PDF…)导出。
这是第 1 步中的 QuickOSM 对话框,已设置为查询累西腓的 leisure=park:

下面是第 4 步和第 5 步中完成真正空间计算的两个处理对话框,分别是按米做缓冲区和按位置提取:

缓冲区建好后,Extract by location 把下载区域内的 135 个公园筛选到与 1 km 范围接触的 50 个:

把这些图层放在 QGIS 打印布局中的 OpenStreetMap 底图上,就得到一张可核查的参考地图,正好包含这 50 个公园和 18 所学校:

GIS 智能体处理同一条提示词
AI Agent 是我们开发的,所以这一节是在同一句话上测试我们自己的插件。它是停靠在 QGIS 内的一个聊天面板(详见我们的 QGIS AI Agent 完整指南)。它不生成图像,而是读取您的工程,获取矢量数据集,运行 QGIS 处理工具,并制作打印布局。
我在 macOS 上从一个空的 QGIS 3.44.15 工程开始,把强度设为 Medium,权限设为 Balanced,粘贴了完全相同的测试提示词,点了一次发送。没有后续消息,没有提问卡片,也没有手动调整。

它在 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 个已测绘公园。“Central”指距累西腓市中心 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 所学校,与手工流程的 50 个公园 OSM ID 中的 50 个、18 个学校 OSM ID 中的 18 个吻合。最远的公园顶点距车站 998 m,最远的学校 944 m。
- **数据来源:**布局页脚写着
© OpenStreetMap contributors; © Overture Maps Foundation, TomTom; modified by TerraLab | ODbL 1.0 | October 2026 | SIRGAS 2000 / UTM 25S。

在这一条消息上,它也有真实的局限,从上面的布局就能看到:
- **只有两个车站。**它把“central”定义为距累西腓历史中心 2.5 km 以内,因此漏掉了 Afogados(距 Recife 站 2,475 m)、Largo da Paz 和 Ipiranga。加上 Afogados 后,数量会增加到 63 个公园和 26 所学校。好在它在回答和页面上都写明了 2.5 km 规则,您可以在后续消息里要求加上 Afogados。
- **地图上没有公园或学校的名称标注。**只有两个车站有标注;要看某所学校的名称,需要在 QGIS 中点击该要素,或者让智能体加上标注。
- **没有指北针,页面布局也不够平衡。**我的提示词没有要求指北针,所以智能体没有加。“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 用于 QGIS 的测试展示了哪些可行、盲写脚本会在哪里失败。 - 想零成本完全控制每个查询、符号和布局元素,或者正在学习空间连接和米制投影的原理时,就用手工 QGIS。
- 想在一分半钟内得到真实的 OpenStreetMap 或 Overture 图层、真正的米制缓冲区和可编辑的布局,并且不介意最后自己整理一下标注或加个指北针时,就用 QGIS 内的 GIS 智能体。我们所有的 QGIS 工具都在 QGIS AI 中心。
**我们如何测量。**测试于 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 日。一条提示词和一座城市是很小的样本;换一座城市、用葡萄牙语提示词或重复运行图像模型,都会改变具体的标注数量。
常见问题
ChatGPT 或 Gemini 能做出真实城市的准确地图吗?
生成图像的方式不行。图像模型画地图时,预测的是像素,而不是读取 GIS 坐标。在我们对累西腓市中心的测试中,两个 Gemini 图像模型都画出了带图例和比例尺、用葡萄牙语标注、看起来很可信的地图,但每张图上 10 个有名称的公园和学校中,位于它们所画 1 km 地铁范围内的真实地点都是 0 个。要做准确的地图,请使用 QGIS 等 GIS 软件,或在真实 OpenStreetMap 图层上工作的智能体。
有没有能做真实地点地图的免费 AI 地图生成器?
有,但有限制。MapsGPT 等网页标点工具每小时可以免费生成几张交互式标点地图,不过它们自己的页面也说明这些点是“an AI's best guess”(AI 的最佳猜测)。如果要做带多边形、比例尺和打印布局的真正 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 地图生成器”搜索结果都是奇幻或龙与地下城地图?
因为文生图模型非常擅长在没有真实基准的地方编造海岸线、羊皮纸纹理和地下城房间。2026 年 11 月我们查看“ai map generator”的 Google 前 9 个结果时,有 6 个是奇幻或桌游战斗地图工具。如果您需要真实地点的地图,请找 GIS 工具或 QGIS 插件,而不是图像生成器。
内的一个 GIS 智能体找到的 50 个公园和 18 所学校全部与 OpenStreetMap 吻合。

