地图处理方法、装置、设备、地图中间件及可读存储介质
技术领域
本发明涉及数据处理技术领域,更具体地,涉及一种地图处理方法、装置、设备、地图中间件及可读存储介质。
背景技术
随着互联网技术的飞速发展以及电子设备智能化的普及,用户已经习惯通过电子设备上安装或加载的应用(例如手机中安装的app),获取对应的应用服务。
而随着互联网的用户群体规模庞大,用户群体之间的地域差异会带来应用生态差异,例如,国外用户通常习惯使用推特或脸书这类社交类应用,而国内用户则习惯使用微博或微信这类社交类应用。这样的应用生态差异在功能类应用中尤其突出,甚至会影响调用这些功能类应用实现其他应用服务的其他应用的使用。以地图应用为例,目前国内的用户习惯于高德地图、百度地图等地图应用提供的地图服务,国外的用户习惯于谷歌地图、苹果地图等地图应用提供的地图服务,那么,对基于地图服务来提供对应的应用服务的应用,如果要在国内及国外都运营向用户提供应用服务,往往只能通过两个方式实现:
一是,针对国内及国外分别开发不同的应用进行运营,不同的应用调用对应不同的地图应用来获取地图服务;这种实现方式的缺点在于:应用需要分别投入人力物力进行维护,维护成本较高,并且不用的应用之间的用户体验难以实现一致性;
二是,对于国内及国外使用相同版本的应用进行运营,但是国内业务功能以及国外业务功能分别独立实现,可以分别独立调用不同的地图应用来获取地图服务,并且能保持国内外用户的用户体验的一致性;而这种实现方式的缺点在于:任意一个业务功能的开发,都需要分别作为国内业务功能以及国外业务功能进行两遍重复开发,带来极大的开发资源浪费,并且对于实际相同的业务功能需要分别投入人力物力进行维护,维护成本较高。
发明内容
本发明的一个目的是提供一种用于处理地图的新技术方案。
根据本发明的第一方面,提供了一种地图处理方法,通过地图中间件实施,所述地图中间件包括地图元素数据组件、地图元素视图组件以及转换处理组件;所述地图元素数据组件用于设置不同类型的地图元素的元素数据;所述地图元素视图组件用于设置不同类型的地图元素的视图显示参数;所述转换处理组件用于确定分在不同的地图应用中、与所述地图元素数据组件或所述地图元素视图组件对应的地图组件,通过转换调用所述对应的地图组件来实现地图的绘制显示;
所述方法包括:
通过所述地图元素数据组件,设置需显示的目标地图元素的元素数据;
通过所述地图元素视图组件,设置所述目标地图元素的视图显示参数;
通过所述转换处理组件,将对所述地图元素数据组件以及所述地图元素视图组件的使用,转换为对目标地图应用中对应的地图组件的调用,实现绘制包括所述目标地图元素的地图进行显示。
根据本发明的第二方面,提供一种地图处理装置,所述地图处理装置用于调用地图中间件实施如本发明第一方面所述的任意一项地图处理方法;
所述地图中间件包括地图元素数据组件、地图元素视图组件以及转换处理组件;所述地图元素数据组件用于设置不同类型的地图元素的元素数据;所述地图元素视图组件用于设置不同类型的地图元素的视图显示参数;所述转换处理组件用于确定在不同的地图应用中、与所述地图元素数据组件或所述地图元素视图组件对应的地图组件,通过转换调用所述对应的地图组件来实现地图的绘制显示;所述地图处理装置包括:
第一设置单元,用于通过所述地图元素数据组件,设置需显示的目标地图元素的元素数据;
第二设置单元,用于通过所述地图元素视图组件,设置所述目标地图元素的视图显示参数;
组件转换单元,用于通过所述转换处理组件,将对所述地图元素数据组件以及所述地图元素视图组件的使用,转换为对目标地图应用中对应的地图组件的调用,实现绘制包括所述目标地图元素的地图进行显示。
根据本发明的第三方面,提供一种地图处理设备,包括:
存储器,用于存储可执行指令以及地图中间件;所述地图中间件包括地图元素数据组件、地图元素视图组件以及转换处理组件;所述地图元素数据组件用于设置不同类型的地图元素的元素数据;所述地图元素视图组件用于设置不同类型的地图元素的视图显示参数;所述转换处理组件用于确定在不同的地图应用中、与所述地图元素数据组件或所述地图元素视图组件对应的地图组件,通过转换调用所述对应的地图组件来实现地图绘制显示;
处理器,用于根据所述可执行的指令的控制,调用所述地图中间件实施如本发明第一方面所述的任意一项所述地图处理方法。
根据本发明的第四方面,提供一种地图中间件,包括:
地图元素数据组件,用于设置不同类型的地图元素的元素数据;
地图元素视图组件,用于设置不同类型的地图元素的视图显示参数;
以及转换处理组件,用于确定在不同的地图应用中、与所述地图元素数据组件或所述地图元素视图组件对应的地图组件,通过转换调用所述对应的地图组件来实现地图绘制显示。
根据本发明的第五方面,提供一种可读存储介质,该可读存储介质中存储有可被计算机读取调用的、如本发明的第四方面所述的地图中间件;或者,可读存储介质中存储有可被计算机运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行本发明的第一方面的任意一项所述的地图处理方法。
根据本公开的一个实施例,通过包括地图元素数据组件、地图元素视图组件以及转换处理组件的地图中间件,可以设置需显示的地图元素的元素数据以及视图显示参数,并转换调用对应的地图应用的地图组件,来绘制包括需显示的地图元素的地图进行显示,以此实现在不同的地图应用提供的地图服务之间进行快速切换,使得基于地图服务实现业务功能的应用,可以无需针对国内外不同的运营环境重复实现相同的业务功能,极大降低应用开发以及维护所需的成本,并有效保证国内外不同的运营环境中应用的用户体验一致性,有助于实现应用的全球化推广。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明的实施例的电子设备的硬件配置的例子的框图。
图2示出了本发明的实施例的地图中间件的例子的示意图。
图3示出了本发明的实施例的第一对应关系的例子的示意图。
图4示出了本发明的实施例的第二对应关系的例子的示意图。
图5示出了本发明的实施例的地图处理方法的流程图。
图6示出了本发明的实施例的地图处理装置3000的框图。
图7示出了本发明的实施例的地图处理设备4000的框图。
图8示出了本发明的实施例的地图中间件5000的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本发明的实施例的电子设备1000的硬件配置的框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项地图处理方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,电子设备1000只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<实施例>
本实施例的总体构思,是提供一种处理地图的新技术方案,通过包括地图元素数据组件、地图元素视图组件以及转换处理组件的地图中间件,可以设置需显示的地图元素的元素数据以及视图显示参数,并转换调用对应的地图应用的地图组件,来绘制包括需显示的地图元素的地图进行显示,以此实现在不同的地图应用提供的地图服务之间进行快速切换,使得基于地图服务实现业务功能的应用,可以无需针对国内外不同的运营环境重复实现相同的业务功能,极大降低应用开发以及维护所需的成本,并有效保证国内外不同的运营环境中应用的用户体验一致性,有助于实现应用的全球化推广。
<方法>
在本实施例中,提供一种地图处理方法。该地图处理方法可以通过地图中间件实施。地图中间件包括地图元素数据组件、地图元素视图组件以及转换处理组件。
地图元素数据组件用于设置不同类型的地图元素的元素数据。
地图元素是地图中可以被显示的标记物。地图元素可以具有不同的类型,例如,地图元素可以是设置在地图上的标记点或者设置在地图上的覆盖物,覆盖物可以包括直线段、多边形以及圆圈等。
地图元素的元素数据是地图元素在地图中显示所必须的数据。地图元素的元素数据可以根据地图元素的不同类型,包括对应不同的数据内容。例如,地图元素包括设置在地图上的标记点(在本实施例中,标记点又称Marker)时,地图元素的元素数据包括标记点的地图坐标,该地图坐标可以经纬度坐标或者其他现有的地图坐标系中对应坐标;地图元素包括设置在地图上的覆盖物(在本实施例中,覆盖物又称Overlay)时,地图元素的元素数据包括覆盖物所占据的地图坐标;而覆盖物是直线段时,地图元素的元素数据包括直线段包括的每一点的地图坐标;覆盖物是多边形时,地图元素的元素数据包括多边形的每个顶点的地图坐标;覆盖物是圆圈时,地图元素的元素数据包括圆圈的中心点的地图坐标,等等。
地图元素数据组件可以根据地图元素的不同类型,包括分别处理不同类型的地图元素的子模块,例如,地图元素数据组件可以包括用于设置标记点的标记点数据组件以及用于设置覆盖物的覆盖物数据组件,覆盖物数据组件还可以进一步包括直线段数据组件、多边线数据组件以及圆圈数据组件。
地图元素视图组件设置不同类型的地图元素的视图显示参数。
地图元素的视图显示参数是与地图元素的视图显示相关的参数。地图元素的视图显示参数可以根据地图元素的不同类型,包括对应不同的参数内容。例如,地图元素包括设置在地图上的标记点(在本实施例中,标记点又称Marker)时,地图元素的视图显示参数包括标记点的视图类型,该视图类型可以是显示标记点的视图所具有的独特类型,比如,在本实施例中,可以设置标记点的视图类型是用于设置标记点的标记点视图组件对应的视图所具有的视图类型,此外,视图显示参数还可以包括是其他内容,例如,标记点的视图显示样式,该视图显示样式可以包括标记点的显示颜色、显示尺寸、显示形状等;或者,地图元素包括设置在地图上的覆盖物,地图元素的视图显示参数包括覆盖物的视图显示样式,覆盖物的视图显示样式可以根据覆盖物的具体类型具有对应的样式内容,比如,覆盖物是直线段时,直线段的视图显示样式包括直线段的线宽度以及线颜色,覆盖物是多边形时,多边形的视图显示样式包括多边形的线段宽度、填充颜色以及线颜色,覆盖物是圆圈时,圆圈的视图显示样式包括圆圈的线段宽度、填充颜色以及线颜色,等等。
地图元素视图据模块可以根据地图元素的不同类型,包括分别处理不同类型的地图元素的子模块,例如,地图元素视图组件可以包括用于设置标记点的标记点视图组件以及用于设置覆盖物的覆盖物视图组件,覆盖物视图组件还可以进一步包括直线段视图组件、多边线视图组件以及圆圈视图组件。
转换处理组件用于确定在不同的地图应用中、与所述地图元素数据组件或所述地图元素视图组件对应的地图组件,通过转换调用该对应的地图组件来实现地图的绘制显示。
在本实施例中,转换处理组件可以转换调用多种不同的地图应用。地图应用可以是任意的提供地图服务的第三方应用。
图2示出了本实施例的地图中间件的一个例子。在图2所示的地图中间件中,转换处理组件可以转换调用苹果地图、谷歌地图、高德地图、腾讯地图等四个不同的第三方地图应用中对应的地图组件来实现地图元素的绘制显示;地图中间件适用的地图元素包括标记点以及覆盖物,覆盖物包括直线段、多边形以及圆圈,对应的,地图元素数据组件包括标记点数据组件(本例中又称MMPointAnnotation)、直线段数据组件(本例中又称MMPolyline)、多边形数据组件(本例中又称MMPolygon)以及圆圈数据组件(本例中又称MMCircle);地图元素视图组件包括标记点视图组件(本例中又称MMAnnotationView)、直线段视图组件(本例中又称MMPolylineRender)、多边形视图组件(本例中又称MMPolygonRender)以及圆圈视图组件(本例中又称MMCircleRender)。
通过如图2所示的地图中间件,可以实施本实施例中提供的地图处理方法,转换调用苹果地图、谷歌地图、高德地图、腾讯地图等四个不同的第三方地图应用中对应的地图组件,来实现包括标记点、直线段、多边形以及圆圈等地图元素的绘制显示,使得基于地图服务实现业务功能的应用,可以在苹果地图、谷歌地图、高德地图、腾讯地图等四个不同的第三方地图应用提供的地图服务之间快速切换。
在一个具体的例子中,本实施例中提供的地图处理方法还可以包括生成地图中间件的步骤,包括:步骤S2010-S2030。
步骤S2010,设置地图中间件中包括地图元素数据组件以及地图元素视图组件。
在本例中,设置地图中间件包括用于设置不同类型的地图元素的元素数据的地图元素数据组件以及用于设置不同类型的地图元素的视图显示参数的地图元素视图组件,构建生成地图中间件的基础。
此外,可以根据需生成的地图中间件期望处理的地图元素来设置地图元素数据组件以及地图元素视图组件。例如,需生成的地图中间件期望处理的地图元素包括设置在地图上的标记点及覆盖物,可以如图2所示,在地图中间件中,设置地图元素数据组件包括标记点数据组件(本例中又称MMPointAnnotation)、直线段数据组件(本例中又称MMPolyline)、多边形数据组件(本例中又称MMPolygon)以及圆圈数据组件(本例中又称MMCircle),设置地图元素视图组件包括标记点视图组件(本例中又称MMAnnotationView)、直线段视图组件(本例中又称MMPolylineRender)、多边形视图组件(本例中又称MMPolygonRender)以及圆圈视图组件(本例中又称MMCircleRender)。
步骤S2020,获取地图元素数据组件与不同的地图应用中包括的地图组件之间的第一对应关系,以及获取地图元素视图组件与不同的地图应用中包括的地图组件之间的第二对应关系。
在地图中间件中,地图元素数据组件用于设置地图元素的元素数据,地图元素视图组件用于设置地图元素的视图显示参数。而在其他第三方提供的地图应用中,通常会存在与地图元素数据组件以及地图元素视图组件所实现的组件功能类似的地图组件,那么,地图元素数据组件与不同的地图应用中实现类似组件功能的地图组件具有第一对应关系,地图元素视图组件与不同的地图应用中实现类似组件功能的地图组件具有第二对应关系。
在本例中,可以通过人工或机器挖掘,在第三方提供的地图应用提供的开发文档或者使用说明(例如,地图应用的软件开发工具包(SDK)的说明文档)中,获取上述的第一对应关系以及第二对应关系。
例如,以生成的地图中间件如图2所示的地图中间件为例,该地图中间件适用的地图元素包括标记点及覆盖物,覆盖物包括直线段、多变形及圆圈,地图中间件可以实现苹果地图、谷歌地图、高德地图、腾讯地图等四个第三方地图应用提供的地图服务之间切换,通过挖掘分析苹果地图、谷歌地图、高德地图、腾讯地图等四个地图应用的SDK中的文档,获取第一对应关系以及第二对应关系。
图3示出了如图2所示的地图中间件的第一对应关系,包括:标记点数据组件(本例中又称MMPointAnnotation)分别对应苹果地图中的地图组件MKPointAnnotation、谷歌地图的地图组件MMGMSMarker、高德地图的地图组件MAPointAnnotation以及腾讯地图的QPointAnnotation;直线段数据组件(本例中又称MMPolyline)分别对应苹果地图中的地图组件MKPolyline、谷歌地图的地图组件GMSPolyline、高德地图的地图组件MAPolyline以及腾讯地图的QPolyline;多边形数据组件(本例中又称MMPolygon)分别对应苹果地图中的地图组件MKPolygon、谷歌地图的地图组件GMSPolygon、高德地图的地图组件MAPolygon以及腾讯地图的QPolygon;圆圈数据组件(本例中又称MMCircle)分别对应苹果地图中的地图组件MKCircle、谷歌地图的地图组件GMSCircle、高德地图的地图组件MACircle以及腾讯地图的地图组件QCircle;
图4示出了如图2所示的地图中间件的第二对应关系,包括:记点视图组件(本例中又称MMAnnotationView)分别对应苹果地图中的地图组件MKAnnotationView、谷歌地图的地图组件MMGMSMarker.View、高德地图的地图组件MAAnnotationView以及腾讯地图的QAnnotationView;直线段视图组件(本例中又称MMPolylineRender)分别对应苹果地图中的地图组件MKPolylineView、谷歌地图的地图组件GMSPolyline、高德地图的地图组件MAPolylineRenderer以及腾讯地图的QPolylineView;多边形视图组件(本例中又称MMPolygonRender)分别对应苹果地图中的地图组件MKPolygonView、谷歌地图的地图组件GMSPolygon、高德地图的地图组件MAPolygonRenderer以及腾讯地图的QPolygonView;圆圈视图组件(本例中又称MMCircleRender)分别对应苹果地图中的地图组件MKCircleView、谷歌地图的地图组件GMSCircle、高德地图的地图组件MACircleRenderer以及腾讯地图的地图组件QCircleView。
步骤S2030,根据第一对应关系以及第二对应关系,生成转换处理组件,得到包括地图元素数据组件、地图元素视图组件以及转换处理组件的地图中间件。
例如,通过如图3所示的第一对应关系、图4所示的第二对应关系可以生成如图2所示的转换处理模块,最终生成如图2所示的地图中间件。
通过上述步骤S2010-S2030,可以通过设置地图元素数据组件以及地图元素视图组件,并且获取地图元素数据组件与期望切换使用的地图应用中包括的地图组件之间的第一对应关系,以及地图元素视图组件与期望切换的地图应用中包括的地图组件之间的第二对应关系来对应生成转换处理组件,得到可以实现不同地图应用提供的地图服务之间切换的地图中间件。
图5中示出了通过上述的地图中间件,实施的地图处理方法,包括:步骤S2100-S2300。
步骤S2100,通过地图元素数据组件,设置需显示的目标地图元素的元素数据。
如前文所述,目标地图元素可以具有不同的类型,对应的,不同类型的地图元素设置的元素数据可以具有不同的内容。
在一个例子中,地图元素包括设置在地图上的标记点;地图元素的元素数据包括标记点的地图坐标;地图元素数据组件中包括用于设置标记点的标记点数据组件;上述步骤S2100可以包括:
步骤S2110,目标地图元素是标记点时,通过标记点数据组件,设置标记点的地图坐标。
通过地图元素数据组件中包括的标记点数据组件,设置标记点的地图坐标,定位标记点在地图上显示的对应位置,以便结合后续步骤实现标记点的绘制显示,并且针对标记点这类的地图元素,采用专门的标记点数据组件来设置标记点的地图坐标,可以提高处理效率。
在另一个例子中,地图元素包括设置在地图上的覆盖物;地图元素的元素数据包括覆盖物所占据的地图坐标;地图元素数据组件中包括用于设置所述覆盖物的覆盖物数据组件;上述步骤S2100可以包括:
步骤S2120,目标地图元素是覆盖物时,通过覆盖物数据组件,设置覆盖物所占据的地图坐标。
通过地图元素数据组件中包括的覆盖物数据组件,设置覆盖物所占据的地图坐标,定位覆盖物在地图上显示的对应位置,以便结合后续步骤实现覆盖物的绘制显示,并且针对覆盖物这类的地图元素,采用专门的覆盖物数据组件来设置覆盖物所占据的地图坐标,可以提高处理效率。
在本例中,覆盖物还可以包括直线段、多边形以及圆圈。覆盖物数据组件包括用于设置直线段的直线段数据组件、用于设置多边形的多边形数据组件以及用于设置圆圈的圆圈数据组件,上述步骤S2120还可以包括:步骤S2121-S2123。
步骤S2121,覆盖物是直线段时,通过直线段数据组件,设置直线段包括的每一点的地图坐标;
步骤S2122,覆盖物是多边形时,通过多边形数据组件,设置多边形的每个顶点的地图坐标;
步骤S2123,覆盖物是圆圈时,通过圆圈数据组件,设置圆圈的中心点的地图坐标。
针对覆盖物这类的地图元素,分别针对覆盖物是直线段、多边形或者圆圈,对应采用专门的直线段数据组件、多边形数据组件或者圆圈数据组件来设置对应的不同的地图坐标,可以提高处理效率。
步骤S2200,通过地图元素视图组件,设置目标地图元素的视图显示参数。
如前文所述,目标地图元素可以具有不同的类型,对应的,不同类型的地图元素设置的视图显示参数可以具有不同的内容。
在一个例子中,地图元素包括设置在地图上的标记点;地图元素的视图显示参数包括视图类型;地图元素数据组件中包括用于设置标记点的标记点视图组件;上述步骤S2200可以包括:
步骤S2210,目标地图元素是标记点时,通过标记点视图组件,设置标记点的视图类型。
通过地图元素数据组件中包括的标记点视图组件,设置标记点的视图类型,可以设置通过具有对应类型的视图显示标记点,以便结合后续步骤实现标记点的绘制显示,并且针对标记点这类的地图元素,采用专门的标记点视图组件来设置标记点的视图显示,可以提高处理效率。
在另一个例子中,地图元素包括设置在地图上的覆盖物;地图元素的元素数据包括覆盖物的视图显示样式;地图元素视图组件中包括用于设置所述覆盖物的覆盖物视图组件;上述步骤S2200可以包括:
步骤S2220,目标地图元素是覆盖物时,通过覆盖物视图组件,设置覆盖物所占据的视图显示样式。
通过地图元素数据组件中包括的覆盖物视图组件,设置覆盖物显示时的视图显示样式,以便结合后续步骤实现覆盖物的绘制显示,并且针对覆盖物这类的地图元素,采用专门的覆盖物视图组件来设置覆盖物的视图显示样式实现相关的视图显示,可以提高处理效率。
在本例中,覆盖物还可以包括直线段、多边形以及圆圈。覆盖物视图组件包括用于设置直线段的直线段视图组件、用于设置多边形的多边形视图组件以及用于设置圆圈的圆圈视图组件,上述步骤S2220还可以包括:步骤S2221-S2223。
步骤S2221,覆盖物是直线段时,通过直线视图据模块,设置直线段的视图显示样式;视图显示样式至少包括直线段的线宽度以及线颜色。
步骤S2222,覆盖物是多边形时,通过多边形视图组件,设置多边形的视图显示样式;视图显示样式至少包括多边形的线段宽度、填充颜色以及线颜色。
步骤S2223,覆盖物是圆圈时,通过圆圈视图组件,设置圆圈的视图显示样式;视图显示样式至少包括圆圈的线段宽度、填充颜色以及线颜色。
针对覆盖物这类的地图元素,分别针对覆盖物是直线段、多边形或者圆圈,对应采用专门的直线段视图组件、多边形数据组件或者圆圈数据组件来设置对应的不同的视图显示样式,可以提高处理效率。
应当理解的是,上述步骤S2100与步骤是2200可以并行实施或者根据具体的应用场景或者应用需求设置步骤实施的先后,在本实施例中不做限定。
步骤S2300,通过转换处理组件,将对地图元素数据组件以及地图元素视图组件的使用,转换为对目标地图应用中对应的地图组件的调用,实现绘制包括目标地图元素的地图进行显示。
通过地图中间件的转换处理组件,可以确定在目标地图应用中分别与地图元素数据组件以及地图元素视图组件对应的地图组件,将对地图元素数据组件以及地图元素视图组件的使用,转换为调用目标地图应用的对应的地图组件,来获取对应的地图服务绘制地图进行显示,使得基于地图服务实现业务功能的应用,可以通过地图中间件在不同的地图应用提供的地图服务之间进行快速切换,不必再针对国内外不同的运营环境重复实现相同的业务功能,极大降低应用开发以及维护所需的人力物力成本,并有效保证国内外不同的运营环境中应用的用户体验一致性,利于应用的全球化推广。
在一个例子中,转换处理组件,是根据地图元素数据组件与不同的地图应用中包括的地图组件之间的第一对应关系、以及地图元素数据组件与不同的地图应用中包括的地图组件之间的第二对应关系生成的。第一对应关系、第二对应关系的获取在前文中已举例描述,在此不再赘述。
在本例中,步骤S2300可以包括:步骤S2310-S2320。
步骤S2310,根据第一对应关系,确定目标地图应用中与地图元素数据组件对应的第一地图组件,将对地图元素数据组件的使用,转换为对第一地图组件的调用。
例如,以如图2所示的地图中间件为例,在目标元素是标记点时,假设目标地图应用是苹果应用,通过如图3所示的生成转换处理组件的第一对应关系,确定第一地图组件是与作为地图元素数据组件的标记点数据组件MMPonitAnnotaiton对应的苹果地图的地图组件MKPonitAnnotation,将对标记点数据组件MMPonitAnnotaiton的使用,转换为对苹果地图的地图组件MKPonitAnnotation的调用;目标地图元素是其他类型的地图元素或者目标地图应用是其他地图应用时,也是类似实施,在此不再赘述。
步骤S2320,根据第二对应关系,确定与目标地图应用中与地图元素视图组件对应的第二地图组件,将对地图元素视图组件的使用,转换为对第二地图组件的调用。
例如,以如图2所示的地图中间件为例,在目标元素是标记点时,假设目标地图应用是苹果应用,通过如图4所示的生成转换处理组件的第二对应关系,确定第二地图组件是与作为地图元素视图组件的标记点视图组件MMAnnotaitonView对应的苹果地图的地图组件MKAnnotationView,将对标记点视图组件MMAnnotaitonView的使用,转换为调用苹果地图的地图组件MKAnnotationView;目标地图元素是其他类型的地图元素或者目标地图应用是其他地图应用时,也是类似实施,在此不再赘述。
通过上述步骤S2310-2320,通过根据地图元素数据组件与不同的地图应用中包括的地图组件之间的第一对应关系、以及地图元素数据组件与不同的地图应用中包括的地图组件之间的第二对应关系生成的转换处理组件,来实现对目标地图应用的地图组件的转换调用,可以快速确定需转换调用的目标地图应用的地图组件,提高转换调用的效率,对应可以更快速地实现不同的目标地图应用提供的地图服务之间的切换,提高地图服务应用的切换效率。
<地图处理装置>
在本实施例中,还提供一种地图处理装置3000。地图处理装置3000用于调用地图中间件实施本实施例中提供的所述的任意一项地图处理方法。所述地图中间件包括地图元素数据组件、地图元素视图组件以及转换处理组件。地图中间件以及地图处理方法均在前文已经详细描述,在此不再赘述。
如图6所示,地图处理装置3000包括:第一设置单元3100、第二设置单元3200以及组件转换单元3300。
第一设置单元3100,用于通过所述地图元素数据组件,设置需显示的目标地图元素的元素数据。
可选地,所述地图元素包括设置在地图上的标记点;所述地图元素的元素数据包括所述标记点的地图坐标;所述地图元素数据组件中包括用于设置所述标记点的标记点数据组;
第一设置单元3100还用于:
所述目标地图元素是所述标记点时,通过所述标记点数据组件,设置所述标记点的地图坐标。
可选地,所述地图元素包括设置在地图上的覆盖物;所述地图元素的元素数据包括所述覆盖物所占据的地图坐标;所述地图元素数据组件中包括用于设置所述覆盖物的覆盖物数据组件;
第一设置单元3100还用于:
所述目标地图元素是所述覆盖物时,通过所述覆盖物数据组件,设置所述覆盖物所占据的地图坐标。
进一步可选地,所述覆盖物包括直线段、多边形以及圆圈;所述覆盖物数据组件包括用于设置所述直线段的直线段数据组件、用于设置所述多边形的多边形数据组件以及用于设置所述圆圈的圆圈数据组件;
第一设置单元3100还用于:
所述覆盖物是所述直线段时,通过所述直线段数据组件,设置所述直线段包括的每一点的地图坐标;
所述覆盖物是所述多边形时,通过所述多边形数据组件,设置所述多边形的每个顶点的地图坐标;
所述覆盖物是所述圆圈时,通过所述圆圈数据组件,设置所述圆圈的中心点的地图坐标。
第二设置单元3200,用于通过所述地图元素视图组件,设置所述目标地图元素的视图显示参数。
可选地,所述地图元素包括设置在地图上的标记点;所述地图元素的视图显示参数包括视图类型;所述地图元素视图组件中包括用于设置所述标记点的标记点视图组件;
所述第二设置单元3200还用于:
所述目标地图元素是所述标记点时,通过所述标记点视图组件,设置所述标记点的视图类型。
可选地,所述地图元素包括设置在地图上的覆盖物;所述地图元素的视图显示参数包括所述覆盖物的视图显示样式;所述地图元素视图组件中包括用于设置所述覆盖物的覆盖物视图组件;
所述第二设置单元3200还用于:
所述目标地图元素是所述覆盖物时,通过所述覆盖物视图组件,设置所述覆盖物的视图显示样式。
进一步可选地,所述覆盖物包括直线段、多边形以及圆圈;所述覆盖物视图组件包括用于设置所述直线段的直线段视图组件、用于设置所述多边形的多边形视图组件以及用于设置所述圆圈的圆圈视图组件;
所述第二设置单元3200还用于:
所述覆盖物是所述直线段时,通过所述直线视图据模块,设置所述直线段的视图显示样式;所述视图显示样式至少包括所述直线段的线宽度以及线颜色;
所述覆盖物是所述多边形时,通过所述多边形视图组件,设置所述多边形的视图显示样式;所述视图显示样式至少包括所述多边形的线段宽度、填充颜色以及线颜色;
所述覆盖物是所述圆圈时,通过所述圆圈视图组件,设置所述圆圈的视图显示样式;所述视图显示样式至少包括所述圆圈的线段宽度、填充颜色以及线颜色。
组件转换单元3300,用于通过所述转换处理组件,将对所述地图元素数据组件以及所述地图元素视图组件的使用,转换为对目标地图应用中对应的地图组件的调用,实现绘制包括所述目标地图元素的地图进行显示。
可选地,所述转换处理组件,是根据所述地图元素数据组件与不同的地图应用中包括的地图组件之间的第一对应关系、以及所述地图元素数据组件与不同的地图应用中包括的地图组件之间的第二对应关系生成的;所述组件转换单元3300还用于:
根据所述第一对应关系,确定所述目标地图应用中与所述地图元素数据组件对应的第一地图组件,将对所述地图元素数据组件的使用,转换为对所述第一地图组件的调用;
根据所述第二对应关系,确定与所述目标地图应用中与所述地图元素视图组件对应的第二地图组件,将对所述地图元素视图组件的使用,转换为对所述第二地图组件的调用。
可选地,所述地图处理装置3000还用于生成所述地图中间件,包括:
设置所述地图中间件中包括所述地图元素数据组件以及所述地图元素视图组件;
获取所述地图元素数据组件与不同的地图应用中包括的地图组件之间的第一对应关系,以及获取所述地图元素视图组件与不同的地图应用中包括的地图组件之间的第二对应关系;
根据所述第一对应关系以及所述第二对应关系,生成所述转换处理组件,得到包括所述地图元素数据组件、所述地图元素视图组件以及所述转换处理组件的所述地图中间件。
本领域技术人员应当明白,可以通过各种方式来实现地图处理装置3000。例如,可以通过指令配置处理器来实现地图处理装置3000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现地图处理装置3000。例如,可以将地图处理装置3000固化到专用器件(例如ASIC)中。可以将地图处理装置3000分成相互独立的单元,或者可以将它们合并在一起实现。地图处理装置3000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
在本实施例中,地图处理装置3000可以是任意的基于地图应用提供的地图服务提供对应的应用服务的应用,例如,地图处理装置3000可以是基于地图服务提供共享车辆的使用服务的应用。
<地图处理设备>
在本实施例中,还提供一种地图处理设备4000,如图7所示,包括:存储器4100以及处理器4200。
储存器4100,用于存储可执行的指令以及地图中间件。
地图中间件包括地图元素数据组件、地图元素视图组件以及转换处理组件。地图元素数据组件用于设置不同类型的地图元素的元素数据。地图元素视图组件用于设置不同类型的地图元素的视图显示参数。转换处理组件用于确定在不同的地图应用中、与所述地图元素数据组件或所述地图元素视图组件对应的地图组件,通过转换调用所述对应的地图组件来实现地图绘制显示。
处理器4200,用于根据所述可执行的指令的控制,调用所述地图中间件实施如本实施例中提供的任意一项所述地图处理方法。
在本实施例中,地图处理设备4000可以是如手机、平板电脑、掌上电脑、台式计算机、笔记本电脑这类的电子设备。在一个具体的例子中,地图处理设备4000可以是安装或加载有基于地图应用提供的地图服务提供对应的应用服务的应用的手机。
地图处理设备4000还可以包括其他装置,例如,如图1所示的电子设备1000,还可以包括显示装置等。
<地图中间件>
在本实施例中,还提供一种地图中间件5000,如图8所示,包括:
地图元素数据组件5100,用于设置不同类型的地图元素的元素数据;
地图元素视图组件5200,用于设置不同类型的地图元素的视图显示参数;
以及转换处理组件5300,用于确定在不同的地图应用中、与所述地图元素数据组件或所述地图元素视图组件对应的地图组件,通过转换调用所述对应的地图组件来实现地图绘制显示。
地图中间件5000的具体例子在前文中已经详细描述,在此不再赘述。
在本实施例中,地图中间件5000可以具体各种具体的实施形式,例如,地图中间件5000可以是能是设置在任意的应用中的软件模块,或者,地图中间件5000可以是被其他应用嵌入的补丁、嵌入件等,或者,地图中间件5000还可以封装成软件工具开发包形式(例如SDK)对外发布,供其他应用加载或者调用。
<可读存储介质>
在本实施例中,还提供一种可读存储介质,可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行如本实施例所述的地图处理方法。或者,所述可读存储介质中存储有可被计算机读取调用的、本实施例中提供的地图中间件。
可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
以上已经结合附图描述了本发明的实施例,根据本实施例,提供一种地图处理方法、装置、设备、地图中间件以及可读存储介质,,通过包括地图元素数据组件、地图元素视图组件以及转换处理组件的地图中间件,可以设置需显示的地图元素的元素数据以及视图显示参数,并转换调用对应的地图应用的地图组件来绘制包括需显示的地图元素的地图进行显示,以此实现在不同的地图应用提供的地图服务之间进行快速切换,使得基于地图服务实现业务功能的应用,可以无需针对国内外不同的运营环境重复实现相同的业务功能,极大降低应用开发以及维护所需的成本,并有效保证国内外不同的运营环境中应用的用户体验一致性,有助于实现应用的全球化推广。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。