一种基于开源项目的互联网地图应用开发平台制造技术

技术编号:15704899 阅读:78 留言:0更新日期:2017-06-26 10:19
本发明专利技术公开了一种基于开源项目的互联网地图应用开发平台,涉及互联网地图服务、应用、软件研发技术领域。该地图应用开发平台,采用面向对象的编程设计思想,将GIS专业语言转化为普通的互联网软件开发语言,基于开源的Openlayers前端地图渲染引擎,封装了33个地图基础类及25个空间分析接口,封装的类、方法等接口简单易懂,支持OGC标准地图数据、地图服务,具有前端空间分析功能。解决了非GIS专业开发人员开发互联网地图应用时学习成本高、不能灵活接入标准地图服务及地图数据等问题。

【技术实现步骤摘要】
一种基于开源项目的互联网地图应用开发平台
本专利技术涉及互联网地图服务、应用、软件研发
,尤其涉及一种基于开源项目的互联网地图应用开发平台。
技术介绍
随着互联网的迅速发展,WebGIS应运而生,电子地图成为人们生活中不可或缺的一部分。使用电子地图进行导航定位、将各种数据进行地图可视化展示、使用地图数据分析辅助决策是地图应用开发中最多的需求。目前,各个地图软件服务厂商纷纷推出自己的地图开发API,互联网地图应用开发主要是基于各大地理信息软件服务厂商的WebGIS应用开发API或者SDK,但是其技术体系复杂、非开源,对于非GIS专业的研发人员来说,学习难度大、开发成本高,且空间分析功能需要配合昂贵的后台软件。虽然行业内已经有百度、高德等互联网地图开发SDK,但它们存在着非开源难调试、不能对接标准数据、没有空间分析功能等问题。所以,一款使用简单、功能强大的地图开发API,将会给非GIS专业的开发人员快速搭建地图应用提供便利。
技术实现思路
本专利技术的目的在于提供一种基于开源项目的互联网地图应用开发平台,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术采用的技术方案如下:一种基于开源项目的互联网地图应用开发平台,包括:地图开发类库,基于开源项目OpenLayers开发,以其源代码作为基础底层,使用面向对象的编程思想封装上层类和方法,使用JavaScript语言编写,用于在网页前端渲染和展示地图;参考文档,根据所述地图开发类库中规定的代码编写及注释规范,使用JSDoc从源代码中批量生成,用于解释和说明所述地图开发类库中类、属性和方法;示例页面,使用打包好的所述地图开发类库制作,可在线编辑调试,涵盖了所述地图开发类库中所有的类和方法,用于开发者在开发时进行参考使用。优选地,所述地图开发类库用于在网页前端渲染和展示地图,具体包括:叠加图层、在地图上添加覆盖物;为所述图层和覆盖物绑定事件;在地图页面显示控件;通过接口测量距离、测量面积;按空间形状、关键字检索POI信息;进行空间分析。优选地,所述图层包括矢量图层和栅格瓦片图层;所述覆盖物包括点、线、面和信息窗口;所述事件包括点击和鼠标操作;所述控件包括右键菜单、比例尺、鹰眼、城市切换、导航、标绘和定位;所述空间分析包括空间叠置、转换和计算。优选地,所述空间分析采用如下步骤实施:步骤一,将所述地图开发类库中的地图要素对象转换为标准的GeoJosn对象;步骤二,使用Turf.js的分析方法对步骤一中的标准GeoJson对象进行空间分析操作,分析结果是GeoJson对象;步骤三,将步骤二所述GeoJson分析结果转换为所述地图开发类库中的对象,并在地图中进行展示。优选地,所述参考文档,使用JSDoc从源代码中批量生成,具体为:基于开源的自动化文档生成工具JSDoc,对其源码中的文档模板按照文档的美观性展示要求进行修改,对所述地图开发类库源码进行标准化注释,批量生成。优选地,所述参考文档,用于解释和说明所述地图开发类库中类、属性和方法,具体为,在所述参考文档的页面中列出所有类的列表,对每个类的属性、方法、和方法参数进行详细说明和描述,将类名和方法名作为用于跳转查阅的链接。优选地,所述示例页面,包括地图、覆盖物、信息窗口、地图控件、鼠标操作、事件绑定、检索、定位、图层叠加、右键菜单和空间分析的示例。优选地,所述示例页面,包括33类88个示例。优选地,所述示例页面,使用Codemirror技术在页面中创建源代码编辑器,同时展示代码运行效果。本专利技术的有益效果是:本专利技术实施例提供的基于开源项目的互联网地图应用开发平台,采用面向对象的编程设计思想,将GIS专业语言转化为普通的互联网软件开发语言,基于开源的Openlayers前端地图渲染引擎,封装了33个地图基础类及25个空间分析接口,封装的类、方法等接口简单易懂,支持OGC标准地图数据、地图服务,具有前端空间分析功能。解决了非GIS专业开发人员开发互联网地图应用时学习成本高、不能灵活接入标准地图服务及地图数据等问题。附图说明图1是基于开源项目的互联网地图应用开发平台的组成部分及实现方式示意图;图2是源码结构示意图;图3是缓冲分析的示例效果图;图4是缓冲分析的示例效果图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,本专利技术实施例提供了一种基于开源项目的互联网地图应用开发平台,包括:地图开发类库,基于开源项目OpenLayers开发,以其源代码作为基础底层,使用面向对象的编程思想封装上层类和方法,使用JavaScript语言编写,用于在网页前端渲染和展示地图;参考文档,根据所述地图开发类库中规定的代码编写及注释规范,使用JSDoc从源代码中批量生成,用于解释和说明所述地图开发类库中类、属性和方法;示例页面,使用打包好的所述地图开发类库制作,可在线编辑调试,涵盖了所述地图开发类库中所有的类和方法,用于开发者在开发时进行参考使用。在实际操作过程中,地图开发类库基于开源项目OpenLayers开发,以其源代码作为基础底层,使用面向对象的编程思想封装上层类和方法。例如,对ol.Map类作为内部对象封装BigMap.Map类;将ol.Feature及ol.Overlay统一封装为BigMap.Overlay类,只在类库内部区分;将ol.map.layer.source等复杂的对象属性关系简化为BigMap.Map.Layer,从而简化了开发人员对地图对象的理解和使用。同时,本专利技术实施例中严格定义了代码编写及注释的规范,从而提高了源代码的可读性和可维护性。其中,地图开发类库的开发过程具体可以采用如下方法进行实施:1、使用prototype对象定义类的属性和方法,例如,BigMap.Map.prototype.addLayer定义Map对象添加图层的方法。2、使用开源项目GoogleClosureLibrary定义类的继承及依赖关系,在每个类的定义前需要声明类的所属命名空间及所依赖的类,例如,在Marker类的定义前添加语句goog.provide('BigMap.Marker');goog.require('ol.Feature');声明该类属于BigMap命名空间并依赖于ol.Feature类。3、代码注释采用YUIDoc注释规范,用于声明一个代码块中编写的是什么内容。例如下面的注释语句说明该代码块定义了Marker类的setAnimation方法,用于设置Marker的动画效果。‘@param’是一个标签,声明方法的参数是什么类型及参数的意义。在这里,setAnimation需要一个String类型的参数指明Marker进行的动画类型是什么。类库编写完成后,为了方便前端网页调用,使用GoogleClosureLibrary为源代码构建依赖并压缩打包,操作如下:1、编写Python脚本构建类库的依赖关系closure-library/closure/bin/build/depswriter.py-root_with_prefix="BigMap/BigMap../../../BigMap本文档来自技高网...
一种基于开源项目的互联网地图应用开发平台

