通过lua配置地图样式的方法与流程

文档序号:19431280发布日期:2019-12-17 16:50阅读:790来源:国知局
通过lua配置地图样式的方法与流程

本发明涉及一种室内地图渲染样式配置方法。



背景技术:

随着移动互联网的不断发展,人们对室内地图的需要不断增加,无论是商场、医院、展会、停车场等场合,都需要一种高效的室内地图展示方式。为了满足用户在不同应用场景下的不同需求,开发人员在进行相应的app开发时,需要一种方便、快速、低门槛的地图样式配置方式。

现有的地图渲染引擎产品中,大部分不支持样式的用户自定义。已有实现的解决方案中,一种是通过代码层面设置地图显示样式,对开发人员开放有限,甚至是完全不开放。这种解决方式对开发人员技术水平要求较高,且开发效率低下。另外一部分产品可以通过主题(theme)文件、json配置文件等方式,可以对地图样式进行有限的更改。主题文件一般需要特定的软件来编辑,且生成的文件较大,不利于在移动端进行推广;json格式则在web端有一定的优势。



技术实现要素:

本发明的目的是提供一种灵活、方便的室内地图渲染样式配置方法。

为了达到上述目的,本发明的技术方案是提供了一种通过lua配置地图样式的方法,地图采用分层方式进行渲染,每个图层是对各几何元素的符号化,其同一几何元素在不同图层具有不同的渲染样式,其特征在于,所述方法包括以下步骤:

步骤1、根据不同几何元素在不同图层的渲染样式,为每个图层设计反应各几何元素在当前图层的渲染样式的lua配置文件;

步骤2、通过c++调用lua配置文件启动对各个图层的循环渲染,其中,对当前图层的渲染包括以下步骤:

添加当前图层后,判断lua配置文件中是否存在与当前图层名称相同的配置,若无,则当前图层创建失败,若有,则读取lua配置文件对当前图层的各几何元素进行渲染,从而完成当前图层的渲染。

优选地,在所述步骤1中,用户对所述lua配置文件中特定图层的特定几何元素默认样式进行修改从而形成特定样式;

在所述步骤2中,对当前图层进行渲染具体包括如下步骤:

步骤2.1、创建当前图层后,判断lua配置文件中是否存在与当前图层名称相同的配置,若无,则当前图层创建失败,若有,进入步骤2.2;

步骤2.2、读取lua配置文件中的相应配置,遍历当前图层的每个几何元素进行渲染,对于当前几何元素而言,判断是否为特定样式,若是,则读取lua配置文件中的特定样式后,按照特定样式对当前几何元素进行渲染,若不是,则读取lua配置文件中的默认样式后,按照默认样式对当前几何元素进行渲染;

步骤2.3、遍历完当前图层的所有几何元素后,完成对当前图层的渲染。

本发明实现了一种灵活、方便的室内地图渲染样式配置方法,通过lua脚本配置文件,用户可以对整个图层、单个或者一类几何元素进行样式设置,并可以快速直观地查看显示效果。

附图说明

图1为本发明的总体流程图;

图2为本发明中的添加一个图层的流程图;

图3为利用本发明的方法创建的frame层的效果图;

图4为利用本发明的方法添加area层的效果图;

图5为利用本发明的方法添加文字层的效果图;

图6为2d显示效果图;

图7为对单个信息点修改后的效果图;

图8为对一类信息点修改后的效果图;

图9为添加公共实施标记后的效果图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

室内地图实现时,为了提高渲染效率、方便渲染元素的管理,通常都采用分层的方式进行渲染。每一个渲染图层都是对基本图形元素,即渲染元素(例如点、线、面等)的符号化,且都有自己特有的渲染样式。同样一个渲染元素,例如一个点,在不同的图层中可能就会有不同的显示样式。在facility图层,一个点可能表示电梯口、洗手间等公共设施,就需要用对应的图标显示。而在area图层,一个点就可能表示一个收藏点。在定位层,一个点就可能表示一个定位点等等。同时,渲染元素若具有导航地图信息,其就是一个信息点(以下简称为poi)。同一个poi在2d和3d下也有不同的显示样式。这样,同一种渲染元素在不同图层下的显示样式差异,都可以通过配置文件来实现。

通常情况下,地图显示的所有内容都是可以配置的,比如填充颜色、边框颜色、粗细、图标。发明通过配置文件提供了丰富的可配置选项,完全可以满足各种配色要求,可以展示不同风格的地图。在本发明中,关于地图的数据和样式的设计是分离的,简单点说,数据只是描述了渲染元素的一些常用属性,比如id、name等。而样式则是独立于这些东西单独存在,这样就意味着样式无需关注数据的图形,只需要提供对应的配置,就可以让各种各样的数据以自己的需要显示在地图上。

基于以上原理,结合图1,本发明提供的一种通过lua配置地图样式的方法通过c++与lua配置文件的相互调用实现,其实现流程如下:

步骤1、启动c++模块;

步骤2、注册lua模块;

步骤3、读取反应各几何元素在当前图层的渲染样式的lua配置文件;

步骤4、通过c++调用lua配置文件启动对各个图层的循环渲染,直至对每个图层都渲染完毕。

其中,结合图2,对当前图层的渲染包括以下步骤:

步骤4.1、创建当前图层后,判断lua配置文件中是否存在与当前图层名称相同的配置,若无,则当前图层创建失败,若有,进入步骤4.2。

步骤4.2、读取lua配置文件中的相应配置,遍历当前图层的每个渲染元素进行渲染,对于当前渲染元素而言,判断是否为特定样式,若是,则读取lua配置文件中的特定样式后,按照特定样式对当前渲染元素进行渲染,若不是,则读取lua配置文件中的默认样式后,按照默认样式对当前渲染元素进行渲染。用户对lua配置文件中特定图层的特定渲染元素默认样式进行修改从而形成特定样式。

步骤4.3、遍历完当前图层的所有渲染元素后,完成对当前图层的渲染。

以下以一个实例来对本发明做进一步说明:

建立某个地图时,首先创建frame层,只有frame层的情况如图3所示,frame层用于确定地图的范围。

随后添加area层,area层用于渲染商铺、车位等关键poi的图层,通过lua配置各关键poi的属性,如图4所示。

再如图5所示添加文字层,文字层用于显示例如商铺名称等poi关键信息。

通过配置文件,可以方便配置2d渲染方式或者3d渲染方式,而不需要开发者改动一行代码,如图6所示为2d的显示方式。

通过本发明还可以灵活地修改单个poi的样式:

1)如果用户需要对特定的poi设置不同的样式,根据poi的id,就可以设置不同颜色、高度、纹理等信息,可以得到如图7所示的图。

2)如果用户想对某一类进行设置,根据categoryid就可以批量设置某一类型的poi样式,得到如图8所示的图。

用户还可以根据需要添加公共设施显示,如图9所示。

本发明中的样式以图层为基本单位设置,图层名称与配置文件一一对应,当配置文件中没有与创建图层名称相同的配置时,图层添加失败。每个图层都必须有一个默认样式,否则无法渲染poi元素,如果某个poi要有特定的渲染样式,需要对其进行单独配置,以id对应。

本发明可以通过lua配置文件方便快捷的配置地图显示样式,对开发人员技术门槛要求较低,开发效率高。文本方式的配置文件,不需要额外安装其他软件,通过系统自带的文本编辑器就可以编辑,配置方便、直观、可读性强。开发者在android系统或者ios系统的移动终端设备上开发基于室内地图的应用程序时,可以轻松实现2d\3d相互切换的自定义的地图展示样式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1