基于Google Earth的农田信息监测系统设计

2016-05-14 22:40钟泽宇肖舒裴
数字技术与应用 2016年7期
关键词:数据库

钟泽宇 肖舒裴

摘要:精细化农业是世界农业现代化的发展方向。为推进我国精细化农业的发展,本文针对我国精细化农业的现状,设计开发了基于Google Earth的农田信息监测系统。该系统利用获得的经纬度信息,并引入Google Earth组件,二次开发可视化电子地图;构建监测数据查询分析模块,从而实时监测土壤墒情及农田温湿度的空间分布,实现对农田信息的监测与管理。

关键词:Google Earth KML 数据库 农田监测

中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2016)07-0146-01

1 引言

精细化农业是农业现代化的发展方向,准确、及时与可靠地获取农田气候、土壤特性等信息是实现精细化农业的基础[1]。传统农田信息监测方法中,工作人员孤立地利用各种测量仪表在现场逐项进行数据采集。采集的农田属性和地理环境信息记录在专用文本上,信息的采集量受仪表存储器容量的限制。本文针对我国传统农田信息监测方法存储农田信息数据量小及后期分析困难的缺点,设计开发了基于Google Earth的农田信息监测系统。该系统引入Google Earth组件,二次开发可视化电子地图,实时监测土壤墒情及农田温湿度的空间分布,实现对农田信息的监测与管理。

2 基于Google Earth的地理位置信息显示

2.1 Google Earth简介

Google Earth是在地理信息系统的基础上发展而来的庞大的地理信息数据库。它将卫星图像、航空测绘图像和地理信息系统布置在一个地球的三维模型上,能够实时地为用户提供所观察区域的多角度高清晰的卫星图像、地貌地形、街景视图等[2]。Google Earth的电子地图蕴含着丰富的地理数据信息,可以实现实时呈现经纬度、海拔高度等信息,并且开放了二次开发接口[3]。随着Google Earth COM API的发布,Google Earth在越来越多的领域得到了广泛的应用。

2.2 KML简介

KML是Keyhole Markup Language的简称,是一种基于XML(可扩展标记语言)的在Google Earth中用于交换地理数据的文件,具体可用来描述和保存地理数据、为指定地点作图表和注记以及为每一个地理特征创建不同的视角等。作为一种多功能的地理数据文件格式,KML可用于定义的地理特征包括地点、描述、叠层、路径和多边形等,并可将图片、模型等各种农田信息在Google Earth客户端中完整的呈现。

2.3 基于Google Earth COM API的开发

Google Earth COM API是目前针对Google Earth的一种开放方式。基于COM API的开发方式主要针对Google Earth的视角和动态效果,是可以独立加载的二进制程序。本文所开发的农田信息监测系统利用第三方可视化编程工具Visual Studio 2013,调用COM API函数及用户自定义的方法,架构应用程序。COM技术其对象本身不对外开放,只设置若干个对外开放的接口以供外部程序调用。

2.4 Google Earth的启动、窗口嵌入及关闭

2.4.1 Google Earth客户端的启动

IApplicationGE是进入到Google Earth最主要的类,外部应用程序对Google Earth的操作,大部分都需要直接或间接地通过该类来实现,是基于Google Earth COM API进行程序开发的基础。

Google Earth com API 中主要类的用途有:其成员函数GetCamera ()返回Google Earth的当前视角;SetCamra()以参数指定的速度飞到指定的视角。OpenKmlFile()和LoadKmlData()分别是加载一个KML文件和相应KML数据流的函数;GetFeatureBy-Name()则用来获取参数指定Name的特征值。

2.4.2 Google Earth客户端的窗口嵌入

Google Earth作为一个独立的软件运行,需要将其嵌入农田信息检测系统使其作为整体运行,实现农田的地理位置关联与显示。可利用IApplicationGE类中提供的函数GetMainHwnd()和GetRenderHwnd()获取Google Earth客户端主窗口以及地图窗口句柄,在MFC中对这两个窗口句柄进行相应操作即可完成Google Earth地图窗口在农田信息检测系统中的嵌入。实现Google Earth窗口嵌入的流程图如图1所示。

2.4.3 Google Earth客户端的关闭

由于Google Earth客户端独立于农田信息检测系统运行,用户在关闭农田信息检测系统窗口后并没有关闭Google Earth客户端。因此需要在Visual Studio中编写相应代码使其完全关闭。可在农田信息检测系统运行窗口关闭时,向Google Earth组件发送关闭命令,并释放资源,以达到完全关闭的目的。

3 基于SQL Server数据库的农田信息存储与处理

3.1 数据库简介

数据库作为存储与管理数据的平台,具体可以实现以下几点功能:(1)结构化存储数据;(2)实现数据共享;(3)减少数据的冗余度;(4)保护数据完整性;(5)数据集中控制;(6)并发控制。

3.2 基于SQL Server数据库的农田信息存储与处理

要实现访问操作,首先要建立农田信息检测系统平台与数据库之间的连接,具体操作如下:

(1)配置数据源。本系统在程序中根据用户选择动态配置数据源而不调用ODBC数据源管理器以简化开发过程。配置SQL Server数据源时,必须具备SQL Server服务器名和服务器中的目标数据库名。可通过ODBC API中的SQLBrowseConnect()函数得到本地所有的SQL Server服务器、库、语言信息等。

(2)与数据源建立连接。ODBC API中的SQLConnect()函数用于对给定参数直接建立与数据源的连接;SQLDriverConnect()函数用于给定部分连接参数时与数据源的连接,并弹出数据源浏览窗口与用户交互,获得足够的参数后建立与数据源的连接的情况;而SQLBrowseConnect()函数是通过迭代获取连结参数后再进行连接[6]。

(3)对数据库进行存取和查询操作。与数据源建立连接后,用户即可在农田信息检测系统界面调用数据库中的经度、纬度、温湿度等数据并对其进行更新操作。

4 Google Earth在农田信息管理系统中的运行结果

将程序编译及运行,测试上述功能的运行情况。该系统可实现监测指定经纬度农田土壤水分、环境温湿度的空间分布的功能。运行结果如图2所示:

5 结语

本系统利用Google Earth二次开发技术并结合KML语言,通过Visual C++将其应用于农田信息监测之中,为精细化农业实时监测土壤墒情及农田温湿度的空间分布提供了一种解决方案。

参考文献

[1]刘龙申,沈明霞,孙玉文,陆明洲,熊迎军.基于FPGA的农田图像采集与GPRS无线传输系统设计[J].农业机械学报,2011,42(12):186-190.

[2]Google,Inc.Google Earth COM API Documentation.2009.

[3]李就好,罗锡文,赵新.基于GPS和GIS的旱情监测系统与应用[J].农机化研究,2004,(6):218-220.

猜你喜欢
数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库