【技术保护点】
一种基于开源项目的互联网地图应用开发平台,其特征在于,包括:地图开发类库,基于开源项目OpenLayers开发,以其源代码作为基础底层,使用面向对象的编程思想封装上层类和方法,使用JavaScript语言编写,用于在网页前端渲染和展示地图;参考文档,根据所述地图开发类库中规定的代码编写及注释规范,使用JSDoc从源代码中批量生成,用于解释和说明所述地图开发类库中类、属性和方法;示例页面,使用打包好的所述地图开发类库制作,可在线编辑调试,涵盖了所述地图开发类库中所有的类和方法,用于开发者在开发时进行参考使用。

【技术特征摘要】
1.一种基于开源项目的互联网地图应用开发平台,其特征在于,包括:地图开发类库,基于开源项目OpenLayers开发,以其源代码作为基础底层,使用面向对象的编程思想封装上层类和方法,使用JavaScript语言编写,用于在网页前端渲染和展示地图;参考文档,根据所述地图开发类库中规定的代码编写及注释规范,使用JSDoc从源代码中批量生成,用于解释和说明所述地图开发类库中类、属性和方法;示例页面,使用打包好的所述地图开发类库制作,可在线编辑调试,涵盖了所述地图开发类库中所有的类和方法,用于开发者在开发时进行参考使用。2.根据权利要求1所述的基于开源项目的互联网地图应用开发平台,其特征在于,所述地图开发类库用于在网页前端渲染和展示地图,具体包括:叠加图层、在地图上添加覆盖物;为所述图层和覆盖物绑定事件;在地图页面显示控件;通过接口测量距离、测量面积;按空间形状、关键字检索POI信息;进行空间分析。3.根据权利要求2所述的基于开源项目的互联网地图应用开发平台,其特征在于,所述图层包括矢量图层和栅格瓦片图层;所述覆盖物包括点、线、面和信息窗口;所述事件包括点击和鼠标操作;所述控件包括右键菜单、比例尺、鹰眼、城市切换、导航、标绘和定位;所述空间分析包括空间叠置、转换和计算。4.根据权利要求2所述的基于开源项目的互联网地图应用开发平台,其特征在于,所述空间分析采用如下步骤实施:步骤一,将所述地图开发类库中的地图要素对象转换为标准的Geo...

【专利技术属性】
技术研发人员:岳湑爽张林王宝刚白雨川李斌
申请(专利权)人:北京大地图科技有限公司
类型:发明
国别省市:北京,11

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1