本技术涉及地图,尤其涉及一种地图显示方法、装置、设备及存储介质。
背景技术:
1、实际业务场景中,通常会在一个应用中预先配置至少两个地图服务,这样,可以根据实际场景的需求,考虑网络稳定性、地图服务可靠性等原因,从至少两个地图服务中选择一种性能较优的地图服务,为用户提供地图支撑。
2、然而,不同地图服务所采用的数据类型不同,在多个地图中,要实现地图间的切换使用,则需预先根据使用的地图服务,创建相应地图所需的数据类型和视图类型。加之,地图包含多种地图元素,如点、线、面和圆等,这样,就需要创建大量的数据类型和视图类型,易导致类型爆炸,降低了开发效率,提升了后续维护难度,也降低了多地图间切换使用的效率。
技术实现思路
1、本技术实施例提供一种地图显示方法、装置、设备及存储介质,用以提升开发效率,降低后续维护难度,提升了多地图间切换使用的效率。
2、本技术实施例提供的具体技术方案如下:
3、第一方面,本技术实施例提供一种地图显示方法,应用于地图客户端,所述方法包括:
4、响应于地图显示指令,获取需显示的地图元素的基础数据类型;
5、基于所述基础数据类型,生成所述地图元素对应的目标地图所需的目标数据类型,并将所述地图元素对应的数据,作为所述目标数据类型的对象加载到所述目标地图中;
6、在对所述对象进行回调渲染时,基于所述基础数据类型对应的所述目标地图所需的目标视图类型或渲染器,在所述目标地图中渲染得到所述地图显示指令对应的地图显示结果。
7、采用该申请提供的一种地图显示方法,通过一套通用的基础数据类型,实现多地图切换,减少了数据类型和视图类型的种类,解决了类型爆炸问题,大幅提升了开发效率;后续维护仅需维护这一套通用的基础数据类型,降低了维护难度,同时,降低了代码量,也提升了多地图间切换使用的效率。
8、在一种可能的实现方式中,所述获取需显示的地图元素的基础数据类型之后,在所述基于所述基础数据类型,生成所述地图元素对应的目标地图所需的目标数据类型之前,还包括:
9、基于所述地图元素的类型,获取所述目标数据类型;
10、确定未获取到所述目标数据类型。
11、在一种可能的实现方式中,所述将所述地图元素对应的数据,作为所述目标数据类型的对象加载到所述目标地图中之后,在所述基于所述基础数据类型对应的所述目标地图所需的目标视图类型或渲染器,在所述目标地图中渲染得到所述地图显示指令对应的地图显示结果之前,还包括:
12、响应于所述目标地图的回调请求,基于所述对象对应的目标数据类型,反向查找到所述地图元素对应的所述基础数据类型;
13、基于所述基础数据类型,生成所述地图元素对应的所述目标地图所需的目标视图类型或渲染器。
14、上述方法,在地图回调视图显示时,通过反向查找,确定地图元素对应的基础数据类型,并基于该基础数据类型生成对应地图显示所需的目标视图类型或渲染器,实现了地图元素的基础数据类型与目标地图的视图类型或渲染器的解耦,解决了现有技术中地图元素的数据类型与目标地图的地图类型和视图类型绑定的缺陷,同时也提升了代码的可扩展性。
15、在一种可能的实现方式中,所述反向查找到所述地图元素对应的基础数据类型之后,在所述基于所述基础数据类型,生成所述地图元素对应的所述目标地图所需的目标视图类型或渲染器之前,还包括:
16、基于所述地图元素的类型,获取所述目标视图类型或渲染器;
17、确定未获取到所述目标视图类型或渲染器。
18、在一些可能的实现方式中,若所述地图元素的类型为点,则所述反向查找到所述地图对应的所述基础数据类型之后,还包括:
19、基于所述基础数据类型包括的视图属性,生成显示视图;
20、所述基于所述基础数据类型对应的所述目标地图所需的目标视图类型,在所述目标地图中渲染得到所述地图显示指令对应的地图显示结果,包括:
21、将所述显示视图作为所述目标视图类型对应的对象的子视图,添加到所述目标地图中,得到所述地图显示指令对应的地图显示结果。
22、在一些可能的实现方式中,若所述地图元素的类型为线或面,则所述基于所述基础数据类型对应的所述目标地图所需的渲染器,在所述目标地图中渲染得到所述地图显示指令对应的地图显示结果,包括:
23、基于所述基础数据类型,利用所述渲染器在所述目标地图中对所述地图元素的数据进行渲染,得到所述地图显示指令对应的地图显示结果。
24、在一种可能的实现方式中,所述地图元素的类型包括:点、线、面中的部分或全部;
25、若所述地图元素的类型为点,则所述基础数据类型包括需显示的点的经纬度、marker图标和层级关系中的部分或全部;
26、若所述地图元素的类型为线,则所述基础数据类型包括需显示的各个点的经纬度、线属性信息中的部分或全部,其中,所述线属性信息包括颜色和/或线宽;
27、所述地图元素的类型为面,则所述基础数据类型包括需显示的各点对应的经纬度、面属性信息和所述各点之间的连接样式中的部分或全部,其中,所述面属性信息包括面的填充颜色、边框颜色、边框宽度中的部分或全部。
28、上述方法,可以通过一套通用的基础数据类型,将通用数据添加到地面上,提升了多地图间切换使用的效率,也统一了视图显示模式。
29、第二方面,本技术实施例提供一种地图显示装置,应用于地图客户端,所述装置包括:
30、获取模块,用于响应于地图显示指令,获取需显示的地图元素的基础数据类型;
31、生成模块,用于基于所述基础数据类型,生成所述地图元素对应的目标地图所需的目标数据类型;
32、数据加载模块,用于将所述地图元素对应的数据,作为所述目标数据类型的对象加载到所述目标地图中;
33、渲染模块,用于在对所述对象进行回调渲染时,基于所述基础数据类型对应的所述目标地图所需的目标视图类型或渲染器,在所述目标地图中渲染得到所述地图显示指令对应的地图显示结果。
34、在一种可能的实现方式中,所述获取需显示的地图元素的基础数据类型之后,在所述基于所述基础数据类型,生成所述地图元素对应的目标地图所需的目标数据类型之前,所述生成模块还用于:
35、基于所述地图元素的类型,获取所述目标数据类型;
36、确定未获取到所述目标数据类型。
37、在一种可能的实现方式中,所述将所述地图元素对应的数据,作为所述目标数据类型的对象加载到所述目标地图中之后,在所述基于所述基础数据类型对应的所述目标地图所需的目标视图类型或渲染器,在所述目标地图中渲染得到所述地图显示指令对应的地图显示结果之前,所述渲染模块还用于:
38、响应于所述目标地图的回调请求,基于所述对象对应的目标数据类型,反向查找到所述地图元素对应的基础数据类型;
39、基于所述基础数据类型,生成所述地图元素对应的所述目标地图所需的目标视图类型或渲染器。
40、在一种可能的实现方式中,所述反向查找到所述地图元素对应的基础数据类型之后,在所述基于所述基础数据类型,生成所述地图元素对应的所述目标地图所需的目标视图类型或渲染器之前,所述渲染模块还用于:
41、基于所述地图元素的类型,获取所述目标视图类型或渲染器;
42、确定未获取到所述目标视图类型或渲染器。
43、在一种可能的实现方式中,若所述地图元素的类型为点,则所述反向查找到所述地图对应的所述基础数据类型之后,所述渲染模块还用于:
44、基于所述基础数据类型包括的视图属性,生成显示视图;
45、所述渲染模块具体用于:
46、将所述显示视图作为所述目标视图类型对应的对象的子视图,添加到所述目标地图中,得到所述地图显示指令对应的地图显示结果。
47、在一种可能的实现方式中,若所述地图元素的类型为线或面,则所述渲染模块具体用于:
48、基于所述基础数据类型,利用所述渲染器在所述目标地图中对所述地图元素的数据进行渲染,得到所述地图显示指令对应的地图显示结果。
49、在一种可能的实现方式中,所述地图元素的类型包括:点、线、面中的部分或全部;
50、若所述地图元素的类型为点,则所述基础数据类型包括需显示的点的经纬度、marker图标和层级关系中的部分或全部;
51、若所述地图元素的类型为线,则所述基础数据类型包括需显示的各个点的经纬度、线属性信息中的部分或全部,其中,所述线属性信息包括颜色和/或线宽;
52、所述地图元素的类型为面,则所述基础数据类型包括需显示的各点对应的经纬度、面属性信息和所述各点之间的连接样式中的部分或全部,其中,所述面属性信息包括面的填充颜色、边框颜色、边框宽度中的部分或全部。
53、第三方面,本技术实施例提供一种电子设备,包括:
54、存储器,用于存储计算机程序或指令;
55、处理器,用于执行所述存储器中的计算机程序或指令,使得如第一方面中任一所述的方法被执行。
56、第四方面,本技术实施例提供一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面中任一项所述的方法。
57、第五方面,本技术实施例提供一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。
58、另外,第二方面至第五方面中任意一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
59、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。