CN109670011A - 一种多图源地图服务引擎 - Google Patents

一种多图源地图服务引擎 Download PDF

Info

Publication number
CN109670011A
CN109670011A CN201811650468.XA CN201811650468A CN109670011A CN 109670011 A CN109670011 A CN 109670011A CN 201811650468 A CN201811650468 A CN 201811650468A CN 109670011 A CN109670011 A CN 109670011A
Authority
CN
China
Prior art keywords
developer
coordinate
configuration
parameter
map
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811650468.XA
Other languages
English (en)
Other versions
CN109670011B (zh
Inventor
张宏利
陈德兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Jingyi Information Technology Co ltd
Original Assignee
Aerospace Jingyi Guangdong Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aerospace Jingyi Guangdong Information Technology Co ltd filed Critical Aerospace Jingyi Guangdong Information Technology Co ltd
Priority to CN201811650468.XA priority Critical patent/CN109670011B/zh
Publication of CN109670011A publication Critical patent/CN109670011A/zh
Application granted granted Critical
Publication of CN109670011B publication Critical patent/CN109670011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开一种多图源地图服务引擎,包括:一中控对象,用于接收开发者的配置或指令,根据所接收的配置或指令,调度或控制引擎内模块集完成特定功能或操作;一引擎内模块集,包括一个用于解析配置参数的配置解析系统和数个供中控对象调度共同完成所有指令的模块。中控对象执行每个指令时经由配置解析系统解析指令中的配置参数生成各种底层的类,再由中控对象根据配置参数调度这些创建的底层类协同完成指令。本发明通过引擎内模块集将原本要靠编写大量代码并人为控制过程的应用场景以语义化提供参数接口给开发者,简化开发过程,降低了开发难度。

Description

一种多图源地图服务引擎
技术领域
本发明涉及地图引擎开发领域,特别涉及一种多图源地图服务引擎。
背景技术
目前Openlayers、超图客户端引擎的对象类设计难以在引擎内部实现多图源机制。此类引擎提供的类琳琅满目,所有都是对开发者公开的,每个类都是高内聚低耦合的,而开发者利用这些单元性的类去完成具体业务时则需要耦合他们,组合起来有序完成某个指令,如在地图上画一个半透明圆至少要调用五个以上的类以及按一定程序逻辑顺序去调用各个类的方法,它的优点是明显的,颗粒度细意味着可能性多,能满足的需求多,缺点是明显的复杂度高效率低。如果依靠开发者调用颗粒度细小的各种类的各种函数,不仅复杂,且这个闭环过程是靠业务编程中实现的,也就是这个技术性的代码与开发者需要实现的其他业务性的功能代码大量的交织在一起。而要避免这一情况,则要牺牲部分灵活性,增强高效简易性。
发明内容
本发明的主要目的是提出一种多图源地图服务引擎,旨在克服以上问题。
为实现上述目的,本发明提出的一种多图源地图服务引擎,包括:
一中控对象,用于接收开发者的配置或指令,根据所接收的配置或指令,调度或控制引擎内模块集完成特定功能或操作;
一引擎内模块集,包括一个用于解析配置参数的配置解析系统和数个供中控对象调度共同完成所有指令的模块,中控对象执行每个指令时经由配置解析系统解析指令中的配置参数生成各种底层的类,再由中控对象根据配置参数调度这些创建的底层类协同完成指令。
优选地,所述引擎内模块集包括:
一配置解析系统,内耦合各种配置解析模块,用于解析传入的各种配置,针对不同配置类型会调用不同的配置解析子模块来解析开发者意图,生成并执行原本需要开发者编写代码完成的一些列过程,即分析和创建满足开发者意图但开发者访问不了的底层对象,开发者想实现的意图由底层对象协作完成;
一地图工具类模块,包括地理信息系统常用的运算函数和功能函数,以供引擎内部的其他模块调用;
一绘标系统,用于提供在地图上绘制多种基础点线面类型和军标类型图案的功能;
一多图源控制模块,用于存储数种已破解的网络接入地图的策略及参数值,并在地图应用的运行过程中进行图源的分析、加载及坐标运算;
一坐标处理器,接收多图源控制模块的调用,用于不同图源坐标的换算;
一坐标系统,用于存储各种坐标系及各个坐标系与标准坐标系的转换关系,以根据当前图源特征调用坐标处理器进行坐标转换;
一事件系统,用于提供指定事件时执行开发者在地图上常用的处理逻辑;
一数据服务解析器,用于加载服务器发布的GIS服务,并根据所加载的GIS服务地址获取GIS服务,解析GIS服务获取GIS服务数据,并显示于在地图;
一瓦片服务解析器,接收多图源控制模块,用于解析发布者发布的地图服务并将它在浏览器或客户端展示出来。
优选地,所述配置解析系统包括:
图层配置解析模块,接收待开发的图层配置参数,用于分析开发者创建图层意图,并为其添加相应监听函数,所述监听函数表示发生预定状况时执行相应处理程序;
符号化配置解析模块,接收待开发的符号化配置参数,用于分析开发者针对一个图层上的所有信息点或者某次在地图上批量打点时针对这些信息点使用什么样的图标;
样式配置解析模块,接收待开发的样式配置参数,用于分析开发者针对一个图层上的所有线和面或者某次在地图上批量绘制时针对这些线和面使用什么样式;
绘制配置解析模块,接收调用绘制指令和绘制参数,用于分析当前激活的绘制操作如何进行;
状态动作配置解析模块,接收状态参数,用于解析状态参数,将开发者开发流程演化过程在地图上显示。
优选地,所述状态参数用可扩展标记语言XML来描述,每个节点标签内描述这个状态下的地图信息。
优选地,所述符号化配置参数和样式配置参数均包括固定配置方式和策略配置方式,所述固定配置方式是指针对某一信息点给出固定配置值;所述策略配置方式是提供一个渲染器接口给开发者,渲染器参数为信息点对象,开发者实现渲染器的实例,引擎为渲染器注入信息点对象,开发者在渲染器中拿到信息点对象,根据自己的业务逻辑,返回一个规定的配置值。
优选地,所述样式配置解析模块利用CSS设计样式表,解耦逻辑编程及UI配置,通过页面加载时分析带有特殊ID标识的CSS样式文件或Style标签配置代码段,由系统底层生成等价的样式配置对象作用于地图。
优选地,所述图层配置解析模块解析内容包括:创建多少个图层、各个图层间的顺序关系、每个图层上的信息点使用什么样的图形符号、每个图层上的信息点使用什么样的样式,每个图层上的信息点是否可编辑、是否可弹出信息窗口、信息窗口使用的界面模板,每个图层上的信息点发生不同事件时执行什么样的处理。
优选地,所述引擎输入\输出的坐标系均是WGS84坐标系,所述各种坐标系及各个坐标系与标准坐标系的转换关系包括正向转换关系,,即WGS84坐标系转其他坐标系;及反向转换关系,即其他坐标系转WGS84坐标系所述坐标处理器根据解析含坐标的输入参数,分析当前图源的坐标系,对当前图源输入坐标进行加偏加密;根据回调函数或返回指令的输出参数,对输出参数中含坐标的参数进行纠偏解密。
优选地,所述其他坐标系包括数个主流地图厂商的坐标系统及开发者向坐标系统中注册自己创造或发现的其他坐标系。
优选地,所述引擎内模块集在图源切换时,其内部自动完成内存对象的重新构建和改变。
本发明通过提供大量这种高度概括的指令并且不断优化完善指令库和配置库,起到简化开发过程降低开发难度的目标,将原本要靠编写大量代码并人为控制过程细节的常用应用场景以接近语义化配置的形式提供参数接口给开发者。本发明实现了多图源闭环,使用中控方案保障这个闭环得以实现,并且简化开发过程,降低了开发难度
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明一实施例的结构示意图;
图2为本发明引擎支撑开发者的策略配置原理图;
图3为本发明坐标纠偏加密的实操实例图;
图4为本发明自动纠偏技术原理示意图;
图5为本发明纠偏解密的示意图;
图6为本发明中控设计原理示意图,
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1-6所示,本发明提出的一种多图源地图服务引擎,包括:
一中控对象,用于接收开发者的配置或指令,根据所接收的配置或指令,调度或控制引擎内模块集完成特定功能或操作;
一引擎内模块集,包括一个用于解析配置参数的配置解析系统和数个供中控对象调度共同完成所有指令的模块,中控对象执行每个指令时经由配置解析系统解析指令中的配置参数生成各种底层的类,再由中控对象根据配置参数调度这些创建的底层类协同完成指令。
优选地,所述引擎内模块集包括:
一配置解析系统,内耦合各种配置解析模块,用于解析传入的各种配置,针对不同配置类型会调用不同的配置解析子模块来解析开发者意图,生成并执行原本需要开发者编写代码完成的一些列过程,即分析和创建满足开发者意图但开发者访问不了的底层对象,开发者想实现的意图由底层对象协作完成;
一地图工具类模块,包括地理信息系统常用的运算函数和功能函数,以供引擎内部的其他模块调用;
一绘标系统,用于提供在地图上绘制多种基础点线面类型和军标类型图案的功能;
一多图源控制模块,用于存储数种已破解的网络接入地图的策略及参数值,并在地图应用的运行过程中进行图源的分析、加载及坐标运算;
一坐标处理器,接收多图源控制模块的调用,用于不同图源坐标的换算;
一坐标系统,用于存储各种坐标系及各个坐标系与标准坐标系的转换关系,以根据当前图源特征调用坐标处理器进行坐标转换;
一事件系统,用于提供指定事件时执行开发者在地图上常用的处理逻辑;
一数据服务解析器,用于加载服务器发布的GIS服务,并根据所加载的GIS服务地址获取GIS服务,解析GIS服务获取GIS服务数据,并显示于在地图;
一瓦片服务解析器,接收多图源控制模块,用于解析发布者发布的地图服务并将它在浏览器或客户端展示出来。
在本实施例中,本发明将地图应用开发过程中常遇到的需求和场景抽象成一系列配置项和指令集,在满足高效的同时满足需求的灵活性。中控对象提供的指令集中含有大量GIS开发中常用的功能,如放大、缩小、定位到某个范围,在图上显示用户业务信息如警力分布、卡口信息,在图上绘制点线面图形、框选圆选面选范围内信息点等等,并且比原细小的模块或类能提供更接近自然语言的函数。引擎内模块集将其与开发者隔断(如同防火墙),内部的模块私有化,引擎内的模块集不再暴露给开发者,通过中控对象负责创建、调度、协调引擎内的各个模块和对象完在特定功能或操作。这种中控式接口设计让开发者不再面向上百种类配置,只掌握几类配置以及地图可提供的操作指令。我们以一个画包围圈的案例为例,调用方式可以理解为:
地图.画一个图形({类型为圆,半径为100米,画完后打印该范围的面积)即开发者调用一条指令fmap.activateDraw({type:’circle’,radius:100,callback:printFuncction})即可完成。
本发明公开的多图源地图引擎通过提供大量这种高度概括的指令并且不断优化完善指令库和配置库,起到简化开发过程降低开发难度的目标,将原本要靠编写大量代码并人为控制过程细节的常用应用场景以接近语义化配置的形式提供参数接口给开发者,简化开发过程,降低了开发难度。
优选地,所述配置解析系统包括:
图层配置解析模块,接收待开发的图层配置参数,用于分析开发者创建图层意图,并为其添加相应监听函数,所述监听函数表示发生预定状况时执行相应处理程序;
符号化配置解析模块,接收待开发的符号化配置参数,用于分析开发者针对一个图层上的所有信息点或者某次在地图上批量打点时针对这些信息点使用什么样的图标;
样式配置解析模块,接收待开发的样式配置参数,用于分析开发者针对一个图层上的所有线和面或者某次在地图上批量绘制时针对这些线和面使用什么样式;
绘制配置解析模块,接收调用绘制指令和绘制参数,用于分析当前激活的绘制操作如何进行;
状态动作配置解析模块,接收状态参数,用于解析状态参数,将开发者开发流程演化过程在地图上显示。
在本实施例中,中控对象最终提供一些列指令集合配置项给开发者,引擎可以提供的配置项包括:图层配置项、符号化配置项、样式配置项、绘制配置项、状态过程配置项等等。这些配置项在创建地图或执行某些指令时传入给引擎,此时引擎的配置解析系统会调用各个解析模块解析这些配置,生成原本该是开发者编写的过程代码生成的那些内存对象,并且做到比开发者编写的更严谨更安全。
优选地,所述状态参数用可扩展标记语言XML来描述,每个节点标签内描述这个状态下的地图信息。
优选地,所述符号化配置参数和样式配置参数均包括固定配置方式和策略配置方式,所述固定配置方式是指针对某一信息点给出固定配置值;所述策略配置方式是提供一个渲染器接口给开发者,渲染器参数为信息点对象,开发者实现渲染器的实例,引擎为渲染器注入信息点对象,开发者在渲染器中拿到信息点对象,根据自己的业务逻辑,返回一个规定的配置值。
多图源地图引擎中支持策略配置的配置内容包括:符号化配置、样式配置、业务卡片(在地图上点击信息点弹出的信息详情界面)配置等。策略配置的原理是提供一个渲染器接口给开发者,渲染器参数为信息点对象,开发者实现渲染器的实例(一个函数),引擎为渲染器注入信息点对象,开发者在渲染器中拿到信息点对象,根据自己的业务逻辑,返回一个规定的配置值,即可实现动态渲染即策略配置的效果。我们以警员是否在线为例,如图2,警员1为在线警员,使用左边图标,警员2为离线警员,使用灰色图标。引擎支撑开发者的策略配置原理大致如下,以配置符号化策略和业务卡片策略为例:
我们以警员上图需求为例,假设业务要求在线警员高亮离线警员灰色显示,并且点击警员信息点时在线警员和离线警员使用不同的弹出窗内容模板。
策略配置运行过程大致如下:
1、S1-开发者提供配置内容,并实现渲染器,此处实现符号化渲染器和业务卡片渲染器,所有配置的渲染器都是一个函数,该函数被传入一个信息点的业务数据。开发者在渲染器中实现自己的策略,如根据警员当前状态返回不同的图标。配置项的渲染器就是将原来配置一个固定值改成编写一个函数,函数传入对象为某个点的信息(地图变化的过程中,变化的点都会进入与他相关的渲染器)。
2、S2-开发者创建中控对象并传入配置内容,或调用中控对象的某些指令
3、S3-中控对象执行的指令使地图发生移动,或中控对象执行的指令改变了某些信息点的业务数据时,会触发配置管理系统判断屏幕范围内的点是否要进行重新渲染
4、S4-屏幕范围内的信息点,若它所在图层配置了各种渲染器,每一种渲染器都会被触发,例如改变某个警员的状态为上线时,会触发开发者配置好的策略,该警员的信息会被传入到渲染器中执行渲染器内的分析判断逻辑
5、S5-渲染器会返回一个配置值给回信息点,此处返回的是一个高亮图标,即警员状态为在线时就会自动显示成绿色的高亮图标,离线时则会显示为灰色图标。
6、其他配置项渲染器的过程与上述符号化渲染器的原理一样,渲染器就是将原本配置成固定值的设置加强为支持按开发者逻辑动态渲染。这个设计的好处是在上面的过程中我们可以发现开发者完成没有在与地图直接发生什么关系或管控这个复杂的过程,其他引擎一般需要开发者在相应变化时做出相应的处理。而渲染器的逻辑就是所有过程引擎完成,开发者只负责事先提供渲染器,在渲染其中按需求编写策略,且引擎支持多种配置项使用渲染器。
优选地,所述样式配置解析模块利用CSS设计样式表,解耦逻辑编程及UI配置,通过页面加载时分析带有特殊ID标识的CSS样式文件或Style标签配置代码段,由系统底层生成等价的样式配置对象作用于地图。
优选地,所述图层配置解析模块解析内容包括:创建多少个图层、各个图层间的顺序关系、每个图层上的信息点使用什么样的图形符号、每个图层上的信息点使用什么样的样式,每个图层上的信息点是否可编辑、是否可弹出信息窗口、信息窗口使用的界面模板,每个图层上的信息点发生不同事件时执行什么样的处理。
优选地,所述引擎输入\输出的坐标系均是WGS84坐标系,所述各种坐标系及各个坐标系与标准坐标系的转换关系包括正向转换关系,即WGS84坐标系转其他坐标系;及反向转换关系,即其他坐标系转WGS84坐标系,所述坐标处理器根据解析含坐标的输入参数,分析当前图源的坐标系,对当前图源输入坐标进行加偏加密;根据回调函数或返回指令的输出参数,对输出参数中含坐标的参数进行纠偏解密。
优选地,所述其他坐标系包括数个主流地图厂商的坐标系统及开发者向坐标系统中注册自己创造或发现的其他坐标系。
优选地,所述引擎内模块集在图源切换时,其内部自动完成内存对象的重新构建和改变。
在本实施例中,坐标系统通过一个代号,两个转换算法(正向转换、反向转换)标记一个坐标系。如A坐标系记录的是:
代号-A
正向转换关系:A到84的转换算法
反向转换关系:84到A的转换算法
通过分析破解国内大部分主流地图厂商的坐标系统,我们已经在引擎内部集成了以下坐标系,包括:标准坐标系(也称GPS坐标系或84坐标系)、百度坐标系(平面坐标、经纬度坐标)、搜狗坐标系(平面坐标)、国测局坐标系(经纬度坐标、平面坐标,高德谷歌腾讯等用的均是国测局平面坐标)。引擎还支持开发者向坐标系统中注册其他坐标系。
坐标系统通过注册的方式,使得开发者只需在图源参数中注明图源所属的坐标系代号即可不必再关心地图应用运行过程中的所有坐标换算问题。坐标系统还可以支撑开发者使用第三方提供的业务数据来上图,如开发者可以使用高德公司提供的路况数据(存储的坐标信息是高德的坐标)在百度地图上显示,以往这种需求一般是要经过两个厂商合作将数据先经过数据清洗(高德数据转换成百度数据)。
纠偏是GIS行业术语,其内在含义其实包含了纠偏和加偏两个方面。该技术的产生是因为国家规定了所有民用电子地图必须对标准坐标进行加密处理,即采购国测局的坐标加密解密算法,并可在此算法基础上再叠加厂家自己的二次加密处理。因此业界就有了这个纠偏的技术问题,即如果厂家A将天安门的标准坐标(也称84坐标或gps坐标)打在百度、搜狗、高德等地图上,可以明显看见打点不在图上的天安门,偏移程度与厂商采用的坐标加密算法有关。
解决打点偏移的办法有两个,对打点坐标加偏(加密),或对发布的瓦片(纠偏)。对瓦片进行纠偏,由于偏移是非线性的,对大量的瓦片(图片)进行不同程度纠偏处理,成本大技术难。因此FinestMap采用对业务数据坐标加偏(加密)的方式解决人眼看到信息点偏移的错觉。而在数据需要存储到数据库或者在业务系统中数据扭转过程一般使用的都是84坐标,因此引擎除了自动加偏解决人眼错觉问题,还包含自动纠偏(解密)处理,即你在百度地图移动鼠标时你看见的实时坐标是84的坐标,是因为引擎内部将所有与输出有关的坐标信息都转换成84的坐标。开发者与引擎间的坐标输入输出均是84坐标,用户与开发者通过本引擎开发出来的应用系统间的坐标输入输出也均是84坐标。引擎内部真正运作的是当前图源对应的坐标,即当前加载百度地图时内核运行的就是百度坐标,只是所有开发者指令接口的输入输出和配置是84坐标,然后黑盒在地图生命周期过程中不断进行正反转换,使得内存运行的是真实坐标,面向开发者与用户的输入输出接口都是84坐标。
如图4所示,FinestMap自动纠偏技术的原理就是将所有坐标加偏纠偏处理设计成一道工序,开发者不可见,将每一个涉及坐标参数的指令(包括输入输出)都接入到这个黑盒当中。通过我们设计的中控式接口方案,开发者所有操作通过调用FMap中的指令函数来完成,每个指令在解析含坐标的输入参数时,会分析当前地图是什么图源,根据当前的图源对输入坐标进行加偏(加密),然后再各种回调函数或指令操作返回的输出参数时,对输出参数中含坐标的参数再根据当前图源对输出坐标进行纠偏(解密)处理。在切换图源时,也由FinestMap内部自动完成各个内存对象的重新构建和改变。多图源地图机制的实现本质是在底层运作采用当前图源的坐标系(并且开发者接触不了这些运作过程)在运作,而引擎提供给开发者的配置和操作指令全部都是面向标准坐标系(84坐标系,也叫gps坐标系)的。因此在引擎内部设计了一个自动加偏纠偏的黑盒,它由坐标系统、坐标处理器、多图源控制器构成,共同协作完成地图运行过程中的所有坐标转换。坐标的自动加密解密(加密即84坐标转换为其他坐标系坐标,解密即其他坐标系坐标转换为84坐标)主要由坐标系统、坐标处理器、多图源控制器三者共同完成,三者构成一个自动纠偏黑盒,在整个地图的运行过程中的不同环节,引擎会不断调用该黑盒进行坐标转换。起到将开发者业务过程代码与加偏纠偏这种专业技术性代码解耦的作用,并且已预设好大部分规则,对开发者而言几乎等同零处理。
实操实例:如图3的应用窗口,指令定位到天河区中心13级,此时解析器根据当前窗口需要定位的中心位置、图源的配置参数,就会去请求12张图片。下图中的一个格子实际就是存储在服务器的一张图片。格子内的数值(XYZ)就是这张图片的身份证,这个值与存储无关,它是在厂商按一定参数(原点、分辨率)切割地图时就已经产生的,但厂商发布的服务能够保证您请求的XYZ值就是对应这张图片,行列号规范是GIS业界的规范。而互联网中的部分厂商对请求地址进行加密的措施是为了防止地图资源(图片)被爬取。谷歌对原本的请求地址进行了加密,即将xyz值映射成一个人为看不懂的字符串序列。一般开发者非常难以接入,除非使用谷歌地图的引擎,基本大部分互联网厂商的官方地图瓦片地址都进行了加密,即开发者想情求XYZ行列号的某张图片时如果没有该厂商的请求地址加密算法难以接入。本发明通过破解各个厂商的请求地址加密算法并将其内置在了各个图源配置的缺省参数中,达到让开发者只需配置图源类型就可以简单接入互联网官方图源,即针对会联网官方地图只需配置类型和url两个参数。所有过程细节处理对都是引擎内的模块集内部完成。
开发者从配置好图源之后,所有与多图源相关的处理全是引擎完成,开发者几乎零介入。开发者配置好参数后开发过程中零介入处理图源接入、兼容、坐标加偏纠偏即一开始所说的闭环方案是多图源引擎的核心机制。引擎的整个多图源机制的实现包括四个方面,分别是:
·多图源的接入
·多图源的切换
·多图源间的差级兼容
·坐标的自动加偏纠偏
多图源接入的工作原理实际就是地图加载的原理,多图源切换的运作过程大致如下:
1、S1-开发者开发应用系统时配置好了多个图源,地图初始化时加载的是指定的图源集合中的一个;
2、S2-开发者开发好的应用系统提供了一个可以切换图源的接口给用户(应用的使用者),一般是图源切换控件或开发者自己编写的一个按钮或列表;
3、S3-用户操作应用接口(按钮或控件等)触发图源切换事件;
4、S4-中控对象将地图的当前图源设置成新的图源;
5、S5-中控对象调用自动加偏纠偏黑盒将旧图源下的地图中心点坐标转换成84坐标;
6、S6-中控对象调度引擎内的各模块,重新执行地图加载的完整过程;
7、S7-中控对象遍历地图上的所有点线面对象,调用自动加偏纠偏黑盒将它们缓存的84坐标值全部转换成新图源对应坐标系下的值,并刷新地图。
多图源机制除了以上三个原理外还包含一个图源差级兼容机制。一般的地理信息应用都只有一个图源,不会存在差级兼容问题。而多图源应用之所以会存在差级问题,是由于瓦片服务发布者发布的瓦片服务不一定按标准的世界地图0-21级进行发布。如厂商发布图源服务A是10级至18级的全省地图,厂商发布图源服务B是0-18级的全球地图时,要接入这两个图源并且使得切换时不产生【跳级】则需要加入差级兼容处理。(跳级是指当前在图源A下的第8级,实际业务是第18级,因物理索引与逻辑关系不一致,发布的是10-18级,而物理索引不加处理可能发布出的索引就是0-8,这样的发布不会影响单图源的应用,此时切换到B图源就可能到了B图源的第8级,其实两个图源切换前后都是保持的物理级别8没变,然而他们对应的逻辑级别是不一致的,给用户的感觉就像切换时从街道地图跳到了全国地图)。
FinestMap的解决方案是设定地图为0-21个级别;当厂商发布图源服务A是10级至18级的全省地图时,开发者将A图源差级配置成10,厂商发布图源服务B是0-18级的全球地图时,开发者将B图源差级配置成0(默认)。那么在所有业务逻辑中,开发者不用再管怎么兼容这两个图源切换以及接入的问题。例如开发者调用函数fmap.setZoom(15)将地图缩放至15级地图时,如果没有差级处理,直接去请求B图源的15级瓦片肯定是不存在的,因为B图源从第10级开始发布,它的物理索引是0-8,FinestMap容差处理在请求瓦片时会减去容差值去请求瓦片,当开发者调用fmap.getZoom()时会加上容差值返回给开发者。在A图源切换到B图源或B图源切换到A图源时会计算二者的差进行加减处理。即现实世界0-21级这个共识是图源容差的基础。容差原理与自动加偏纠偏原理类似,开发者输入输出是现实世界中认知的地图级别,由FinestMap完成所有交互过程和指令调用过程中的转换。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (10)

1.一种多图源地图服务引擎,其特征在于,包括:
一中控对象,用于接收开发者的配置或指令,根据所接收的配置或指令,调度或控制引擎内模块集完成特定功能或操作;
一引擎内模块集,包括一个用于解析配置参数的配置解析系统和数个供中控对象调度共同完成所有指令的模块,中控对象执行每个指令时经由配置解析系统解析指令中的配置参数生成各种底层的类,再由中控对象根据配置参数调度这些创建的底层类协同完成指令。
2.如权利要求1所述的多图源地图服务引擎,其特征在于,所述引擎内模块集包括:
一配置解析系统,内耦合各种配置解析模块,用于解析传入的各种配置,针对不同配置类型会调用不同的配置解析子模块来解析开发者意图,生成并执行原本需要开发者编写代码完成的一些列过程,即分析和创建满足开发者意图但开发者访问不了的底层对象,开发者想实现的意图由底层对象协作完成;
一地图工具类模块,包括地理信息系统常用的运算函数和功能函数,以供引擎内部的其他模块调用;
一绘标系统,用于提供在地图上绘制多种基础点线面类型和军标类型图案的功能;
一多图源控制模块,用于存储数种已破解的网络接入地图的策略及参数值,并在地图应用的运行过程中进行图源的分析、加载及坐标运算;
一坐标处理器,接收多图源控制模块的调用,用于不同图源坐标的换算;
一坐标系统,用于存储各种坐标系及各个坐标系与标准坐标系的转换关系,以根据当前图源特征调用坐标处理器进行坐标转换;
一事件系统,用于提供指定事件时执行开发者在地图上常用的处理逻辑;
一数据服务解析器,用于加载服务器发布的GIS服务,并根据所加载的GIS服务地址获取GIS服务,解析GIS服务获取GIS服务数据,并显示于在地图;
一瓦片服务解析器,接收多图源控制模块,用于解析发布者发布的地图服务并将它在浏览器或客户端展示出来。
3.如权利要求2所述的多图源地图服务引擎,其特征在于,所述配置解析系统包括:
图层配置解析模块,接收待开发的图层配置参数,用于分析开发者创建图层意图,并为其添加相应监听函数,所述监听函数表示发生预定状况时执行相应处理程序;
符号化配置解析模块,接收待开发的符号化配置参数,用于分析开发者针对一个图层上的所有信息点或者某次在地图上批量打点时针对这些信息点使用什么样的图标;
样式配置解析模块,接收待开发的样式配置参数,用于分析开发者针对一个图层上的所有线和面或者某次在地图上批量绘制时针对这些线和面使用什么样式;
绘制配置解析模块,接收调用绘制指令和绘制参数,用于分析当前激活的绘制操作如何进行;
状态动作配置解析模块,接收状态参数,用于解析状态参数,将开发者开发流程演化过程在地图上显示。
4.如权利要求3所述的多图源地图服务引擎,其特征在于,所述状态参数用可扩展标记语言XML来描述,每个节点标签内描述这个状态下的地图信息。
5.如权利要求3所述的多图源地图服务引擎,其特征在于,所述符号化配置参数和样式配置参数均包括固定配置方式和策略配置方式,所述固定配置方式是指针对某一信息点给出固定配置值;所述策略配置方式是提供一个渲染器接口给开发者,渲染器参数为信息点对象,开发者实现渲染器的实例,引擎为渲染器注入信息点对象,开发者在渲染器中拿到信息点对象,根据自己的业务逻辑,返回一个规定的配置值。
6.如权利要求3所述的多图源地图服务引擎,其特征在于,所述样式配置解析模块利用CSS设计样式表,解耦逻辑编程及UI配置,通过页面加载时分析带有特殊ID标识的CSS样式文件或Style标签配置代码段,由系统底层生成等价的样式配置对象作用于地图。
7.如权利要求3所述的多图源地图服务引擎,其特征在于,所述图层配置解析模块解析内容包括:创建多少个图层、各个图层间的顺序关系、每个图层上的信息点使用什么样的图形符号、每个图层上的信息点使用什么样的样式,每个图层上的信息点是否可编辑、是否可弹出信息窗口、信息窗口使用的界面模板,每个图层上的信息点发生不同事件时执行什么样的处理。
8.如权利要求2所述的多图源地图服务引擎,其特征在于,所述引擎输入\输出的坐标系均是WGS84坐标系,所述各种坐标系及各个坐标系与标准坐标系的转换关系包括正向转换关系,即WGS84坐标系转其他坐标系;及反向转换关系,即其他坐标系转WGS84坐标系,所述坐标处理器根据解析含坐标的输入参数,分析当前图源的坐标系,对当前图源输入坐标进行加偏加密;根据回调函数或返回指令的输出参数,对输出参数中含坐标的参数进行纠偏解密。
9.如权利要求8所述的多图源地图服务引擎,其特征在于,所述其他坐标系包括数个主流地图厂商的坐标系统及开发者向坐标系统中注册自己创造或发现的其他坐标系。
10.如权利要求2所述的多图源地图服务引擎,其特征在于,所述引擎内模块集在图源切换时,其内部自动完成内存对象的重新构建和改变。
CN201811650468.XA 2018-12-31 2018-12-31 一种多图源地图服务引擎 Active CN109670011B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811650468.XA CN109670011B (zh) 2018-12-31 2018-12-31 一种多图源地图服务引擎

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811650468.XA CN109670011B (zh) 2018-12-31 2018-12-31 一种多图源地图服务引擎

Publications (2)

Publication Number Publication Date
CN109670011A true CN109670011A (zh) 2019-04-23
CN109670011B CN109670011B (zh) 2020-08-14

Family

ID=66146767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811650468.XA Active CN109670011B (zh) 2018-12-31 2018-12-31 一种多图源地图服务引擎

Country Status (1)

Country Link
CN (1) CN109670011B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111970162A (zh) * 2020-10-26 2020-11-20 武大吉奥信息技术有限公司 一种超融合架构下的异构gis平台服务中控系统
CN113284407A (zh) * 2021-05-25 2021-08-20 中国航空无线电电子研究所 支持多图源多比例尺的地理要素配图系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101126985A (zh) * 2007-10-15 2008-02-20 北京邮电大学 一种基于解释器和解析器实现地理信息服务的系统及方法
CN105447101A (zh) * 2015-11-12 2016-03-30 北京锐安科技有限公司 一种地图引擎实现方法及装置
CN106201514A (zh) * 2016-07-11 2016-12-07 电子科技大学 一种基于OpenLayers的WebGIS开发框架的构建及使用方法
KR101834905B1 (ko) * 2017-09-29 2018-04-13 주흘이엔지 주식회사 지아이에스를 기반으로 하는 수치데이터의 정밀도 향상 전용 수치지도 보정시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101126985A (zh) * 2007-10-15 2008-02-20 北京邮电大学 一种基于解释器和解析器实现地理信息服务的系统及方法
CN105447101A (zh) * 2015-11-12 2016-03-30 北京锐安科技有限公司 一种地图引擎实现方法及装置
CN106201514A (zh) * 2016-07-11 2016-12-07 电子科技大学 一种基于OpenLayers的WebGIS开发框架的构建及使用方法
KR101834905B1 (ko) * 2017-09-29 2018-04-13 주흘이엔지 주식회사 지아이에스를 기반으로 하는 수치데이터의 정밀도 향상 전용 수치지도 보정시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111970162A (zh) * 2020-10-26 2020-11-20 武大吉奥信息技术有限公司 一种超融合架构下的异构gis平台服务中控系统
CN111970162B (zh) * 2020-10-26 2021-02-02 武大吉奥信息技术有限公司 一种超融合架构下的异构gis平台服务中控系统
CN113284407A (zh) * 2021-05-25 2021-08-20 中国航空无线电电子研究所 支持多图源多比例尺的地理要素配图系统

Also Published As

Publication number Publication date
CN109670011B (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
CN113094037B (zh) 表单和工作流的交互方法、开发平台、设备及存储介质
CN102656557B (zh) 自动化企业软件开发
CN102253827B (zh) 具有学习机制的糅合基础结构
Mena et al. A progressive web application based on microservices combining geospatial data and the internet of things
CN103744680B (zh) 一种业务流程处理方法及装置
CN106022007A (zh) 面向生物组学大数据计算的云平台系统及方法
CN112199086A (zh) 自动编程控制系统、方法、装置、电子设备及存储介质
Brodlie et al. Visual supercomputing: Technologies, applications and challenges
CN102521338B (zh) 对于数据表示项目返回的占位符
CN105718601A (zh) 一种业务动态集成模型及其应用方法
CN109670011A (zh) 一种多图源地图服务引擎
Pushkarev et al. A web application for visualization, analysis, and processing of agricultural monitoring spatial-temporal data
Schwab et al. Scalable scalable vector graphics: Automatic translation of interactive svgs to a multithread vdom for fast rendering
Sangwan et al. Integrating a software architecture-centric method into object-oriented analysis and design
RU2002101131A (ru) Метод определения программного обеспечения, метод использования программного обеспечения, записывающая среда, обрабатывающие устройства, метод защиты программного обеспечения, метод пересадки программного обеспечения в другую среду, метод контроля над программным обеспечением, метод создания графиков обработки, метод создания функций палеты, метод определения области палеты, метод создания вектора однородности, метод создания функции палеты, метод создания фазового элемента, метод создания логического элемента, метод создания элемента действия, метод установки программного обеспечения, метод усовершенствования программного обеспечения, метод замены структуры данных, метод замены значения данных, метод анализа программного обеспечения прошлого поколения, контроль процесса разработки программного обеспечения, контроль процесса использования программного обеспечения, метод параллельных компьютеров, вспомогательное устройство суждения, метод приема заказов на разработку программного обеспечения, метод определения файлов, операции по разработке программного обеспечения, метод определения уникального программного обеспечения, метод проектирования модели сознания, метод проектирования алгоритмов, программная продукция, волны передачи и программы основанной на примерах
Brahem et al. Blockchain's fame reaches the execution of personalized touristic itineraries
CN103077273A (zh) 建立在网络电子地图上的工程在线选线交互设计系统及方法
CN106991479A (zh) 基于语言集成生成系统的地面无人平台战术任务规划系统
Masuda et al. Direction of digital it and enterprise architecture
Zhang et al. Visually-driven parallel solving of multi-objective land-use allocation problems: a case study in Chelan, Washington
Hayat et al. Extension of interaction flow modeling language for geographical information systems
Wu et al. Diverse top-k service composition for consumer electronics with digital twin in mec
Caffiau et al. Generating interactive applications from task models: A hard challenge
Vargas-Acosta et al. Automating multivariable workflow composition for model-to-model integration
Li et al. Support modules and system structure of web-enabled collaborative environment for design and manufacture

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A multi source map service engine

Effective date of registration: 20210322

Granted publication date: 20200814

Pledgee: China Co. truction Bank Corp Guangzhou Tianhe subbranch

Pledgor: AEROSPACE JINGYI (GUANGDONG) INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021980001906

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: No. 502, 504, 506, 508, 510, 512, 516, 518, North Area, Floor 5, No. 9, Jiangong Road, Phase I Industrial Park, Tianhe Science Park, Tianhe District, Guangzhou, Guangdong 510635

Patentee after: Guangdong Jingyi Information Technology Co.,Ltd.

Address before: 510665 Guangzhou City, Guangdong Province 91440106734914282Y

Patentee before: AEROSPACE JINGYI (GUANGDONG) INFORMATION TECHNOLOGY Co.,Ltd.

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230802

Granted publication date: 20200814

Pledgee: China Co. truction Bank Corp Guangzhou Tianhe subbranch

Pledgor: AEROSPACE JINGYI (GUANGDONG) INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021980001906