通过第一部分的学习,已初步了解了电子海图及电子海图系统。但怎么开发,我们还需要了解更多的细节,尤其是IHO有关电子海图的标准的细节。学习相关标准最好的方法是学习其原始文件,这绝大部分都能从IHO官网免费获取。但可能受限于复杂的标准文件、以及读者的时间精力或英文能力,大部分读者可能无法完整系统的阅读完相关标准的原始文件。本部分内容将带领读者从海图解析-->海图显示-->功能完善的步骤,边了解标准细节边用编程语言将其实现,最终完成开发。
本部分的编程语言为C# 5.0 (读做 "C sharp"),C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言,它在继承C和C++强大功能的同时去掉了一些它们的复杂特性。有过一定计算机语言基础的人通过了解C#语法就能快速上手,开发相应的软件。据笔者了解,市面上流行的电子海图系统都是用C/C++开发的,C/C++程序的高效运行,当然对大规模电子海图动态加载以及实时渲染有帮助。但此书作为电子海图系统入门级教程,C/C++的语言门槛相对较高;其次,实践中一个较大的港口最多一百张海图不到,经笔者测试,C#开发的程序运行在家用计算机上足以应付某个港口电子海图的动态加载及实时渲染。如果你的程序规模已经发展到需要变更语言来提高效率,到时再切换也不迟。
过早优化是万恶之源 (Premature optimization is the root of all evil )
-- Donald Knuth
通过本部分的学习,开发出来的程序,可以达到如下:
本部分用的电子海图都是从NOAA免费下载的,通过本书的学习,我们将开发一个具有基本的海图浏览功能及航海问题的求解的功能的电子海图系统。这些功能虽然离标准化的电子海图系统还差十万八千里,但作为电子海图开发的入门,相信已足够。