本系列内容主要介绍webgis开发过程中可能会遇到的常见面试题和答案,从前端到二维到三维,干货满满。记得关注我不走丢!
需要更多面试题、视频讲解、webgis教程的宝子戳↓↓↓
前几期内容点击下方链接:
1、常见的空间数据库有哪些
在GIS开发中,常见的空间数据库包括:
1. PostgreSQL/PostGIS:PostgreSQL是一种开源的对象关系型数据库管理系统,而PostGIS则是一个用于PostgreSQL的空间数据库扩展,可以用于存储、查询和分析空间数据。
2. Oracle Spatia:Oracle Spatial是Oracle数据库的一个扩展,它提供了存储和查询空间数据的功能,包括几何对象类型、空间索引和空间查询操作。
3. SQL Server Spatial:SQL Server Spatial是Microsoft SQL Server数据库的一个扩展,它提供了存储和查询空间数据的功能,包括几何对象类型、空间索引和空间查询操作。
4. SQLite/SpatiaLite:SQLite是一种轻型的嵌入式关系型数据库管理系统,而SpatiaLite则是一个用于SQLite的空间数据库扩展,可以用于存储、查询和分析空间数据。
5. MongoDB:MongoDB是一个NoSQL数据库,它可以存储各种类型的数据,包括空间数据。MongoDB通过Ge0JSON格式存储空间数据,并提供了一些空间查询操作。
6. MySQL Spatial:MySQL Spatial是MySQL数据库的一个扩展,它提供了存储和查询空间数据的功能,包括几何对象类型、空间索引和空间查询操作。以上是常见的空间数据库,每个数据库都有其独特的优点和适用场景,开发者应根据具体需求选择合适的空间数据库。
2、Openlayers图形绘制
3、Openlayers如何实现交互式绘制?
1、创建⽮量图层和⽮量数据源 - 创建画布
2、创建画笔
3、激活画笔
2、绘制组件是单独封装了⼀个绘制组件,还是使用的方法
3、如何加载天地图,设置中心点和显示级别
const TianDiMap_cva = new ol.layer.Tile({
title:"天地图⽮量注记图层",
source:new ol.source.XYZ({
url:'http://t0.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=' + '8a5c2b00e94b49659861e064c37f778d',
wrapX:false
})
})
const map = new ol.Map({
target:'map_container',
layers:[TianDiMap_vec,TianDiMap_cva], view:new ol.View({
projection:'EPSG:4326',
center:[0,0],
zoom:1
})
})
4、如何实现图层切换
const layers = map.getLayers().getArray();
map.addLayer();
map.removeLayer();
map.getLayers().item(index).setVisible(boolean) //实现图层的显示和隐藏
5、倾斜摄影
简单说就是使用飞行平台,从多个角度获取影像数据。
1)什么是倾斜摄影技术
倾斜摄影技术是通过在飞行平台上搭载多台传感器,同时从一个垂直、四个侧视等不同角度采集影像。我们可以将它理解为一项进化了的摄影测量技术,它比传统的摄影测量多了四个倾斜拍摄角度,从而能够获取到更加丰富的侧面纹理等信息。
2)倾斜影像的采集
倾斜影像的采集主要分为两个过程,首先是设备准备,其次是设计航线和实拍。
设备准备:
倾斜影像采集的设备包括航空器和倾斜相机。航空器可以是有人飞机或无人机,有人飞机多用于特大面积倾斜摄影,如国产的运十二、运五,中等规模作业可用无人直升机,如七维航测无人直升机,小范围作业可用多旋翼无人机,如红鹏无人机、大疆无人机等。倾斜相机方面,大多数倾斜相机采用下视、前视、后视、左视和右视五个镜头来获取地物倾斜影像,比较常见的如徕卡RCD30倾斜相机、四维远见SWDC-5倾斜相机、红鹏微型倾斜相机等。
6、主流地图的坐标系
一、国内的常用坐标系
1、WGS-84坐标系:地心坐标系,GPS原始坐标体系
在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密。
2、GCJ-02 坐标系:国测局坐标,火星坐标系
1)国测局02年发布的坐标体系,它是一种对经纬度数据的加密算法,即加入随机的偏差。
2)互联网地图在国内必须至少使用GCJ-02进行首次加密,不允许直接使用WGS-84坐标下的地理数据,同时任何坐标系均不可转换为WGS-84坐标。
3)是国内最广泛使用的坐标体系,高德、腾讯、Google中国地图都使用它。
3、CGCS2000坐标系:国家大地坐标系
该坐标系是通过中国GPS 连续运行基准站、空间大地控制网以及天文大地网与空间地网联合平差建立的地心大地坐标系统,
4、BD-09坐标系
百度中国地图所采用的坐标系,由GCJ-02进行进一步的偏移算法得到,
5、搜狗坐标系
搜狗地图所采用的坐标系,由GCJ-02进行进一步的偏移算法得到。
6、图吧坐标系
图吧地图所采用的坐标系,由GCJ-02进行进一步的偏移算法得到。
二、国内地图软件所采用的坐标系简介
1、百度地图:
1)境内(包括港澳台):BD09
a、在GCJ-02坐标系基础上再次加密
b、支持WGS-84、GCJ-02转换成BD09,反向不支持,并且批量转换一次有条数限制
2)境外:WGS-84
2、高德地图:
1)境内:GCJ-02
a、WGS-84-->GCJ-02(高德有接口提供,反过来没有)
2)境外:暂不支持
3)AMap 就是高德地图,是高德地图在纳斯达克上市用的名字,主要面向互联网企业或个人提供免费API服务
4)MapABC 是高德集团底下的图盟公司,主要面向大众型企业或政府机关,并提供付费的有偿服务
5)Amap和MapABC,数据和服务都是共享的,所以Mapabc用Amap的API是正常的。
3、google地图
1)境内:GCJ-02
a、数据来源于高德,两者互通
2)境外:WGS-84
4、天地图
全球统一:CGCS2000
5、腾讯地图:soso地图
境内:GCJ02
6、微软bing地图:BingMap
全球统一:WGS-84
7、搜狗地图
境内:搜狗坐标系
a、在GCJ-02坐标系基础上再次加密
b、支持WGS-84、GCJ-02、BD09转换成搜狗坐标,反向不支持
8、图吧地图:MapBar
境内:图吧坐标系
在GCJ-02坐标系基础上再次加密
9、阿里云地图
境内:GCJ-02
10、灵图地图:51ditu
境内:GCJ-02
7、地图上要素很多,加载慢,遇到过崩掉的情况么前端是如何缓解的?
1、数据优化:将不必要的数据过滤掉,只加载必要的数据。例如,如果地图上只需要显示某些特定的区域或点,可以通过缩放或其他方式进行筛选,只加载这些要素。这样可以减轻数据量,加快加载速度。
2、图层分级:将地图逐层分级,每层只显示特定的要素,降低一层图层中的要素数量。可以通过层叠效果来叠加多层图层,形成完整的地图效果。这样能够减少对单个图层的渲染次数,提高性能。
3、后台优化:通过后台对数据进行剪裁和压缩,减小数据传输的大小。还可以在后台对数据进行分块分段加载,来减轻前端负担。
4、瓦片地图:将地图切分成瓦片,只显示在当前屏幕可视范围内的瓦片,减少了不必要的数据加载。该技术可以大大减少加载速度,特别是在大地图并发用户请求非常高的情况下。
5、前端优化:通过缓存、预加载等技术,优化前端的性能。例如,可以将一些经常使用的数据进行缓存,提高响应速度,还可以在用户浏览过一个页面时,预加载下一个即将进入的页面,以提高用户体验。
8、二维和三维的区别
二维和三维之间最显著的区别在于它们所描述的对象的维度不同。
二维指的是平面,通常是由两个坐标轴(x轴和y轴)描述的图像或平面几何形状。例如,一张纸、一幅画、一张地图或一张二维条形码都是二维对象。三维则指的是空间,通常由三个坐标轴(x轴、y轴和z轴)描述的物体或形状。例如,一个球体。一个立方体、一辆汽车或一个建筑物都是三维对象。因为三维空间具有深度、高度和宽度等额外的维度,所以它可以更准确地描述现实中的物体和场景,使得我们可以更好地理解和模拟真实世界中的事物。而二维空间则更适合用于图像处理、计算机绘图和其他一些平面设计应用。
9、mapbox和Cesium的区别
Mapbox和Cesium都是WebGIS领域中的开源工具,它们都提供了丰富的地图显示和数据可视化功能,但它们在某些方面有所不同。
1. 定位不同:
Mapbox更注重静态地图和动态地图的制作和展示,特别是在移动设备和Web应用程序中的实现方面,提供了强大的地图渲染引擎和工具,能够快速构建交互式地图。Cesium则更注重实时地球和空间数据的可视化和分析,具有三维场景渲染、动态地球和虚拟地球等功能,主要用于高级的地球科学研究、军事情报分析、航空航天领域以及虚拟现实应用等方面。
2. 数据来源不同:
Mapbox的地图数据主要来自其自身的数据处理和开发者社区,同时也支持使用OpenStreetMap等开源数据。
Cesium的地图数据主要来自于NASA、OpenStreetMap、Bing Maps等数据提供商.
3. 技术实现不同:
Mapbox主要使用HTML5、CSS3和JavaScript等Web技术进行开发和部署,Cesium则使用WebGL和JavaScript等技术来实现高性能的三维场景渲染和数据可视化。总之,Mapbox和Cesium都是功能强大的WebGIS工具,但它们的侧重点不同,可以根据具体应用需求选择合适的工具。
10、天地图的地理坐标系,投影坐标系和地理坐标系区别
天地图是一个在线地图服务提供商,支持多种地图投影和坐标系。
在使用天地图时,需要了解地理坐标系、投影坐标系和地理坐标系之间的区别。地理坐标系是一个用于表示地球表面上点位置的坐标系统,通常使用经度和纬度来表示。
地理坐标系是一个三维坐标系统,以地球质心为原点,以地球赤道面和一个固定点(例如北极点)为基准面。
投影坐标系是将地球表面上的经纬度投影到一个平面上,以方便在二维地图上显示。投影坐标系通常是二维的,以米或英尺为单位。不同的投影方法可以得到不同的投影坐标系,例如墨卡托投影、高斯-克吕格投影等。
在天地图中,常见的投影坐标系有墨卡托投影(EPSG:3857)和高斯-克吕格投影(EPSG:4490)
天地图提供的瓦片数据使用的是墨卡托投影坐标系,该坐标系是一种圆柱形等角投影,具有较高的精度和广泛的使用。天地图的瓦片数据是根据该投影坐标系切割而成的。而在天地图的开发文档中,使用的地理坐标系为WGS84(EPSG:4326),也就是通常所说的经纬度坐标系。在使用天地图时,需要将 WGS84 坐标系的经纬度坐标转换为天地图使用的墨卡托投影坐标系,然后才能正确显示地图。