text: “地理信息工程”是地理信息与智慧城市专业的核心基础课程，使学生了解地理信息工程设计方法和实践过程。
  课程概况：课程任务是向学生介绍地理信息工程的系统分析、总体设计、功能设计等流程，以及具体工程项目的实践，注重基本概念、流程和实验验证的教学，并强调地理信息工程设计、管理理论及其实践的能力培养。
  教学内容：以主讲教师的国家自然科学基金项目为载体，结合地理信息工程的特点，着重介绍以下关键内容：地理信息工程概论、系统分析、总体设计、功能设计等理论，以智慧城市信息工程的实践方法。通过学术讨论和微型项目实践，培养学生在项目设计、项目实施、科技论文写作等方面的能力。
  地理信息工程是系统原理和方法在GIS工程建设领域内的具体应用。它从系统的观点出发，立足于整体，统筹全局，又将系统分析和系统综合有机地结合起来，采用定量的或定性与定量相结合的方法，提供GIS工程的建设模式。同时，GIS工程在很大程度上是计算机软件系统，它在软件设计和实现上要遵循软件工程的原理，研究软件开发的方法和软件开发工具，争取以较少的代价获取用户满意的软件产品，支持GIS工程。本课程在于讨论大数据时代下的地理信息工程模式，基于课堂所学的地理信息系统工程理论的基础知识，学生在广泛阅读文献的基础上，加入到老师的科研课题中，在整个课程过程中就相关研究课题进行项目的讨论，组织、实施与文档撰写，体验科学研究与地理信息工程实践相互交融的过程，加深对地理信息工程过程的理解。
  任课教师目前主要在研的课题有：
  《地理信息工程》是一门理论与实践紧密结合的课程，通过本次实践，形成了如下创新思路：
  1.工程实践与科学研究相互结合。地理信息工程中通常会面临着大量地理数据，这些数据蕴含了丰富的知识，可以用于城市规划与治理。本课程中通过带领学生阅读城市大数据分析方面的文献，并进行述评，重走他人研究的思维过程，深化了地理信息工程的应用深度。另一方面，本课程设计了地理信息微工程项目，老师和学生一起共同完成一个实践性的工程项目，合作选题，共同讨论，学生完成创意与实践部分，并将研究带入课堂之中，十四按了地理信息工程与科学研究的融合。
  2.城市地理信息工程中的地理空间数据与大数据分析、智慧城市相交叉。近年来，随着信息与通信技术的发展，城市中产生了越来越多的数据，如：遥感影像、社交媒体数据、手机定位数据等。这些新兴的数据为城市智慧应用提供了新机遇。本课程中利用这些大数据，结合政府部门中的地理信息应用，开展智慧校园、在线地图服务、室内外定位与导航等地理信息工程探索，实现了地理空间数据与大数据分析、智慧城市的深度角度，在项目中让学生体会实践地理信息工程的全周期过程。
  课堂中学生对地理信息工程的系统设计、实践与应用进行了讨论。受篇幅限制，下面以三位同学的工程实践为例，给出了地理信息工程的分析与论证过程。
  随着信息时代的发展和移动互联网时代的到来，互联网地图服务逐渐走入普通人的生活，与人们的衣食住行结合越来越紧密。如今互联网地图除了地图浏览，影像图，地址查询，路线规划等功能外，还加入了街景、路况、室内地图、景点地图等新功能，而且POI信息也越来越详细，甚至类似于黄页性质。另一方面，互联网地图的使用者也对互联网地图产生了较强的依赖性，出行导航、搜索周边信息等成为每个人必备的工具。人们可以利用在线地图查询感兴趣的地点，了解周边的状况的同时，还可以查看别人对该地点的评论或者发表评论，与朋友分享自己的位置等。当用户发现地图数据出错时，能及时可以反馈给地图服务商，使得错误信息得以快速更正。
  在使用地图的方式上，需求更加主动化，地图用户不仅仅是被动的地图浏览者还是地图设计制作的参与者；在获取地图的渠道上，需求灵活化，强调可以在网络异步、移动环境下随时随地的获取地图。技术的发展使得人们可以利用手机采集自己的数据，创建自己的专题地图，发布并分享。
  这些软件和工具都是能在线绘制个人地图，有着不同的特色，谷歌地球主要是用与浏览全球的卫星影像和三维地形，MapFab能标记地图和分享但使用并不方便，地图慧主要是用于地图展示数据，与位置结合不太紧密。由于制图软件需要下载和安装，而且和操作平台相关，不方便即来即用，所以我们开发web服务系统更容易满足用户需求。
  要实现简单的在线标记个人地图（如标记点、线、面、添加标注信息等），不需要代价太高且复杂的拓扑限制，制图输出和空间分析等功能，那么使用一般公共地图API即可满足地图标记要求。选择B/S系统是因为其只需打开浏览器就能使用，不需要安装客户端，能够跨平台，轻便易用。要实现这样的B/S系统，就需要用到动态网页技术，使用ASP.NET技术结合Ajax技术完全可以满足技术开发需求。微软的VirtualStudio2015开发工具可以在HTML5+CSS目标框架内完成网站的制作，连接SQLServer2008进行数据管理，实现系统的开发与数据管理。
  HTML5是HTML最新的修订版本，2014年10月由万维网联盟（W3C）完成标准制定，目前仍出于完善之中。大多数现代浏览器如火狐浏览器、谷歌浏览器、IE9以上版本浏览器等都具备了某些HTML5支持。HTML5的设计是为了在移动设备上支持多媒体，并赋予网页更好的意义和结构。HTML5中的一些有趣的新特性：用于绘画的canvas元素；用于媒介回放的video和audio元素；对本地离线存储的更好的支持；新的特殊内容元素，比如article、footer、header、nav、section；新的表单控件，比如calendar、date、time、email、url、search。
  JavaScript是一种基于对象（Object）和事件驱动（EventDriven）、并具有安全性能的脚本语言。它用于实现某种特殊的功能，既可以运行在服务器端，又可以运行在浏览器端。使用它的目的是和HTML和CSS一起实现一个Web页面中链接多个对象，并与客户端进行交互的作用。ASP.NET是.NETFrameWork的一部分，是一项微软公司的技术，是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术，它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。ActiveServerPages（动态服务器页面），是运行于IIS（InternetInformationServer服务，是Windows开发的Web服务器）之中的程序。
  Ajax的全称是AsynchronousJavaScriptandXML,中文定义为“异步JavaScript和XML”，它是Web2.0技术的核心，由多种技术组合而成。使用Ajax技术不必刷新整个页面，只需对页面的局部进行更新，可以节省网络带宽，提高网页加载速度，从而缩短用户等待时间，改善用户体验。Ajax技术主要包括：客户端脚本语言JavaScript、异步数据获取技术XMLHttpRequest、数据互换和操作技术XML和XSLT、动态显示和交互技术DOM及基于标准的表示技术XHTML和CSS等。Ajax极大的发掘了Web浏览器的潜力，开启了大量的可能性，从而有效地改善了用户操作体验。Ajax用于WebGIS主要可以完成以下功能：利用Ajax进行地图的动态更新；访问Web服务；利用Ajax进行属性操作的异步查询和结果处理；完成验证；动态加载列表框等页面控件中的内容；显示符合实际情况的地图下载或操作进度条；创建工具提示；提供表单自动完成等等。
  用例图图2所示。
  点类型一种是Marker，可以用图标标记某个地点的位置，也可以加上InfoWindow展示更多信息，如图片，文字，或者超链接等。另一种点类型是地理闹钟，首先选择一个地点，然后以该点为中心在一定距离建立缓冲区，当根据定位进入该点缓冲区范围内时可发出提醒，判断用户是否接近该位置。
  线类型和面类型都是几何图形，可以根据线的颜色、透明度、和宽度等表达出丰富的显示效果，面类型还有填充色和填充透明度，它们用于标记线状标记和面状标记。面状标记中一种特殊类型是地理围栏，用户可以划定范围，当定位移出该范围时发出提醒。
  本系统使用SQLServer2008进行数据管理，主要存储用户信息和地图数据。数据库中有两张表，用户信息表和地图标记数据表。
  用户信息表用于存储用户信息，用户名为主键，作为登录账号。
  用户名必须唯一，因此以用户名为主键，其存储类型为可变字符，最大长度限制为50。密码不存储明文，而是用MD5加密后存储生成的哈希值，其长度固定，所以密码设可变字符，最大长度为50。性别存储“男”和“女”，两个字符即可。邮箱用文本格式存储，城市用Unicode可变字符存储。头像是图片格式，数据较大，所以数据库中不直接存储，而是存图片所在的路径，当使用时根据路径添加头像。
  地图矢量图形和属性数据较为复杂，表格方式不易存储，由于本系统标记仅为图形和图标，所以地图数据用字符串存储，再通过解析字符串输出地图数据。地图标记数据表如下。
  MD5为计算机安全领域广泛使用的一种散列函数，用以提供消息的完整性保护。该散列算法输入两个不同的明文不会得到相同的输出值，根据输出值，不能得到原始的明文，即其过程不可逆，因此能有效访问明文密码泄露。通过MD5加密函数对用户密码加密，存入数据库的密码实际上是一个哈希值。当用户登录时，再把输入密码转换为加密的哈希值与数据库密码进行比对，比对一致则成功登录。
  SQL注入式攻击是指利用SQL语句上的设计漏洞，在目标服务器上运行SQL语句命令以及其他方式的攻击。为防止SQL注入攻击，通常使用ADO.NET技术中的Sqlcommand.Parameters属性传参的方法将非法字符单引号“’”过滤掉，这样SQL语句就不起作用了。
  注册新用户需要填写一些资料信息。
  是否可用。为用户名输入框添加TextChange事件，判断输入名称格式是否正确以及用户名是否已经在数据库中存在。
  （3）密码输入需要进行再次确认，这里利用ASP.NET中的RequireFieldValidator控件进行验证两次输入是否一致。在密码存入数据库前需要对其进行MD5加密。
  （4）用户所在城市根据使用高德地图API获取定位城市。
  地图标记页面使用到了一些地图插件，有工具条：这里为了界面简洁仅使用短工具条，只要地图放大、缩小和定位功能；尺度条：在左下角显示地图比例尺；浏览器定位插件：自动获取用户位置，并根据位置和精度初始化地图显示范围；输入提示和搜索插件：用于搜索和定位到某个地点，方便用户查找某个位置；地理编码插件：根据用户点击地图的经纬度获得地址信息，在属性栏中显示；鼠标工具插件:用于画线和面、量侧距离和面积。
  属性栏显示当前操作状态，如定位成功信息、点击地图的经纬度和地址、目前工具等。
  属性栏中的操作框可以设置线和面的颜色透明度等属性。通过隐藏按钮可以控制属性栏的显示和隐藏，减少界面位置占用。
  标记完成的地图可以设置地图访问密码，限制别人浏览自己的地图。
  《地理信息工程》介绍地理信息工程的系统分析、总体设计、功能设计等流程，以及具体工程项目的实践，注重基本概念、流程和实验验证的教学，并强调地理信息工程设计、管理理论及其实践的能力培养。围绕地理空间信息工程学术前沿问题及相关的科研课题组织教学，同时让学生们结合相应课题，通过文献调研、项目设计及实践等多种手段，探讨分析问题和解决问题的途径和方法，撰写研究报告，并通过制作PPT和课堂报告的形式进行汇报。在教学中提倡学生们积极提问和讨论，通过实践培养学生的文献阅读能力、科研思维能力、科研实践能力以及创新意识。
  教学活动包括以下几个部分：
  老师讲授：由老师讲授地理信息工程的生命周期及关键步骤。
  师生共同设计：根据学生的研究方向，老师和学生共同讨论，为学生设计一些小型地理信息工程实践项目。
  学生讨论实践：学生在课下和课堂上进行讨论，解决工程实践中的大数据分析方法、技术路线和项目管理中的若干问题，并实际完成该项目。
  项目成果汇报：由同学独立完成。要求每个同学做PPT并进行课堂汇报，老师同学参与问题讨论，最后撰写课程报告。这个过程中，调动了每个同学的积极性，锻炼了同学自主学习的能力。
  总体而言，本课程的教学探索达到了Seminiar课程设置时的教学要求。从同学们反馈的心得来看，大家在这个课程中都得到了一定程度的锻炼与提高。本学年的课程通过Seminiar教学取得了较好的教学效果，希望这种好的教学模式，有机会延续下去。
  本项目研究是在课堂教学的基础上，以学术和项目专题研究方式的形式，具体通过老师和学生的指导及讨论，让学生们以小组形式经过研究分析，包括地理信息工程调研、文献资料分析和综合、地理信息工程设计、组织以及实施等，然后撰写某个地理信息工程研究报告。通过主题发言，组织全班学生参加讨论，培养学生创新意识和科研能力的一种教学模式。该内容具有科学研究性、学习自主性和团队合作性，培养学生从事课题研究和项目组织的高级能力和创新思维，最终实现培养优秀地理信息与智慧城市专业人才的目的。实验教学中采取文献分析、科研讨论和项目实践方式进行。
  具体的，教学活动安排如下：
  （1）老师讲授：由老师讲授地理信息工程的系统分析、概要设计、详细设计和质量控制等步骤，明确地理信息工程实践的关键环节。
  （2）项目选题：根据学生的研究方向，结合城市大数据和智慧城市发展，老师和学生共同讨论，为学生设计一个小型地理信息工程实践项目。
  （3）地理信息工程实践：学生在课下和课堂上进行讨论，完成本人或者小组项目中的主要设计与实践过程，撰写项目文档，并相互协作解决工程实践中的大数据分析方法、技术路线和项目管理中的若干问题。
  （4）工程成果汇报：在学期末，要求每个同学做PPT并进行课堂汇报，其他同学和老师模拟项目验收人员角色，进行提问，锻炼学生理解地理信息工程的能力。最后，由学生撰写课程报告。
  在课堂中，结合空间大数据、地理信息工程、智慧校园和智慧城市等论题，组织了多次科研讨论。学生查找资料，汇总资料，并根据课程内容进行发挥，通过科研讨论，进一步解决模拟科研项目中的问题。
  第一次讨论：地理信息工程的变革与前沿发展。学生通过文献分析和资料查阅，了解当前智慧城市中的地理信息工程的内容及要求，并做课堂分享。
  第二次讨论：城市地理信息工程的需求分析过程。学生以微型地理信息工程项目为例，模拟项目需求分析过程，梳理项目用户的需求，并做课程汇报，与其他同学以及老师一起完成深度讨论，丰富需求分析的内容。
  和实践过程，总结本人在项目实践中的闪光点和不足之处，提出可持续改进的思路，从而体会地理信息工程的全过程，并结合现在流行的大数据技术，提升工程的智能程度。
  涂老师的这门课主要讲解了GIS软件工程方面的内容，包括软件开发的方法、模型和流程。一个完整的GIS系统有一套流程要做，需求分析、可行性分析、概要设计、详细设计、编码实现、软件测试、部署实施等。通过这门课程我们了解到软件开发不仅仅是写代码，管理也是十分重要的，要想做出一个好的系统，必须有整体上的规划，做好预算，与需求方做好沟通等。另外涂老师也给我们分析了以后可能的就业方向，GIS开发的工作内容。因为以后去GIS类的公司工作大部分可能是做软件开发，所以学好此课程十分重要。
  《地理新信息工程》这门课让我收获了很多关于软件工程的理论和实践指导。首先，老师很系统的讲解了这门课程所涉及的理论基础，并由浅入深的讲解了地理信息系统工程中的软件设计内容，例如一个地理信息系统工程要从需求、设计、实施总体来考虑，然后再逐一解决问题且不断的改进；其次，老师在理论的基础上也加上了他个人的地理信息工程开发经验，很详细的分析了去理论基础上的实际软件开发情况，让我们对理论有了更加深刻的认知；最后，老师也对以后有志于从事该行业的同学提供了一些非常好的个人意见和行业分析。总而言之，这门课让我在理论和实践上都得到了很多。
  作为地理信息与智慧城市专业的学生，《地理信息工程》这一门课对我们的专业学习十分重要，很高兴能在涂老师的引导下进行课程的学习。通过这门课程，我们对地理信息工程项目的分析、设计、实施、管理等有了较为全面的了解，并且通过课程作业对一个工程项目的整个过程进行实践，这对我们以后的就业很有帮助。
  涂老师的《地理信息工程》是我们专业十分重要的一门课程。通过课程的学习，我们对地理信息工程项目的方法和流程有了一定的了解，并且在课程作业中进行实践，不仅收获了从项目分析设计到项目实施管理的专业技能，也培养了团队协作能力。