2019年秋季校招,我投了浩鲸科技的GIS开发岗,笔试考完印象很深。浩鲸科技从运营商业务起家,这些年政企项目和智慧城市业务里GIS的需求量不小,所以笔试题目偏实际应用,理论题有,但更多还是ArcGIS操作、空间分析、数据处理这类能直接反映动手能力的题。整体风格是"重应用、轻推导",题量不小,时间比较紧凑。
这篇文章我不准备把原题一张张复述出来。网上流传的版本大多不全,也没有标准答案,照搬意义不大。我更想把这套笔试题背后反复出现的核心考点拆开讲清楚:空间数据模型、坐标系与投影、缓冲区与叠加分析、字段计算、插值、批量出图、报错排查,以及每类考点在笔试里可能的出题方式和答题思路。无论你是准备明年的校招,还是刚入行做GIS开发,这些内容在面试和实际项目里一样用得上。
1. 笔试整体设计与考察方向拆解
1.1 浩鲸科技为什么校招GIS?岗位定位是什么
浩鲸科技早期核心业务是通信行业的BSS/OSS系统,给运营商做计费、客户管理、资源管理这类平台。GIS在里面具体做什么?主要是网络资源管理、基站覆盖分析、管线管理、以及后来智慧城市业务中的地图可视化。笔试因此不是纯学术风格,而是带着明显的项目导向。
从试卷结构看,大致分成三类:第一类基础概念题,比如数据结构、坐标系、空间分析名词解释,占二三十分;第二类实操题,比如字段计算、数据转换、制图操作,占四五十分;第三类综合设计题,给你一个业务场景,问你怎么搭技术方案,占二三十分。这个配比释放的信号很明确:他们要的是能直接上手干活的人,不是只会背概念的应届生。
我当时投递的时候,岗位名称写的是GIS开发,但笔试并没有直接考编程语言,而是先考GIS基本功。这说明他们的筛选逻辑是:GIS基础不过关,写代码的机会都不给你。所以备考重点应该放在ArcGIS功能细节和数据处理流程上,而不是一上来就啃编程框架。
1.2 用一个"通信基站选址"场景串起所有考点
笔试前我习惯把零散知识点装进一个综合场景里练。通信基站选址是个特别好的例子:先要对城市人口分布和现有基站位置做空间分析,找到盲区;然后要叠加行政区划、土地利用数据,筛选可建设区域;接着用插值或核密度分析识别高价值热点区域;最后用数据驱动页面批量出图,输出每个候选点位的专题图。
你会发现,这样一个场景几乎覆盖了笔试题八成以上的考点——数据结构、坐标系、缓冲区、叠加分析、插值、核密度、字段计算、制图输出,全部在里面。笔试的真正难点不是某个操作有多难,而是你有没有把散落的知识点串成一条完整工作流的习惯。后面每个章节,我会按"考点为什么考、项目里怎么用、笔试怎么答"的顺序把内容铺开。
2. GIS空间数据与坐标系:无论怎么出题都绕不开的基石
2.1 矢量与栅格数据模型怎么选、怎么考
数据模型是GIS笔试题的常客,选择、判断、简答都可能出现。矢量数据(点、线、面)适合表达离散的、有明确边界的地理要素,比如基站、道路、小区边界;栅格数据适合表达连续变化的表面,比如高程、温度、植被覆盖度。笔试里会问某种数据应该用什么模型表达,比如"土地利用类型适合存成矢量还是栅格?"
这道题的坑在于,土地利用既可以是矢量(地块边界清晰的规划图),也可以是栅格(遥感分类结果),要看数据来源和应用场景。笔试里如果填"只能矢量",那就掉坑里了。实际项目中,我们常用矢量做管理、用栅格做分析,很多工具会把矢量转栅格后再计算,比如做叠加分析时,两边类型不一样经常要统一。
这里有个实操经验:拿到一份tif格式的栅格数据,很多人上来就丢进"栅格转面"工具,结果像元大小设得过大,面边界锯齿严重,拓扑检查直接挂掉。笔试如果问"栅格数据怎么编辑",其实问的是两个层面:一是用栅格计算器做重分类、条件判断;二是转成矢量后再编辑属性。直接编辑栅格像元值是不现实的,除非是栅格编辑工具链,一般项目里不会这么干。
2.2 坐标系与投影:最容易被绕晕的送分题
坐标系是GIS笔试里最经典的扣分点。浩鲸的笔试题我记得有一道是给两个图层的坐标信息,问为什么叠加后位置对不上。这就是WGS 1984和CGCS 2000混用的问题,项目里太常见了。
笔试需要掌握的核心概念包括:地理坐标系(WGS 84、CGCS 2000、Xian 1980)和投影坐标系(高斯-克吕格投影、Web Mercator等)。另外要理解动态投影,ArcMap视图显示时默认会自动投影到数据框的坐标系,但很多分析工具要求输入输出坐标系一致,否则会报错或结果不在预期位置。
一个经常踩的坑是用地理坐标直接算面积。地理坐标的单位是度,直接算出来的面积不是平方米,数值巨大且毫无意义。正确做法是先投影到合适的投影坐标系(比如高斯-克吕格投影或Albers等积投影),再用几何计算字段算面积。笔试如果问"面积计算公式",不一定要默写公式,能说清楚"基于椭球模型计算面积需要投影坐标、具体工具在ArcToolbox里怎么操作",就已经很加分了。
我建议把常用坐标系整理成一个小表,笔试前过一遍:
| 坐标系 | 类型 | 投影 | 适用场景 |
|---|---|---|---|
| WGS 1984 | 地理坐标 | 无 | GPS原始数据、全球定位 |
| CGCS 2000 | 地理坐标 | 无 | 国内法定大地坐标系 |
| 高斯-克吕格 | 投影坐标 | 横轴等角切圆柱 | 国内大比例尺地形图 |
| Web Mercator | 投影坐标 | 墨卡托变体 | 在线地图切片、WebGIS |
2.3 标识码和字段编码:计算逻辑比公式更重要
"标识码计算公式"是热词里出现频率很高的问题,说明大家在这类题上卡得很厉害。标识码本质上是一个唯一编码,常见组成是行政区划码加顺序码,或者按照国标文卷的编码规则生成。笔试不会让你背标准编号表,而是给一个例子,让你推算出某个要素的标识码怎么组成。
我的建议是,这类题靠逻辑就能推:编码具有唯一性、包含层级信息、长度固定。具体计算时,先把行政区划码补齐(比如省级两位、地市两位、区县两位),再把顺序号转成固定位数,不足前补0,最后拼接。
在ArcGIS字段计算器里,用Python语法可以这样写(假设字段:xzqhm为区划码、xh为顺序号):
str(!xzqhm!) + str(!xh!).zfill(4)这样得到的编码就是"区划码+四位流水号",比如"3201020001"。这种题目考的不是编码规则本身,而是你有没有"唯一性"和"可扩展性"意识。后续做数据关联、空间连接时,标识码设计不合理,一对多关系会让整个分析结果失真。
3. 空间分析实操:缓冲区、插值、核密度、叠加
3.1 缓冲区与叠加分析:分析题的万能组合
缓冲区分析和叠加分析是空间分析里最常用的两个工具,笔试基本必考。缓冲区的原理是给点、线、面要素生成指定半径的邻域范围,用来分析周边影响;叠加分析则是把两个或多个空间数据做交集、合并、擦除等操作,得到新的空间关系。
笔试常这样出题:"某基站半径500米范围覆盖了多少人口"。这本质上就是缓冲区加叠加加属性统计。具体流程:先把基站做500米缓冲区,然后把缓冲区与人口分布面叠加,最后统计覆盖范围内的人口总量。
实际操作里缓冲区有几个参数容易忽略:线要素的末端类型(ROUND/FLAT),融合类型(ALL/NONE),侧面类型(FULL/LEFT/RIGHT)。业务上如果只是要"覆盖区域",通常选融合,这样生成的是一个整体面,后续制图和分析都方便;但如果要逐条计算每个基站自己的覆盖范围,就不能融合,不然统计口径对不上。
我项目里常用的是"按字段融合"这个选项,比如按基站编号融合,这样每个基站对应一个完整的缓冲区面,不会因为相邻缓冲区重叠导致面碎片化。这个细节笔试可能不直接考,但在综合设计题里写出来,会显得你确实做过实际项目。
3.2 一个点能不能做插值?先搞清楚前提
"GIS怎样用一个点插值"是个比较有代表性的热词,新手对插值有误解,以为能靠一个点猜出整个区域的值。插值不是"再造数据",而是利用已知采样点的值估算未知位置的值,本质是空间自相关的利用。已知点太少,比如只有一个点,插值结果就是一片均匀或对称分布的假数据,没有任何实际意义。
笔试如果出"一个点插值"这类题,考的是你懂不懂插值的前提假设。正常业务场景至少要有几十个观测点,而且点的空间分布要覆盖整个研究区,避免在无数据区域做外推。
常见的插值方法笔试里也会问:
- 反距离加权(IDW):计算快,对均匀采样效果好,但容易产生"牛眼"现象,局部极大值突出
- 克里金(Kriging):基于变异函数,能给出预测误差,适合地质、气象等专业场景
- 自然邻域(Natural Neighbor):对不规则分布点效果好,不会产生超出样本值范围的极端值
答题时能说出"插值前要检查点分布、要做探索性空间数据分析,看数据是否满足插值假设",比单纯罗列方法名要高分得多。我自己做气象插值时,数据点少,硬用普通克里金,结果一片平滑得不符合实际,后来改用地形协变量的回归克里金才好转。
3.3 核密度报错Error 010024:怎么定位怎么解
核密度分析(Kernel Density)在ArcGIS里是点要素密度分析的工具,常用于基站分布、犯罪热点、POI密度等场景。热词里那句"gis核密度计算报错error 010024: 转换时出错。执行(kerneldensity)失败"看着眼熟,我在项目里遇到过不止一次。
这个报错的常见诱因有:输入数据是地理坐标系,工具要求投影坐标系;输出范围设置不合理;搜索半径或像元大小设置过小导致计算量暴涨;输入要素属性表里存在空值或异常值。
排查思路我一般按顺序走:先检查属性表有没有空值,再看数据框坐标系是不是投影坐标系,最后看参数设置。先排除数据问题,再排除参数问题。笔试如果给出报错截图,正是考察你能不能按顺序定位问题,而不是死记错误码。你可以直接在回答里写:"遇到010024,优先检查坐标系和空值,再用小范围数据试跑",这个回答已经能拿大部分分数。
另外补充一点,核密度分析的搜索半径(search radius)设置很有讲究。如果半径太大,密度分布过于平滑;太小则会形成碎片化热点,业务上很难解读。可以先用ArcToolbox里的"统计"功能看看平均最近邻距离,再按平均距离的1~3倍设置初始半径,然后根据效果调整。
4. 字段计算与数据质量:笔试里被忽视的实操细节
4.1 字段计算器保留两位小数:round的两种写法
"GIS保留两位小数round"是操作题的高频考点。在ArcGIS字段计算器里,根据解析器不同有两种写法:
Python解析器:
round(!area!, 2)VB解析器:
Format(!area!, "0.00")笔试里的实操题一般是这样的:给一个面积字段,要求保留两位小数,同时把单位从平方米换算成公顷。那表达式就是:
round(!area! / 10000, 2)这里有个容易忽视的点:直接更新原字段可能覆盖原始精度,建议先新建一个字段,用计算器赋值后再删除旧字段,或者在处理前复制一份数据。字段计算是不可撤销操作,一旦覆盖,想找回就得重新处理原始数据。
注意:任何涉及字段修改的操作,先创建数据副本再动手,这是GIS数据处理的基本安全习惯。
4.2 同一字段查重:三步找出重复项
"GIS中怎么筛选同一字段中是否有相同项",这个问题的场景通常是检查标识码、ID号是否有重复,避免后续关联出现一对多。笔试里这类题经常藏在数据质量检查环节。
我推荐用三个步骤解决:第一步,打开ArcToolbox里的【分析工具】→【统计分析】→【汇总统计数据】(Summary Statistics);第二步,把要查重的字段设为分组字段,统计字段选任意字段,统计类型选COUNT;第三步,在结果表中筛选COUNT大于1的记录,就得到重复项列表。
如果要在原图层里选中这些重复记录,可以再根据重复的字段值做一次按属性选择。这个方法比用属性表"查找相同记录"更直观,尤其在数据量大的时候性能也好很多。笔试问答题里,把"用Summary Statistics按目标字段分组统计计数,再筛选Count>1"这句话写清楚,基本就是满分回答。
4.3 日期字段赋值为YYYYMMDD:格式与类型的双重坑
日期字段赋值在GIS项目里很常见,尤其是在做数据入库和数据交换时。比如原始Excel里日期是"2019/08/01",但目标库要求文本型"20190801"。笔试里可能会问怎么快速转换。
在字段计算器里,用Python可以这样写:
import datetime datetime.datetime.strptime(!date_field!, "%Y/%m/%d").strftime("%Y%m%d")如果原始日期字段就是字符串,也可以用split拼接:
d = !date_field!.split("/") d[0] + d[1] + d[2]但这里有个大坑:日期类型必须和字段类型匹配。文本字段存YYYYMMDD没问题,但如果你要真正的日期型字段,就不能存这种纯数字字符串,否则数据库在做日期排序、范围查询时会出问题。实际项目中,入库前要统一设计字段类型,该用Date类型就用Date类型,别用文本型糊弄。
另外一个细节是ArcGIS字段计算器不一定能正确处理02/29这类特殊日期,赋值前最好先用Excel或Python脚本清洗一遍,把非法日期筛出来。笔试里如果时间充裕,把"先确定字段类型,再写转换表达式"这个逻辑讲清楚,就能体现你的数据工程素养。
5. 制图输出与批量出图:笔试最后的实操高峰
5.1 四角坐标标注:做图纸的硬需求
"GIS中作图时怎么在四个角标注坐标值"是制图类操作里的常客。做项目交付图纸时,四角坐标是硬性要求,因为读图的人要靠它快速定位图上任意区域的经纬度或方里网坐标。
在ArcMap里,标准做法是用格网功能:切换到布局视图,右键数据框打开属性,在"格网"选项卡里新建格网,选择经纬网或方里网;然后在向导里设置坐标间隔,在"轴"选项卡里勾选标注,让格网四周显示坐标值;最后把四个角的标注手动调整一下位置,让它们更清楚。
ArcGIS Pro里入口略有不同,是在布局里的地图框属性里添加格网,选"经纬度格网"或"方里网",然后设置标注样式。两者思路相同,但菜单位置不一样,笔试如果问的是Pro,就说Pro的操作;没指定版本的话,说清楚"用格网功能、设置间隔和轴标注"就够了。
实际操作中比较麻烦的是坐标间隔怎么设。如果底图是2000国家大地坐标系,通常方里网间隔按图幅比例尺来定,比如1:1万图用1公里间隔。不知道间隔就去看同比例尺的标准图幅模板,不要自己随便填,否则格网标注会乱成一团。
5.2 数据驱动页面批量出图:一次输出120张图的流程
"GIS数据驱动页面批量出图"在热词里出现,说明很多人对这个功能不熟。它的应用场景是:同一份底图,按行政区或图幅批量输出几百张专题图。我在一个土地利用规划项目里用这个功能,一次性输出120多张村界图,省了至少两天人工。
ArcMap里的操作流程:先准备好索引要素类,比如每个村、每个镇的多边形;切到布局视图,在"视图"菜单打开"数据驱动页面"工具条;点"数据驱动页面设置",勾选启用,指定索引图层和名称字段;然后在布局里插入标题、图例、比例尺,用动态文本把索引字段引用到标题里,这样每页标题会自动变成对应村名。
ArcGIS Pro里对应的是"地图系列"功能,入口在地图框属性里,勾选启用地图系列,选择索引图层和名称字段,逻辑一样。
实际操作里要注意几个细节:索引要素最好有一个编号字段,作为输出文件名,避免中文文件名在某些环境出问题;每个分页的范围要设置"居中并保持比例",否则不同形状的面会导致比例尺缩放不一致;底图数据量不能太大,否则批量导出时内存很容易崩。另外,输出格式建议直接导出PDF,整个地图系列在一个PDF里方便打印;如果要求PNG,再用"导出地图"逐个输出。
笔试如果考到这个,你不需要把每个菜单步骤背下来,但要把"索引要素类 + 数据驱动页面/地图系列 + 动态文本 + 批量导出"这条主线讲清楚,并且能说出"用编号字段做文件名"这种细节,面试官就会认为你真的用过。
6. 笔试遇到报错题:把Error 010024这类坑摸透
6.1 报错排查三步法:先看提示、回落测试、检查坐标系
笔试中遇到报错类问答题,别慌。很多同学一看到"Error 010024"就懵了,其实这套题考的不是错误码本身,而是排查思路。
我总结的三步法:第一步,看错误码前面的提示信息,ArcGIS很多报错真正原因在错误码之前那几行;第二步,回落测试,用一小块数据跑一遍,排除数据量过大或内存不足的问题;第三步,检查坐标系,很多空间分析工具在输入数据是地理坐标系时会报转换错误,切成投影坐标系再跑一次。
以Error 010024为例,它在核密度分析里常见,按三步走:打开属性表检查有没有空值,把数据框坐标系切成高斯或UTM投影,再跑一次。通常问题就解决了。如果还不行,检查搜索半径和像元大小是否合理,调大一些再试。
笔试回答里如果能写出这个排查顺序,比死记硬背错误码强得多。因为面试官真正想看你的是"遇到问题会不会自己定位",而不是"你是不是见过这个报错"。
6.2 数据源加载失败:环境类问题按顺序查
"GIS无法从数据源加载数据"也是很多人会遇到的问题,笔试里可能以截图形式出现。原因基本集中在几个点:路径包含中文、空格或特殊字符;Shapefile缺少必要辅助文件,比如只有.shp没有.dbf或.shx;数据库连接失效或权限不足;文件被其他程序占用。
排查顺序建议是:先看文件在磁盘里是否完整,再看路径是不是有中文,然后用ArcCatalog重新连接一次,最后检查有没有.lock之类的锁文件。路径含中文是非常常见的元凶,尤其是从别人那拷贝过来的数据,名字里带个"新建文件夹",ArcGIS有时候能读,有时候就报错。
我个人建议从一开始就养成习惯:GIS项目目录全部用英文命名,路径里不要有空格,数据文件统一放在一个raw目录里。这样能省掉大量莫名其妙的加载问题。笔试里如果问"加载数据失败排查",按这个思路答,基本不会丢分。
7. 备考清单与练习方法:我的高效准备路径
7.1 复习优先级:高/中/低三档怎么排
结合2019年浩鲸笔试题型,我给备考优先级排个序:
| 优先级 | 考点 | 理由 |
|---|---|---|
| 高 | 坐标系与投影、矢量栅格数据结构、字段计算器、缓冲区/叠加分析、制图输出 | 笔试高频考点,也是后续开发岗位的基本功 |
| 中 | 插值与核密度、拓扑检查、数据驱动页面、ArcPy基础 | 会问但频率略低,一旦考到区分度高 |
| 低 | 三维分析、遥感影像分类、网络分析 | 浩鲸校招笔试很少涉及,了解概念即可 |
要注意的是,浩鲸的岗位偏开发,所以ArcPy写脚本的能力是加分项。笔试里只要出现"批量处理"场景题,能用ArcPy写个循环解决的,就会明显比一步步手动操作强。我当时就是靠一个简单的批量裁剪脚本,把综合设计题的方案写得比大多数人有条理。
7.2 用项目式练习把实操题练熟
备考GIS笔试,刷题不是重点,重点是动手练。我建议找一份公开的POI数据或者国土空间规划样例数据,给自己布置一个"基站选址分析"练习任务,把从数据检查、坐标转换、缓冲区、叠加分析到制图输出、批量出图的完整流程从头到尾走一遍。
每做一步,把工具参数记下来,把报错原因也记下来,形成自己的操作手册。这样到笔试时,实操题基本就是肌肉记忆,眼随手到。特别提一句:笔试前一周,把ArcMap或ArcGIS Pro的环境搭好,把常用工具在工具栏里的位置过一遍,能显著提升答题速度。
我当时练习时有个小习惯:每次做完一套流程,会写一段文字复盘。比如"这次缓冲区分融合选错了,导致后续统计多了重复",这种记录在笔试前复习时特别有用,比看别人的教程更能提醒自己容易踩的坑。
备考其实是个"用项目驱动知识积累"的过程。把一套题练透,把每个操作背后的逻辑想清楚,比刷十套题都管用。笔试不过是把日常项目里那些操作放到卷子上,你平时动手多了,答案自然就写出来了。