CN106847068B - 一种地图转换方法、装置和计算设备 - Google Patents
一种地图转换方法、装置和计算设备 Download PDFInfo
- Publication number
- CN106847068B CN106847068B CN201710053602.7A CN201710053602A CN106847068B CN 106847068 B CN106847068 B CN 106847068B CN 201710053602 A CN201710053602 A CN 201710053602A CN 106847068 B CN106847068 B CN 106847068B
- Authority
- CN
- China
- Prior art keywords
- pixel coordinate
- map
- longitude
- zoom
- level
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
- G09B29/005—Map projections or methods associated specifically therewith
Abstract
本发明公开了一种地图转换方法,在计算设备中执行,所述方法包括:获取每个经纬度点的第一像素坐标,根据所述第一像素坐标在地图显示区域中绘制第一地图;接收用户对于第一地图的交互操作;计算一个参考经纬度点的第二像素坐标;根据参考经纬度点的第一像素坐标、第二像素坐标和/或第一地图的第一缩放级别、第二缩放级别确定转换矩阵;根据转换矩阵和第一像素坐标确定第一地图中各经纬度点的第二像素坐标;根据各经纬度点的第二像素坐标在地图显示区域中绘制第二地图。此外,本发明还公开了能够实施上述方法的地图转换装置,和包括上述装置的计算设备。
Description
技术领域
本发明涉及地图数据处理技术领域,尤其涉及一种地图转换方法、装置和计算设备。
背景技术
由于地图展示信息的直观性和归纳性,越来越多的开发者选择将与地理位置相关的信息(例如商家分布信息、用户画像信息、气象信息等)绘制在地图上呈现给用户。地图上承载的信息种类繁多,数据量巨大。
墨卡托投影是将用经纬度表示的地理位置转化为平面坐标进行展示的常用方法。在展示地图时,首先从服务器处获取地图数据,随后由用户本地的CPU(中央处理器)对各经纬度点进行墨卡托转换,得出各经纬度点在屏幕可视区域的像素坐标,最后由GPU(图形处理器)根据各点的像素坐标来绘制地图。用户可以对地图进行交互操作,例如缩放、平移等,这时,CPU需要重新依次对各点进行墨卡托坐标转换,即重新计算交互后各点的像素坐标。由于墨卡托转换计算的复杂性,其在现阶段一般由CPU来计算。地图数据量巨大,从而CPU的计算负担很大,计算需要的时间长,会造成地图绘制不及时以及网页卡顿的问题。
发明内容
为此,本发明提供一种地图转换方法、装置和计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种地图转换方法,在计算设备中执行,该方法包括:获取每个经纬度点的第一像素坐标,根据第一像素坐标在地图显示区域中绘制第一地图,其中,第一像素坐标为所述经纬度点在地图显示区域中的坐标;接收用户对于第一地图的交互操作;获取一个参考经纬度点的第二像素坐标,第二像素坐标为交互后所述参考经纬度点在地图显示区域中的坐标;根据参考经纬度点的第一像素坐标、第二像素坐标和/或第一地图的第一缩放级别、第二缩放级别确定转换矩阵,其中,第一缩放级别为第一地图的缩放级别,第二缩放级别为所述第一地图在交互后的缩放级别;根据转换矩阵和第一像素坐标确定第一地图中各经纬度点的第二像素坐标;根据各经纬度点的第二像素坐标在地图显示区域中绘制第二地图。
可选地,在根据本发明的地图转换方法中,在获取每个经纬度点的第一像素坐标的步骤之前,还包括:从服务器处获取地图中所包括的多个经纬度点的数据;将每一个经纬度点转化为第一像素坐标。
可选地,在根据本发明的地图转换方法中,交互操作包括缩放、平移。
可选地,在根据本发明的地图转换方法中,转换矩阵按照以下步骤确定:确定像素坐标差,像素坐标差为第二像素坐标与第一像素坐标之差;确定缩放级别差,缩放级别差为第二缩放级别与第一缩放级别之差;根据像素坐标差和/或所述缩放级别差确定转换矩阵。
可选地,在根据本发明的地图转换方法中,第一像素坐标为:[x,y,z,w]T,其中,x为横向坐标,y为纵向坐标,z、w为参数;转换矩阵为:
其中,s1为第一缩放级别,s2为第二缩放级别,△x为像素坐标差中的横向坐标差,△y为像素坐标差中的纵向坐标差。
可选地,在根据本发明的地图转换方法中,z=0,w=1.0。
可选地,在根据本发明的地图转换方法中,确定第一地图中各经纬度点的第二像素坐标的步骤由计算设备的图形处理器来完成。
可选地,在根据本发明的地图转换方法中,各经纬度点的第二像素坐标按照以下步骤确定:将转换矩阵传递至所述图形处理器;由图形处理器将转换矩阵与每一个经纬度点的第一像素坐标相乘,得到各经纬度点的第二像素坐标。
根据本发明的一个方面,提供一种地图转换装置,驻留于计算设备中,该装置包括:绘制模块,适于获取每个经纬度点的像素坐标,根据像素坐标在地图显示区域中绘制地图,其中,像素坐标为所述经纬度点在地图显示区域中的坐标;交互模块,适于接收用户对于地图的交互操作;像素坐标确定模块,适于:获取一个参考经纬度点的第一像素坐标、第二像素坐标,参考经纬度点的第一像素坐标、第二像素坐标分别为参考经纬度点在交互前、交互后的像素坐标;根据参考经纬度点的第一像素坐标、第二像素坐标和/或地图的第一缩放级别、第二缩放级别确定转换矩阵,其中,第一缩放级别为交互前的地图的缩放级别,第二缩放级别为交互后的地图的缩放级别;根据转换矩阵和各经纬度点的第一像素坐标确定地图中各经纬度点的第二像素坐标。
根据本发明的一个方面,提供一种计算设备,包括:至少一个中央处理器;至少一个图形处理器;存储有程序指令的至少一个存储器,所述程序指令包括如权利要求9-15中任一项所述的地图转换装置;其中,中央处理器和图形处理器被配置为适于根据存储器中存储的地图转换装置执行如权利要求1-8中任一项所述的地图转换方法。
本发明的技术方案充分考虑了地图交互操作的特点,即对于缩放、平移等交互操作,地图上的每个点的变化都是一致的。因此,在本发明的技术方案中,优化了交互后对各点进行墨卡托转换求得像素坐标的流程,即,不再一一计算每个经纬度点的第二像素坐标,而是仅计算一个参考点的第二像素坐标,据此得出转换矩阵,将转换矩阵与各经纬度点的第一像素坐标相乘,从而得出所有点的第二像素坐标。在上述流程中,由于墨卡托转换计算的复杂性,参考点的第二像素坐标由CPU来计算。考虑到GPU的特点,除参考点之外的其他点的第二像素坐标均可以由GPU计算完成,这大大减小了CPU的计算负担,同时也充分利用了GPU并行计算的优势,减少了计算时间,从而提高了地图转换的计算效率和绘制效率。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的网络系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的结构图;
图3示出了根据本发明一个实施例的地图转换装置300的结构图;
图4示出了根据本发明另一个实施例的地图转换装置300的结构图;
图5示出了根据本发明一个实施例的地图转换方法500的流程图;
图6示出了根据本发明另一个实施例的地图转换方法600的流程图;
图7示出了方法600中服务器110、中央处理器204以及图形处理器248之间的交互图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的网络系统100的示意图。图1所示的网络系统100包括计算设备200和服务器110。应当指出,图1中的网络系统100仅是示例性的,在具体的实践情况中,网络系统100中可以有不同数量的计算设备以及服务器,多个计算设备以及服务器也可以分别部署于多个地理位置,服务器可以实现为单个设备也可以实现为集群,本发明对网络系统中所包括的计算设备、服务器的数量以及部署细节不做限制。
计算设备200可以是诸如PC、笔记本电脑、手机、平板电脑、笔记本电脑、电视盒子、可穿戴设备等可以接入互联网的设备。计算设备200可以经由互联网与服务器110建立连接,进而能够向服务器110发起请求,并接收服务器110返回的数据。计算设备200可以以有线的方式与服务器110建立连接,也可以通过3G、4G、WiFi、个人热点、IEEE802.11x、蓝牙等无线的方式与服务器110建立连接,本发明对计算设备200与服务器110之间的连接方式不做限制。
在网络系统100中,计算设备200为客户端,可以向服务器110发起获取地图数据的请求。地图数据包括各点的经纬度坐标以及在该点处的相关信息,例如商家分布信息、用户画像信息等。服务器110中存储有地图数据(或者,服务器110连接至数据存储装置120,数据存储装置120中存储有地图数据),可以向客户端提供与地理位置相关的服务。响应于计算设备200的请求,服务器110将地图数据发送至计算设备200。计算设备200接收到地图数据后,在本地由CPU(Central Processing Unit,中央处理器)对地图数据进行处理,将原始的经纬度位置转化为像素坐标,并根据像素坐标在指定区域(例如浏览器的可视区域)绘制地图。这时的地图是默认条件下的初始地图,一般来说,用户会对初始地图进行缩放、平移等交互操作,以获取自己需要的信息。在用户执行对初始地图的交互操作后,需要重新计算各点的像素坐标。当然用户也可能进行多次交互操作,每交互一次,均需要重新计算各点的像素坐标。由于地图数据量巨大,CPU的计算负担很大,计算需要的时间长,会造成地图绘制不及时以及网页卡顿的问题。因此,本发明对交互后的像素坐标计算方法进行了改进,使得该过程不再仅由CPU完成计算,而是由CPU和GPU(Graphics Processing Unit,图形处理器)协作完成计算,大大减小了CPU的计算负担,同时也充分利用了GPU并行计算的优势,提高了GPU的使用率,减少了计算时间,从而提高了地图转换的计算效率和绘制效率。另外,应当指出,在实际应用中,绘制地图时除了需要将一个经纬度坐标转化成像素坐标,也需要将该经纬度坐标处的相关信息转化成像素坐标,这样才能在地图上显示多重可视化信息。在地图绘制中,相关信息是依附于经纬度坐标而存在的。将相关信息转化成像素坐标的过程和将经纬度坐标转化为像素坐标的过程类似,因此,在下文中,将以经纬度坐标转化为像素坐标为例,说明本发明的技术方案的具体过程。
图2示出了根据本发明一个实施例的计算设备200的结构图。在基本配置202中,计算设备200典型地包括系统存储器206和一个或者多个中央处理器204。存储器总线208可以用于在中央处理器204和系统存储器206之间的通信。中央处理器204是计算设备200的运算核心和控制核心,其主要功能是解释计算机指令以及处理各种软件中的数据。
取决于期望的配置,中央处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。中央处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与中央处理器204一起使用,或者在一些实现中,存储器控制器218可以是中央处理器204的一个内部部分。
计算设备200还包括图形处理器248,可以经由一个或多个A/V端口与显示器等外部设备通信。图形处理器248是一种专门进行图像运算的微处理器,具有浮点运算、并行计算的特点,其可以迅速计算出图形的所有像素,并在显示器的指定位置绘制出相应的图形。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上利用程序数据224进行操作。应用222在系统存储器中体现为多段代码指令,例如,应用222可以是可执行程序(.exe文件)或网页中的一段JS代码。中央处理器204和图形处理器248可以执行这些代码指令从而实现应用222所指示的功能。在本发明中,应用222中包括地图转换装置300。地图转换装置300是一个由多行代码组成的指令集合,其能够指示CPU和GPU进行相应的计算、相互协作,从而实现高效的地图转换。
图3示出了根据本发明一个实施例的地图转换装置300的结构图。图3是对装置300的功能模块的划分。如图3所示,装置300包括绘制模块310、交互模块320和像素坐标确定模块330。应当指出,本发明的主旨在于“地图转换”,即当用户对地图进行交互操作后,如何快速生成新的地图。相应地,在以下对图3所示的装置300的描述中省略了一些不必要的部分(例如从服务器处获取多个经纬度点的数据,将获取到的经纬度点转化为第一像素坐标,等等),而是着重阐述基于用户的交互操作将第一地图转化为第二地图的过程。
绘制模块310获取每个经纬度点的像素坐标,并根据像素坐标在地图显示区域中绘制地图。其中,像素坐标为经纬度点在地图显示区域中的坐标。地图显示区域即预设的用于显示地图的区域,例如,地图显示区域可以是浏览器的可视区域,或是浏览器可视区域的一部分。地图显示区域可以由本领域技术人员根据需要自行设置,本发明对此不做限制。
绘制模块310实现的是一个图像绘制的过程,从硬件的角度来说,绘制模块310的功能一般由计算设备的GPU来实现,即GPU获取每个经纬度点的像素坐标并存储,根据像素坐标在计算设备的输出装置的地图显示区域中绘制地图。应当指出,绘制模块310仅用于获取各经纬度点的像素坐标,并根据像素坐标来绘制地图,而不参与像素坐标的计算。像素坐标的计算由像素坐标确定模块330来完成,该部分将于下文中详述。
基于用户的交互操作,地图显示区域中显示的地图会产生变化,而地图变化的本质是各经纬度点的像素坐标发生了变化。为了叙述方便,下文中将绘制模块310在某一时刻绘制出的地图记为“第一地图”,第一地图中各经纬度点的像素坐标记为“第一像素坐标”,第一地图的缩放级别记为“第一缩放级别”;将用户对第一地图进行交互操作后所得出的地图记为“第二地图”,第二地图中各经纬度点的像素坐标记为“第二像素坐标”,第二地图的缩放级别记为“第二缩放级别”。应当指出,第一地图、第二地图仅用于表示一次交互操作前后的两个地图,而并不特指某个地图,例如,第一地图可以是初始地图,也可以是经过一次或多次用户交互操作之后的地图。另外,第一地图、第二地图也不是绝对的,例如,一次交互操作后所得的第二地图也是下一次交互操作的第一地图。
绘制模块310获取每个经纬度点的第一像素坐标,根据第一像素坐标在地图显示区域中绘制第一地图。为了后续计算得出交互后的第二地图,这里需要由像素坐标确定模块330记下一个参考经纬度点的第一像素坐标p1,以及第一缩放级别s1。参考经纬度点由本领域技术人员自行指定,其原则上可以是地图中的任意一个经纬度点。考虑到对计算流程以及性能的优化,本领域技术人员也可以采用特定的规则来指定参考经纬度点,例如,将从服务器处获取的第一个经纬度点数据作为参考经纬度点。应当指出,本发明对参考经纬度点的设置不做限制。缩放级别即地图的zoomlevel,不同的zoomlevel代表地图上不同的比例尺。第一缩放级别s1可以通过调用百度地图开放平台的getZoom()方法来实现,即s1=getZoom()。当然,除了调用getZoom()方法外,本领域技术人员也可以调用其他平台的其他方法、或自行编写代码来实现缩放级别的获取,本发明对获取缩放级别的具体方法不做限制。
交互模块320可以对第一地图进行监听,接收用户对于第一地图的交互操作。从硬件角度来说,交互模块320的功能由计算设备的CPU来实现。根据一种实施例,交互操作包括缩放、平移(包括上下左右四个方向上的平移)。在其他的实施例中,交互操作还可以包括旋转等。应当指出,本发明对于交互操作的具体形式不做限制,只要该交互操作对地图中所有点带来的变化一致即可。
在交互模块320接收到用户的交互操作后,像素坐标确定模块330首先获取一个参考经纬度点的第二像素坐标。获取参考经纬度点的第二像素坐标,即,对参考经纬度点的经纬度坐标进行墨卡托转换,从而得出第二像素坐标。由于墨卡托转换计算的复杂性,从硬件角度来说,其在现阶段一般由计算设备的CPU来实现。根据一种实施例,第二像素坐标的计算可以采用百度地图开放平台的pointToPixel()方法,对于参考经纬度点a,执行p2=pointToPixel(a)即可得出点a的第二像素坐标p2。当然,除了调用pointToPixel()方法外,本领域技术人员也可以调用其他平台的其他方法、或自行编写代码来实现第二像素坐标的计算,本发明对获取参考经纬度点的第二像素坐标的具体方法不做限制。
像素坐标确定模块330可以确定交互后的第二缩放级别s2,例如可以在交互后调用getZoom()方法获取第二缩放级别,即s2=getZoom()。该步骤从硬件角度来说,一般也由CPU来实现。
随后,根据已确定的参考经纬度点的第一像素坐标p1、第二像素坐标p2和/或第一缩放级别s1、第二缩放级别s2确定转换矩阵。这里的“和/或”由用户的具体交互操作而定。例如,若用户仅对第一地图进行了平移,则根据p1、p2确定转换矩阵即可;若用户对第一地图既进行了平移,又进行了缩放,则需要根据p1、p2、s1、s2来确定转换矩阵。转换矩阵的确定从硬件角度来说,一般由CPU来实现。
根据一种实施例,转换矩阵可以按照以下步骤确定:首先,确定像素坐标差,即参考经纬度点的第二像素坐标与第一像素坐标之差;随后,确定缩放级别差,即第二缩放级别与第一缩放级别之差;最后,根据像素坐标差和缩放级别差确定转换矩阵。应当指出,转换矩阵可以有多种格式,具体采用哪种格式可以由本领域技术人员自行设置。例如,根据一种实施例,转换矩阵可以是以下格式:
其中,s1、s2分别为第一缩放级别、第二缩放级别,△x为像素坐标差中的横向坐标差,△y为像素坐标差中的纵向坐标差。
在确定转换矩阵后,根据转换矩阵和各点的第一像素坐标确定第一地图中各经纬度点的第二像素坐标。根据一种实施例,考虑到GPU并行计算的优势,该步骤由GPU来实现。即,CPU将转换矩阵传递至GPU,由GPU将转换矩阵与GPU中存储的各点的第一像素坐标向量相乘,得出各点的第二像素坐标,这样大大减少了计算时间,从而提高了地图转换的效率。像素坐标在GPU中以四维向量的格式存储,例如,某个点q的像素坐标为[x,y,z,w]T,其中,x,y,z分别为三维坐标系的x、y、z轴方向上的坐标,对于平面地图来说,z轴坐标z=0。w为齐次坐标,主要用于方便GPU进行向量计算。一般来说,基于GPU的浮点特性,w通常被设置为一个值为1的浮点数,例如1.0,1.00等,本发明对w的具体设置不做限制。
根据一种实施例,GPU接收到转换矩阵后,将转换矩阵与各点的第一像素坐标相乘,即得到每一个经纬度点的第二像素坐标。例如,将式(1)所示的转换矩阵与GPU中存储的点q的像素坐标[x,y,0,1.0]T相乘,即可得到点q的第二像素坐标[(s2-s1)x+△x,(s2-s1)y+△y,0,1.0]T。应当指出,虽然之前已计算出了参考经纬度点的第二像素坐标,但是为了保证GPU并行计算的效率,使得GPU通过矩阵乘法计算各点的第二像素坐标时不被中断,GPU也可以通过矩阵与第一像素坐标相乘的方法再次计算参考经纬度点的第二像素坐标。但是这样一来,参考经纬度点的第二像素坐标便发生了重复计算,造成了一定的资源浪费,有时也会产生其他错误。针对该问题,一种优选的实施方式是,将从服务器处获取的第一个经纬度点数据作为参考经纬度点,在GPU通过矩阵乘法计算各点的第二像素坐标时,直接从第二个经纬度点开始计算,从而既避免了GPU计算第二像素坐标时被中断的问题,也避免了参考经纬度点的第二像素坐标的重复计算问题。
在确定各点的第二像素坐标后,绘制模块310根据各点的第二像素坐标在地图显示区域中绘制第二地图。这样,便完成了基于一次交互操作的地图转换。
图4示出了根据本发明另一个实施例的地图转换装置300的结构图。图4所示的装置300是针对从服务器处获取原始的地图数据开始到基于用户的交互操作进行地图转换的完整的流程的模块划分。如图4所示,装置300包括绘制模块310、交互模块320、像素坐标确定模块330和地图数据获取模块340。
地图数据获取模块340从服务器处获取地图中所包括的多个经纬度点的数据。像素坐标确定模块330将从服务器处获取的经纬度点转化为第一像素坐标。与交互后确定各点的第二像素坐标的过程由CPU和GPU合作实现不同,这里像素坐标确定模块330将从服务器处获取到的经纬度点转化为第一像素坐标的过程完全是由计算设备的CPU实现的。
绘制模块310根据第一像素坐标在地图显示区域中绘制第一地图。交互模块320接收用户对于第一地图的交互操作,基于该交互操作,像素坐标确定模块330计算各经纬度点的第二像素坐标,绘制模块310根据各点的第二像素坐标在地图显示区域中绘制第二地图。交互操作后的地图转换过程与前述图3所示的装置300相同,此处不再赘述。
图5示出了根据本发明一个实施例的地图转换方法500的流程图。方法500展示的是基于用户的交互操作将第一地图转化为第二地图的过程,其可以由前述图3所示的装置300控制实行。如图5所示,该方法始于步骤S510。
在步骤S510中,获取每个经纬度点的第一像素坐标,根据第一像素坐标在地图显示区域中绘制第一地图。该步骤的具体过程可以参考前述对绘制模块310的描述,此处不再赘述。
随后,在步骤S520中,接收用户对于第一地图的交互操作。根据一种实施例,交互操作包括缩放、平移。该步骤的具体过程可以参考前述对交互模块320的描述,此处不再赘述。
随后,在步骤S530中,获取一个参考经纬度点的第二像素坐标。根据一种实施例,参考经纬度点的第二像素坐标可以通过调用pointToPixel()方法来实现。
随后,在步骤S540中,根据参考经纬度点的第一像素坐标、第二像素坐标和/或第一地图的第一缩放级别、第二缩放级别确定转换矩阵。根据一种实施例,转换矩阵可以按照以下步骤确定:首先,确定像素坐标差,即参考经纬度点的第二像素坐标与第一像素坐标之差;随后,确定缩放级别差,即第二缩放级别与第一缩放级别之差(第一缩放级别、第二缩放级别可以通过在交互前后分别调用getZoom()方法获取);最后,根据像素坐标差和缩放级别差确定转换矩阵。转换矩阵的具体格式可以由本领域技术人员根据实际情况自行设置,例如,转换矩阵可以是如式(1)所示的格式。
随后,在步骤S550中,根据转换矩阵和第一像素坐标确定第一地图中各经纬度点的第二像素坐标。根据一种实施例,为了减少计算时间,步骤S550由计算设备的GPU实现,即,将转换矩阵传递至GPU,由GPU将转换矩阵与每一个经纬度点的第一像素坐标相乘,得到各经纬度点的第二像素坐标。
另外,步骤S530~S550的详细过程可以参考前述对像素坐标确定模块330的描述。
随后,在步骤S560中,根据各经纬度点的第二像素坐标在地图显示区域中绘制第二地图。
图6示出了根据本发明另一个实施例的地图转换方法600的流程图。方法600展示的是从服务器处获取地图数据到交互后完成地图转换的过程,其可以由前述图4所示的装置300控制实行。如图6所示,该方法始于步骤S610。
在步骤S610中,从服务器处获取地图中所包括的多个经纬度点的数据。
随后,在步骤S620中,将每一个经纬度点转化为第一像素坐标。应当指出,该步骤一般由计算设备的CPU来执行。
随后,继续顺序执行步骤S630~S680。步骤S630~S680与图5所示的步骤S510~S560一一对应,此处不再赘述。
图7示出了方法600中服务器110、中央处理器204以及图形处理器248之间的交互图,以更明确地示出方法600中各步骤的硬件执行主体。
如图7所示,首先,在步骤S610中,计算设备200从服务器处获取地图中所包括的多个经纬度点的数据。
随后,在步骤S620中,由CPU 204将获取到每一个经纬度点转化为第一像素坐标。根据一种实施例,将经纬度点转化为第一像素坐标可以通过调用pointToPixel()方法来实现。
随后,CPU 204将所有的第一像素坐标发送至GPU 248。随后,在步骤S630中,GPU248获取到每个经纬度点的第一像素坐标并存储后,根据第一像素坐标在地图显示区域中绘制第一地图。
随后,CPU 204监听用户的交互操作。在步骤S640中,CPU 204接收到用户对于第一地图的交互操作。交互操作可以是平移、缩放等,但不限于此,只要交互操作对地图中所有点带来的变化一致即可。
随后,在步骤S650中,CPU 204获取一个参考经纬度点的第二像素坐标。参考经纬度点可以由本领域技术人员自行指定,本发明对参考经纬度点的设置不做限制。根据一种实施例,参考经纬度点的第二像素坐标可以通过调用pointToPixel()方法来获取。
随后,在步骤S660中,CPU 204根据参考经纬度点的第一像素坐标、第二像素坐标和/或第一地图的第一缩放级别、第二缩放级别确定转换矩阵。根据一种实施例,转换矩阵可以按照以下步骤确定:首先,确定像素坐标差,即参考经纬度点的第二像素坐标与第一像素坐标之差;随后,确定缩放级别差,即第二缩放级别与第一缩放级别之差(第一缩放级别、第二缩放级别可以通过在交互前后分别调用getZoom()方法获取);最后,根据像素坐标差和缩放级别差确定转换矩阵。转换矩阵的具体格式可以由本领域技术人员根据实际情况自行设置,例如,转换矩阵可以是如式(1)所示的格式。确定了转换矩阵后,CPU 204将转换矩阵发送至GPU 248。
随后,在步骤S670中,GPU 248将转换矩阵分别与步骤S630中已存储的每一个经纬度点的第一像素坐标相乘,得出各经纬度点的第二像素坐标。步骤S670由GPU 248来执行,大大减小了CPU的计算负担,同时也充分利用了GPU并行计算的优势,减少了计算时间,从而提高了地图转换的计算效率。
随后,在步骤S680中,GPU 248根据各点的第二像素坐标在地图显示区域中绘制第二地图。
当然,用户可能会有多次交互操作,针对每一次交互操作均需要进行地图的转换。即,方法600中的步骤S640~S680可能会重复执行多次,直到用户得到满足需要的地图为止。
A6:A5所述的方法,其中,z=0,w=1.0。
A7:A1所述的方法,其中,所述确定第一地图中各经纬度点的第二像素坐标的步骤由所述计算设备的图形处理器来完成。
A8:A7所述的方法,其中,各经纬度点的第二像素坐标按照以下步骤确定:将转换矩阵传递至所述图形处理器;由所述图形处理器将转换矩阵与每一个经纬度点的第一像素坐标相乘,得到各经纬度点的第二像素坐标。
B13:B12所述的装置,其中,所述第一像素坐标为:[x,y,z,w]T,其中,x为横向坐标,y为纵向坐标,z、w为参数;
所述转换矩阵为:
其中,s1为第一缩放级别,s2为第二缩放级别,△x为像素坐标差中的横向坐标差,△y为像素坐标差中的纵向坐标差。
B14:B13所述的装置,其中,z=0,w=1.0。
B15:B9所述的装置,其中,所述像素坐标确定模块进一步适于:
将转换矩阵传递至所述计算设备的图形处理器;
由所述图形处理器将转换矩阵与每一个经纬度点的第一像素坐标相乘,得到每一个经纬度点的第二像素坐标。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的地图转换方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (14)
1.一种地图转换方法,在计算设备中执行,所述方法包括:
获取每个经纬度点的第一像素坐标,根据所述第一像素坐标在地图显示区域中绘制第一地图,其中,所述第一像素坐标为所述经纬度点在地图显示区域中的坐标;
接收用户对于第一地图的交互操作;
获取一个参考经纬度点的第二像素坐标,所述第二像素坐标为交互后所述参考经纬度点在地图显示区域中的坐标;
根据所述参考经纬度点的第一像素坐标、第二像素坐标和/或所述第一地图的第一缩放级别、第二缩放级别确定转换矩阵,其中,所述第一缩放级别为第一地图的缩放级别,所述第二缩放级别为所述第一地图在交互后的缩放级别;
根据所述转换矩阵和第一像素坐标确定第一地图中各经纬度点的第二像素坐标;
根据各经纬度点的第二像素坐标在地图显示区域中绘制第二地图。
2.如权利要求1所述的方法,其中,在所述获取每个经纬度点的第一像素坐标的步骤之前,还包括:
从服务器处获取地图中所包括的多个经纬度点的数据;
将每一个经纬度点转化为第一像素坐标。
3.如权利要求1所述的方法,其中,所述交互操作包括缩放、平移。
4.如权利要求1-3中任一项所述的方法,其中,所述转换矩阵按照以下步骤确定:
确定像素坐标差,所述像素坐标差为第二像素坐标与第一像素坐标之差;
确定缩放级别差,所述缩放级别差为第二缩放级别与第一缩放级别之差;
根据所述像素坐标差和/或所述缩放级别差确定转换矩阵。
5.如权利要求4所述的方法,其中,所述第一像素坐标为:[x,y,0,1.0]T,其中,x为横向坐标,y为纵向坐标;
所述转换矩阵为:
其中,s1为第一缩放级别,s2为第二缩放级别,△x为像素坐标差中的横向坐标差,△y为像素坐标差中的纵向坐标差。
6.如权利要求1所述的方法,其中,所述确定第一地图中各经纬度点的第二像素坐标的步骤由所述计算设备的图形处理器来完成。
7.如权利要求6所述的方法,其中,各经纬度点的第二像素坐标按照以下步骤确定:
将转换矩阵传递至所述图形处理器;
由所述图形处理器将转换矩阵与每一个经纬度点的第一像素坐标相乘,得到各经纬度点的第二像素坐标。
8.一种地图转换装置,驻留于计算设备中,所述装置包括:
绘制模块,适于获取每个经纬度点的像素坐标,根据所述像素坐标在地图显示区域中绘制地图,其中,所述像素坐标为所述经纬度点在地图显示区域中的坐标;
交互模块,适于接收用户对于地图的交互操作;
像素坐标确定模块,适于:
获取一个参考经纬度点的第一像素坐标、第二像素坐标,所述参考经纬度点的第一像素坐标、第二像素坐标分别为参考经纬度点在交互前、交互后的像素坐标;
根据所述参考经纬度点的第一像素坐标、第二像素坐标和/或所述地图的第一缩放级别、第二缩放级别确定转换矩阵,其中,所述第一缩放级别为交互前的地图的缩放级别,所述第二缩放级别为交互后的地图的缩放级别;
根据所述转换矩阵和各经纬度点的第一像素坐标确定地图中各经纬度点的第二像素坐标。
9.如权利要求8所述的装置,其中,还包括地图数据获取模块,适于从服务器处获取地图中所包括的多个经纬度点的数据;
所述像素坐标确定模块还适于:在从服务器处获取地图中所包括的多个经纬度点的数据之后,将每一个经纬度点转化为像素坐标。
10.如权利要求8所述的装置,其中,所述交互操作包括缩放、平移。
11.如权利要求8-10中任一项所述的装置,其中,所述像素坐标确定模块适于按照以下步骤确定转换矩阵:
确定像素坐标差,所述像素坐标差为第二像素坐标与第一像素坐标之差;
确定缩放级别差,所述缩放级别差为第二缩放级别与第一缩放级别之差;
根据所述像素坐标差和/或所述缩放级别差确定转换矩阵。
12.如权利要求11所述的装置,其中,所述第一像素坐标为:[x,y,0,1.0]T,其中,x为横向坐标,y为纵向坐标;
所述转换矩阵为:
其中,s1为第一缩放级别,s2为第二缩放级别,△x为像素坐标差中的横向坐标差,△y为像素坐标差中的纵向坐标差。
13.如权利要求8所述的装置,其中,所述像素坐标确定模块进一步适于:
将转换矩阵传递至所述计算设备的图形处理器;
由所述图形处理器将转换矩阵与每一个经纬度点的第一像素坐标相乘,得到每一个经纬度点的第二像素坐标。
14.一种计算设备,包括:
至少一个中央处理器;
至少一个图形处理器;
存储有程序指令的至少一个存储器,所述程序指令包括如权利要求8-13中任一项所述的地图转换装置;
其中,所述中央处理器和图形处理器被配置为适于根据所述存储器中存储的地图转换装置执行如权利要求1-7中任一项所述的地图转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710053602.7A CN106847068B (zh) | 2017-01-22 | 2017-01-22 | 一种地图转换方法、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710053602.7A CN106847068B (zh) | 2017-01-22 | 2017-01-22 | 一种地图转换方法、装置和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106847068A CN106847068A (zh) | 2017-06-13 |
CN106847068B true CN106847068B (zh) | 2018-11-23 |
Family
ID=59119618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710053602.7A Active CN106847068B (zh) | 2017-01-22 | 2017-01-22 | 一种地图转换方法、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106847068B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729530A (zh) * | 2017-10-30 | 2018-02-23 | 西安蜂语信息科技有限公司 | 地图切换方法及装置 |
CN108776952B (zh) * | 2018-05-24 | 2022-05-13 | 天津大学 | 用于水文气象监测的海图坐标转换方法 |
CN109960768A (zh) * | 2019-02-28 | 2019-07-02 | 北京摩拜科技有限公司 | 地图界面的显示方法、装置、终端设备及系统 |
CN110413843B (zh) * | 2019-08-02 | 2023-02-21 | 中星智能系统技术有限公司 | 视频画面和影像地图融合的方法及装置 |
CN110502595A (zh) * | 2019-08-09 | 2019-11-26 | 柴日发 | 一种从规划地图中拾取经纬信息的方法 |
CN110706305A (zh) * | 2019-09-24 | 2020-01-17 | 上海钧正网络科技有限公司 | 地图应用中绘制区域的方法、装置和计算机设备 |
CN112837604B (zh) * | 2020-09-21 | 2024-03-12 | 中国地质调查局发展研究中心 | 确定地图中的目标点的地理坐标的方法和装置 |
CN112348919A (zh) * | 2020-10-29 | 2021-02-09 | 中国人民解放军海军潜艇学院 | 一种墨卡托海图图像中像素与经纬度的转换方法 |
CN113535879B (zh) * | 2021-07-28 | 2024-05-03 | 工银科技有限公司 | 一种行政区域的地图数据处理方法及装置 |
CN113934351B (zh) * | 2021-10-15 | 2023-03-24 | 如你所视(北京)科技有限公司 | 地图截图方法和装置、计算机可读存储介质 |
CN113918267B (zh) * | 2021-12-15 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 地图交互方法、装置、电子设备及存储介质 |
CN116416399A (zh) * | 2023-04-24 | 2023-07-11 | 北京和德宇航技术有限公司 | 一种地图生成方法、装置、设备和存储介质 |
CN116823936B (zh) * | 2023-08-28 | 2023-11-24 | 智广海联(天津)大数据技术有限公司 | 一种利用相机屏幕标点获取经纬度的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157001A (zh) * | 2011-04-14 | 2011-08-17 | 中国测绘科学研究院 | 一种电子地图绘制的方法及系统 |
CN104375991A (zh) * | 2013-08-12 | 2015-02-25 | 华平信息技术股份有限公司 | 一种基于图片地图的城市监控系统 |
CN105865480A (zh) * | 2016-03-31 | 2016-08-17 | 百度在线网络技术(北京)有限公司 | 导航图像显示参数的调整方法及装置 |
CN106227853A (zh) * | 2016-07-28 | 2016-12-14 | 裘羽 | 一种电子地图的生成方法及处理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013474B2 (en) * | 2011-10-25 | 2018-07-03 | The United States Of America, As Represented By The Secretary Of The Navy | System and method for hierarchical synchronization of a dataset of image tiles |
US9330484B2 (en) * | 2012-08-02 | 2016-05-03 | Here Global B.V. | Plane panorama location correction in three-dimensional mapping |
US9903735B2 (en) * | 2015-03-30 | 2018-02-27 | International Business Machines Corporation | Route stabilization scrolling mode |
-
2017
- 2017-01-22 CN CN201710053602.7A patent/CN106847068B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157001A (zh) * | 2011-04-14 | 2011-08-17 | 中国测绘科学研究院 | 一种电子地图绘制的方法及系统 |
CN104375991A (zh) * | 2013-08-12 | 2015-02-25 | 华平信息技术股份有限公司 | 一种基于图片地图的城市监控系统 |
CN105865480A (zh) * | 2016-03-31 | 2016-08-17 | 百度在线网络技术(北京)有限公司 | 导航图像显示参数的调整方法及装置 |
CN106227853A (zh) * | 2016-07-28 | 2016-12-14 | 裘羽 | 一种电子地图的生成方法及处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106847068A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106847068B (zh) | 一种地图转换方法、装置和计算设备 | |
CN106846497B (zh) | 应用于终端的呈现三维地图的方法和装置 | |
US8872848B1 (en) | Rendering vector data as tiles | |
US20170069122A1 (en) | Method, system and recording medium for providing augmented reality service and file distribution system | |
EP2790176B1 (en) | Computing systems, devices and methods for rendering maps remotely from an host application | |
CN108027885A (zh) | 空间变换器模块 | |
US8803880B2 (en) | Image-based lighting simulation for objects | |
JPH11306380A (ja) | ボリュームレンダリングシステムおよびボリュームレンダリング方法 | |
KR20120036979A (ko) | 변하는 이미지들의 업데이트들을 클라이언트 디바이스들에게 선택적으로 분배하는 기술 | |
JP2004527046A (ja) | 限定された帯域幅の通信チャネルに対して最適化された動的視錘台を用いたネットワーク画像送信システムおよび方法 | |
EP3108453B1 (en) | Method for selecting data files for downloading | |
Powell et al. | A scalable image processing framework for gigapixel mars and other celestial body images | |
JP2010537348A (ja) | 解像度の連続した付加レイヤー内の地理空間テクスチャ・データを選択的に読み出し表示するための地理空間データシステム、および関連した方法 | |
EP3139278A1 (en) | Apparatus and method of performing fourier transform | |
US20180300854A1 (en) | Method and electronic device for rendering a panorama image | |
CN115880488A (zh) | 用于改进语义图像分割的神经网络加速器系统 | |
US11210864B2 (en) | Solution for generating virtual reality representation | |
CN109697748A (zh) | 模型压缩处理方法、模型贴图处理方法装置、存储介质 | |
CN107273081A (zh) | 对多个组件进行显示的方法、介质、装置和计算设备 | |
CN114067030A (zh) | 动态流体效果处理方法、装置、电子设备和可读介质 | |
US10460427B2 (en) | Converting imagery and charts to polar projection | |
CN115619986A (zh) | 场景漫游方法、装置、设备和介质 | |
JP7296941B2 (ja) | 医療画像の表示 | |
CN114723600A (zh) | 美妆特效的生成方法、装置、设备、存储介质和程序产品 | |
EP2562722B1 (en) | Method and system for scene visualization |
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 |