第一篇:GIS程序员笔试题目
城信所GIS程序员笔试部分题目:(完全原题)
1.什么是元数据?
2.简单列举常用的地理坐标系统、投影坐标系统和地心坐标系统?并简要描述他们的区别。
地理坐标系统:WGS84;
投影坐标系统:北京54,西安80。地理坐标系统与投影坐标系统的区别:
1).地理坐标系统是以经纬度为地图的存储单位,确定一个可以量化计算的椭球体,还有一个可以将该椭球体定位的大地基准面。2).投影坐标系统是以长度单位(通常是米)来进行地图的存储,要确定一个投影坐标,首先要有一个球面坐标,然后就是转化过程,即通过一定的算法(高斯克吕格就是一种投影算法),将该球面坐标投影成为平面坐标。
3.简要描述一下矢量数据结构和栅格数据,以及各自应用的领域。
a.栅格结构是以规则的阵列来表示空间地物或现象分布的数据组织,组织中的每个数据表示地物或现象的非几何属性特征。
b.矢量数据结构是通过记录坐标的方式尽可能精确地表示点、线和多边形等地理实体,坐标空间设为连续,允许任意位置、长度和面积的精确定义。c.栅格数据操作总的来说容易实现,矢量数据操作则比较复杂;
d.栅格结构是矢量结构在某种程度上的一种近似,对于同一地物达到于矢量数据相同的精度需要更大量的数据;在坐标位置搜索、计算多边形形状面积等方面栅格结构更为有效,而且易于遥感相结合,易于信息共享;
e.矢量结构对于拓扑关系的搜索则更为高效,网络信息只有用矢量才能完全描述,而且精度较高。对于地理信息系统软件来说,两者共存,各自发挥优势是十分有效的。
4.有哪些空间数据的索引方法,有哪些优点和缺点?简要说明其中一种。
a.简单网格空间索引:把空间划分为大小相同的网格。根据每个实体的空间范围把实体网格划成不同的部分,每个梅岭记录落入该格内的空间实体的编号,每一部分对应的网格分别增加新的记录以反映当前处理实体;
b.KD树:是一种基于点的动态索引方法。在二维坐标下,根据插入结点的X,Y坐标对空间进行交叉分割,把数据递归地划分为一个二叉查找树; c.R树:R树由中间结点和叶结点组成,实际数据对象的最小外接矩形存储在叶结点中,中间结点通过聚集其低层结点的外接矩形形成,包含所有这些外接矩形。。
5.试简要叙述一下空间数据建库的主要过程以及需要注意的主要问题。
完整的数据建库过程包括:数据库建模过程、数据监理过程、利用各种工具将各种数据入库的过程。
A.数据库建模过程。这一过程主要是根据行业应用特点及对其的理解,制定出比较规范的数据规范,在逻辑上建设数据库。
B.数据监理过程。这一过程主要是检测数据的正确性,从而保证建库的准确性。C.狭义上的建库主要是指利用各种工具将各种数据入库的过程。在这个过程中最重要的是多源数据的集成问题。数据格式转换模式格式转换模式是传统的GIS数据集成方法,也是入库的基本思想。在这种模式下,其他数据格式经专门的数据转换程序进行格式转换后,就可以进行入库了。这是目前GIS系统集成的主要办法。基本上每个GIS平台都提供了一些数据转换工具,以ESRI公司的ArcGIS平台为例子,其提供了ArcToolBox工具箱,功能比较完善和强大,基本上支持所有市面上主流的各种GIS数据
6.试述坐标变换的基本原理?写出仿射变换的主要处理过程。
坐标变换的基本原理是:是通过改变对应的参数,如基准面,椭球体,或者投影计算方法,实现由一种坐标系统向另一种坐标系统转换转换的过程。(找不到相关的资料,自己总结的)仿射变换:是空间直角坐标变换的一种,它是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直线”和“平行性”,其可以通过一系列的原子变换的复合来实现,包括平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)。
7.基于网络的三维GIS已成为当前GIS应用的一个热点,结合你对三维GIS的了解,试叙述一下Google推出的Google Earth或NASA推出的WorldWind系统涉及到三维GIS中哪些关键技术。
14.简要叙述一下优化ArcGIS Server Application性能的方法。
海维公司GIS程序员笔试部分题目:(凭记忆)
1.SQL查询语句。(南方数码公司SQL查询也是重点考查内容)
2.给定一个变量IFeatureClass:fcs,另外一个变量IPolygon:poly。要求从fcs中获取与poly相交的所有要素的集合。请用代码实现上述过程。
3.ArcGIS Server切片缓存格式有哪几种?试评价它们的优缺点?
a.ArcGIS Server缓存瓦片文件格式一般来说有三种:JPEG、PNG32及PNG8。
b.这三种文件格式在一些方面上有些不同,这些不同就决定了他们主要应用的方向。以下详细看看主要的差别:
1)、是否支持透明:JPEG不支持透明底色,PNG32与PNG8支持透明底色。也就是作为最低层的底图可以使用JPEG,其他地方最好使用PNG格式。
2)、支持的颜色级别:JPEG与PNG32支持16万色,而PNG8支持256色。对于需要丰富颜色表达的图层,建议采用JPEG或者PNG32,对于简单的要素渲染的需求,则选择PNG8比较合适。
3)、存储方式 :JPEG为有损带高压缩比的文件格式,能支持55-90的压缩比例。而PNG32和PNG8都是无损的。图片精度高,同时占用磁盘空间较大。
c.综合上述的特点一般来说JPEG比较适合用于影像切片,PNG32则适中与影像与矢量的切片。由于支持的颜色数较少及透明的特点PNG8更适合用于矢量数据的切片。
4.地理坐标与投影坐标有什么区别和联系。
1).地理坐标系统是以经纬度为地图的存储单位,确定一个可以量化计算的椭球体,还有一个可以将该椭球体定位的大地基准面。2).投影坐标系统是以长度单位(通常是米)来进行地图的存储,要确定一个投影坐标,首先要有一个球面坐标,然后就是转化过程,即通过一定的算法(高斯克吕格就是一种投影算法),将该球面坐标投影成为平面坐标。
5.用递归算法计算第30个数字。
1,1,2,3,5….6.ArcGISSever中可发布的服务有哪几种?分别适用于什么情况?
7.认为身为一个GIS程序员,需要掌握的各方面素养是什么?
8.如何管理一个软件项目,你认为一个软件开发项目重点应该放在哪一部分?
9.你认为现今GIS的发展热点是什么?GIS的发展趋势会是怎样?
ArcGIS Server知识:
1.Caching作用,Map Service Cache包括哪些类型。
·ArcGIS Server在发布地图时可以使用缓存来显著提升性能。在服务端响应客户端的地图请求时,不需要动态生成地图图片,只是将储存在地图缓存中的地图切片返回给客户端。
·地图服务缓存类型:
·单个融合缓存模式:在每个比例尺下所有图层融合在一起,创建地图切片,这时融合的缓存显示为一整体图层,不允许单独设置某个图层的可见性,以及选择要素与调整注记。
·多图层缓存:在某个比例尺下为每个图层单独创建地图切片,这时客户看到的是图层集合,可以控制每个图层的可见性,注记及要素选择。
2.什么是SOM?什么是SOC?它们分别有什么作用?
SOM:(Server Object Manager)服务器对象管理器。管理着运行在服务器上的服务,当客户端请求一个服务时,SOM负责分配一个服务给客户端使用。
SOC;(Server Object Container)服务器对象容器。可以装在多台机器上,是服务对象的宿主。所有客户端请求通过SOM分配以后都是由SOC来负责完成的。
3.什么是pooled GIS Services,什么是nonpooled GIS Services?应该如何选择?
池化:在客户端请求间共享对象,支持无状态的交互,支持很多用户,对象在启动时初始化,使用完毕并不销毁,而可以被下一个使用。这样提高了使用效率,使性能提升。非池化:使用的对象不能被共享,为每一个客户端创建新对象,支持有状态的交互,支持较少的用户。由于每个用户仅对自身的Edits集起作用,他人编辑时不能被见,所以Edits时需要非池化。
4.试述DataSource与Resource,Functionality的联系。一个数据源(DataSource)包含一系列的资源(Resource),一个资源包含一系列的功能(Functionality)
5.在WebGIS中,就如何提高SDE的效率问题,简单的谈一下你的感想。
ArcEngine知识
1.数据库的三种形式:
a)Mdb数据库形式
b)文件形式(如shp,Tin,Raster)c)SDE数据库形式 2.打开数据库的一般流程:
a)定义IWorkspaceFactory变量pWsf;b)创建具体的WorkspaceFactory,如
pWsf=new ShapeWorkspaceFactory;pWsf=new AccessWorkspaceFactory;c)利用Open或者OpenFromFile打开数据库,产生IWorkSapce对象,即为数据库对象。
3.如何理解ILayer,IFeatureClass,IFeatureLayer与IFeature的关系。
IFeayureLayer是ILayer的子类,IFeature是IFeatureLayer中的一个要素。可以 从IFeatureLayer中得到IFeatureClass 再利用游标IFeatureCursor就可以把这些IFeature一个个遍历出来了!
ArcGIS Desktop知识:
1.利用ArcGIS桌面软件:给一个广东省的土地利用现状图和一个行政区划图,如何统计得出各个行政区内各种地类土地面积的总和。简单描述实现步骤和使用工具。a.做相交,得出每一个要素图斑的行政区划所属。(如属于哪一个镇,字段名为“镇名”)b.通过select by attributes ,“镇名”=’XXX’,运行出结果后,在“地类名称”字段上右键点击“Summarize”,在下面选择“area“,选择sum(也可选择最大值,最小值等)。然后确定输出表;
c.所得的表即是XXX镇包含有多少个图斑,以及各个镇的图斑面积总和。d.再依上述2,3步做出其他镇结果。
2.简单描述拓扑检查的整个流程:
(答案为个人总结)
a.建立一个Geodatabase,将需要检查的图层导入; b.在库中新建一个拓扑图层,定义拓扑规则;
c.在ArcMap中将需要检查错误的图层及拓扑图层一并导入,添加拓扑工具条,利用拓扑工具条上的工具查询所有的拓扑错误,然后按照实际需要进行错误修正。
第二篇:JAVA程序员笔试题目(模版)
JAVA程序员笔试题目
1、有一个Vector对象,其中每一个元素都是一个String对象,请用For循环或者While循环输出Vector中的元素,要求格式为:“第i个元素为:aaa”
2、答:
3、Iterator it=Vector.iterat();
4、While(it.hasNext()){
5、String temp=(String)it.next();System.out.print(第一个元素为:);System.out.println(temp);6、7、}
8、Jsp有哪些内置对象,作用分别是什么?
9、答:request,response,pageContext,session,application,out.config,page,exception等
10、在try {}里面有一个return语句,那么紧跟在try{}后的finally{}里面的 code是否会被执行,是什么时候执行,在return之前还是之后。答:
11、面向对象的基本特征是什么?
12、答:继承,封装,多态,13、页面之间传递参数的方法有哪些?
14、答:利用request,pageContext,session,application,cookie对象都可以
15、Servlet中什么时候调用doGet()和doPost()?这两种方法有什么不同?
16、答:当表单是用get方法提交时,调用doGet(),反之调用doPost();
17、页面中有一个名称为unitprice的type=text的对象。要求输入的数据不能为空,写一个函数实现该功能,如果为空是给出提示。(用JavaScript语言写出)答: