2021-07-29 02:46:20
2022年WebGIS面试题汇总如下:
一、基础问题请做个自我介绍
需结合GIS开发经验,突出技术栈(如OpenLayers、Leaflet)、项目经历及解决实际问题的能力。
路由生命周期(导航守卫)
全局守卫:
beforeEach(to, from, next):路由跳转前触发。
beforeResolve(to, from, next):解析守卫,在所有组件内守卫和异步路由组件解析后触发。
afterEach(to, from):跳转完成后触发。
路由守卫:
beforeEnter(to, from, next):针对单个路由配置的守卫。
组件守卫:
beforeRouteEnter(to, from, next):进入组件前触发。
beforeRouteUpdate(to, from, next):路由更新时触发。
beforeRouteLeave(to, from, next):离开组件时触发。
项目中使用哪些技术栈?
示例回答:
前端:jQuery + Bootstrap 或 Vue + Vue-router + Element-UI。
后端:Node.js + Express 连接MySQL数据库。
地图服务:OpenLayers加载天地图WMTS服务。
天地图的服务格式及加载方式
天地图采用OGC WMTS标准,通过OpenLayers的ol.source.WMTS或ol.source.XYZ加载。
ol.source.XYZ:需配置URL模板、坐标系(如EPSG:3857)。
ol.source.WMTS:需配置原点、分辨率数组、级别、坐标系等参数。
WMS与WMTS的区别
WMTS:返回固定大小的瓦片,支持缓存,响应快。
WMS:返回完整图片,无缓存,适合动态渲染。
其他OGC标准服务
WFS(要素服务)、WPS(地理处理服务)、WCS(栅格服务)。
天地图的坐标系
CGCS2000(中国2000国家大地坐标系)。
Web墨卡托投影与地理坐标系的区别
地理坐标系:三维(经纬度+大地高),如WGS84。
Web墨卡托投影:二维(XY坐标),形状为正方形,常用于Web地图。
常用坐标系分类
大地坐标系:三维(经纬度),如WGS84、CGCS2000。
投影坐标系:二维(XY),如Web墨卡托(EPSG:3857)。
为什么JS是单线程?
JS需操作DOM,多线程会导致冲突(如一个线程删除元素,另一个线程添加子元素)。
Web Worker提供多线程能力,但无法操作DOM。
JS单线程问题及解决方案
问题:同步任务阻塞页面,耗时任务(如网络请求)导致卡顿。
解决方案:
异步任务:通过消息队列和事件循环(Event Loop)处理。
执行顺序:同步任务 → 微任务(如Promise.then) → 宏任务(如setTimeout)。
宏任务与微任务
宏任务:setTimeout、setInterval、I/O、UI渲染。
微任务:Promise.then、process.nextTick。
执行顺序:主线程 → 微任务队列 → 宏任务队列。
如何发布自定义地图服务?
使用GeoServer(开源)或ArcGIS/SuperMap/MapGIS(商用)发布WMS/WMTS服务。
点图层加载优化
方法:
使用矢量切片(Vector Tiles)减少数据量。
启用聚类渲染(如OpenLayers的ol.source.Cluster)。
分级加载(根据缩放级别动态显示点)。
查询河周边污染工厂的实现思路
步骤:
使用空间查询(如PostGIS的ST_DWithin)筛选河流缓冲区内的工厂。
结合属性查询(如污染等级字段)过滤结果。
在前端通过OpenLayers高亮显示符合条件的工厂。
影像与矢量叠加实现
前端:使用ol.layer.Group组合影像图层(如XYZ源)和矢量图层(如GeoJSON源)。
后端:通过WMS服务叠加返回单一图片。
是否了解Cesium?
Cesium是开源的3D地理可视化库,支持倾斜摄影、地形数据加载,常用于三维WebGIS开发。
是否熟悉Vue3和TypeScript?
Vue3的Composition API和TypeScript的静态类型检查可提升代码可维护性,建议结合OpenLayers使用。
数据库与SQL经验
常用数据库:PostgreSQL(PostGIS扩展)、MySQL、MongoDB。
示例SQL:
-- 查询河流缓冲区内的工厂SELECT * FROM factories WHERE ST_DWithin(geom, (SELECT geom FROM rivers WHERE name='某河'), 1000);浏览器适配经验
使用CSS媒体查询或Flex/Grid布局适配不同屏幕尺寸。
测试主流浏览器(Chrome、Firefox、Edge)的兼容性。
项目中的亮点与挑战
亮点:如高性能瓦片加载、自定义空间分析工具开发。
挑战:如大数据量渲染卡顿,通过Web Worker或服务端渲染解决。
未来规划
短期:深入学习三维GIS(Cesium)或大数据可视化(Mapbox GL)。
长期:向全栈GIS开发或空间数据分析方向发展。
以上问题覆盖了WebGIS开发的核心知识点,建议结合实际项目经验准备具体案例,以提升面试通过率。