论文部分内容阅读
随着地理信息系统(GIS, Geographic Information System)的不断发展,组件式GIS已逐渐成为了一种趋势。将GIS功能进行适当的抽象,以组件的形式提供给用户,具有小巧灵活、可直接嵌入MIS开发工具、功能强大和开发简捷等优势。本文对当前GIS行业国内外各大公司的几款主要GIS组件产品进行了一定的比较分析,得出了它们的一些局限性。接着介绍了微软最新的Web前端应用程序开发解决方案Silverlight,阐述了Silverlight技术应用在GIS领域所特有的优势。随后文章着重介绍了采用Silverlight 3.0开发GIS组件的主要设计原理及设计实现。整个组件分为三个子程序集, SilverlightMapSuiteCore.dll、SilverlightEdition.dll和SilverlightMapConnector.dll。SilverlightMapSuiteCore程序集是地图渲染的核心部分。它支持访问包括ESRI公司的Shape文件、Oracle Spatial数据库等众多主流空间信息数据源。并通过引入图层类Layer、比例级别类ZoomLevel以及绘图样式类Style等一系列对象,将地图渲染绘图分成了不同的层次,增强了灵活性及可扩展性。SilverlightEdition模块是对底层模块SilverlightMapSuiteCore的进一步封装,它通过调用SilverlightMapSuiteCore提供的程序接口,实现了地图控件Map、地图工具MapTool以及图层组Overlay等多个对象。这些对象的设计原则是将底层接口调用的的复杂性隐藏在自身方法内部,对外则暴露简单的程序接口,使得用户使用起来十分简捷。SilverlightMapConnector则是为了解决客户端与服务器端的通信问题而设计的,它里面主要是实现了一个HttpHandler类,用来监听并处理客户端发送的WMS图片请求。所有的三个子组件的类的设计都十分灵活,用户可以很方便地通过继承和重写方法实现新的功能,最后文章还列举了一套基于该组件开发的车辆监控系统,方便具有类似需求的用户进行借鉴。