【PHP开源代码栏目提醒】:网学会员PHP开源代码为您提供【精品文档】-一种基于MapServer的KML地理信息网络服务实现方法 - 综合课件参考,解决您在【精品文档】-一种基于MapServer的KML地理信息网络服务实现方法 - 综合课件学习中工作中的难题,参考学习。
文章编号:04942091120091220053204中图分类号:P208 文献标识码:B一种基于MapServer的KML地理信息网络服务实现方法孙 伟马照亭张成成李成名中国测绘科学研究院北京100039AMethodofKMLGeograpicInformationWebServiceBasedonMapServerOpenSourceSUNWeiMAZhaotingZHANGChengchengLIChengming摘要:在深入分析KML文件组织、MapServerOGC服务输出架构的基础上提出一种基于开源软件MapServer的KML地理信息服务方法。
通过对MapServer的MapScript开发接口进行扩展实现根据请求将指定地理空间数据发布成KML数据的服务。
将用户空间数据以标准地理信息服务的方式完成网络发布可以方便地在GoogleEarth中加载、浏览
查询多源、异构的地理空间数据扩展GoogleEarth的数据源提高地理信息的共享水平。
关键词:MapServerKML地理信息网络服务GoogleEarth 收稿日期:2009202216基金项目:地理空间信息工程国家测绘局重点实验室经费资助项目200603作者简介:孙 伟1983—男山东泰安人硕士生主要研究方向为数字城市、WebGIS应用及三维GIS。
一、引 言GoogleEarth是目前较为流行的地理信息网络应用系统它免费提供覆盖全球的高分辨率地形、影像和大量路网、各类兴趣点数据并允许用户加载自己的地标数据。
GoogleEarth以其创意巧妙、功能强大、操作简捷从而在全球拥有上亿的用户群体极大地推动了地理信息产业的发展。
KMLkeyholemarkuplanguage是GoogleEarth的数据交换格式是GoogleEarth加载第三方数据的标准格式。
目前KML格式已经成为开放地理信息系统协会OpenGISConsortiumOGC的标准1主流GIS软件厂商也正在陆续推出各自的空间数据向KML文件的转换工具。
但这种基于文件格式转换的数据共享方式要求用户拥有专业的GIS软件难以满足GoogleEarth用户共享已有空间数据的强烈需求。
基于商业利益考虑Google公司将定制发布第三方数据的功能集成到了收费的Enter2prise版服务器端ESRI公司也在其商业化产品Arc2GISServer中实现了将本软件支持的地理数据发布成KML的功能KMLService。
KMLService是一种将地理空间数据动态转换为KML数据的地理信息网络服务方式是类似于WFSwebfeatureser2vice的矢量地理信息服务方式。
互联网上的GoogleEarth用户引用KMLService后可以方便地使用现有的多源、异构地理信息数据而不需要关心数据的维护与更新。
鉴于目前提供的KMLServ2ice都是商业付费产品本文采用开源技术基于开源
网络地理信息软件MapServer2提出了KML网络服务的方法并实现了原型系统。
实验证明基于开源软件扩展的KMLService可以起到以KML形式发布现有地理信息数据的作用方便了GoogleEarth用户对地理信息的共享。
二、相关技术分析1.KML文件KML是一种基于XML语法与格式的文件用来描述与保存GoogleEarth中所有的地理信息类型如点、线、面、影像数据、视频图片、三维模型等3。
用来表现二维地理信息数据实体的KML类型包括:1地标Placemark:可以包含点Point、线LineString与面Polygon实体用来描述几何图形对应二维矢量数据中的点、线、面。
2地面叠加层GroundOverlay:用于在GoogleEarth的地形上“叠加”图像增加自定义的栅格数据就是通过形成一个GroundOverlay对象来表现的。
3网络链接NetworkLink:用于加载文件且352009年 第12期 孙 伟等:一种基于MapServer的KML地理信息网络服务实现方法?? 1994-2011 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net带有〈href〉超链接引用的〈Link〉元素指定的文件可以是本地或远程服务器上的文件同样也可以是一个动态生成KML文件的Web服务通过它也就实现了客户端和KML服务器相互通信的接口。
4几何图形样式Style:用来定义几何图形的显示方式通过声明一个Style可以控制指定的二维矢量数据的渲染方案如线型、线宽和填充颜色等。
2.MapServer体系结构MapServer是一套用来构建空间网络应用的开源
软件MapServer本身专注于地图绘制、地图符号样式、接口环境、兼容OGC互操作规范等方面通过引入知名的开放
源代码的软件完成其他功能。
使用GDAL、MapServer可以直接访问多个空间数据库和多种格式的地图文件包括矢量类型和栅格类型避免了不同数据格式转换所造成的信息丢失。
使用Proj4、MapServer支持动态的地图投影转换等。
图1是MapServer网站开发
文档中给出的MapServer的体系结构图。
图1 MapServer应用程序的体系结构图2MapServer当前的稳定版本为5.2不支持KML的输出。
MapServer使用Mapfile文件来配置管理待发布的空间数据支持WMS、WFS、WCS等OGC服务输出并且可以使用
PHP