一种由手机下载和显示地图数据的方法 【技术领域】
本发明涉及一种传送及显示地图数据的方法。
背景技术
手机GPS导航系统目前主要分为手机自主导航系统和手机网络导航系统两种,其中,自主导航的特点是将全部矢量地图数据放在手机终端上,所有的显示操作均由用户手机自己来完成;而在手机网络导航系统中,用户手机不保存所有的矢量地图数据(可以缓存小部分矢量地图数据),当需要时才向中心服务器请求下载矢量地图数据。
手机网络导航系统中,中心服务器所提供的矢量地图数据可以是临时动态生成的,也可以是事先按照一定的格式处理好并保存在存储介质中的静态矢量地图数据;其中临时动态生成的矢量地图数据是指根据手机用户关于显示屏的大小、地图中心位置的坐标和地图比例尺的大小等需求,从矢量地图中动态地切割出相应的矢量地图数据并下发到用户手机上进行显示处理,其优点是在下载传输过程中产生的矢量地图数据流量比较少,缺点是中心服务器切割处理矢量地图的算法复杂,同时对多个用户提供此项服务时中心服务器的负担过重。静态矢量地图数据是指将矢量地图按照显示屏幕尺寸大小,预先切割好并根据一定的编号方式保存在中心服务器中;当有手机用户请求下载某一编号的矢量地图数据时,中心服务器直接调取相应编号的静态矢量地图数据下发到该用户手机进行显示。其优点是减少了中心服务器临时对矢量地图作切割处理的复杂性;缺点是用户手机显示屏的尺寸规格很多,中心服务器难于按照各种用户手机显示屏的尺寸规格存储相应的静态矢量地图数据,以满足在每一种手机显示屏上显示矢量地图数据的需要。特别是当用户需要在自己的手机上选择不同比例尺的矢量地图时,若中心服务器也按照各种用户手机显示屏的尺寸规格存储相应的静态矢量地图数据,不仅占用的内寸空间大而且存取数据的时间开销也大。
【发明内容】
本发明旨在提供一种由手机下载和显示地图数据的方法,多种显示屏尺寸规格的手机都可以使用中心服务器提供的不同比例尺的标准静态矢量地图数据显示所需要的地图数据。
本发明的技术方案是:一种由手机下载和显示地图数据的方法,包括以下步骤:
步骤1,中心服务器根据标准显示图幅的像素规格将每一种比例尺的矢量地图分别顺序切割成若干个具有静态矢量地图数据的显示图幅,并按照地理坐标顺序对各个显示图幅进行编号;
步骤2,中心服务器将每一种比例尺的矢量地图的所有显示图幅分别在对应的存储器中按各自的编号进行保存;
步骤3,用户手机依据本显示屏像素规格与标准显示图幅像素规格之比确定需要显示的显示图幅个数,用户手机依据显示图幅个数、当前经纬度和需要显示地图的比例尺计算各个需要显示的显示图幅的编号;用户手机向中心服务器发送包含显示图幅个数、比例尺及各显示图幅编号的显示地图请求;
步骤4,中心服务器按接收的用户手机显示地图请求中的比例尺确定当前所要下载的各显示图幅所在的存储器,按照该请求中各显示图幅编号从该存储器提取各显示图幅的静态矢量地图数据并将这些静态矢量地图数据下发给该用户手机;
步骤5,用户手机接收这些显示图幅的静态矢量地图数据并进行各显示图幅在显示屏上的组合显示处理。
所述的步骤1中,中心服务器按小于或等于最小手机显示屏像素阵列的行数和列数确定标准显示图幅的像素规格。
所述的步骤4中,中心服务器按照显示地图请求中各显示图幅编号从该存储器提取各显示图幅的静态矢量地图数据后,将各个静态矢量图幅数据按照编号的先后顺序以及按照每个图幅内保存的地图对象数据的先后顺序,保存在一个二进制的数据流中下发给提出请求的用户手机。
本发明一种由手机下载和显示地图数据的方法,中心服务器将不同比例尺的矢量地图按照同一标准显示图幅地像素规格预先切割好并根据地理坐标的顺序编号,每一比例尺矢量地图切割出的各显示图幅按编号保存。中心服务器只保存不同比例尺矢量地图的标准静态矢量地图数据,数据存储占用的空间小。当有手机用户请求显示地图时,先依据本显示屏需要显示的显示图幅个数、当前经纬度和需要显示地图的比例尺计算各个需要显示的显示图幅的编号;再将包含显示图幅个数、比例尺及各显示图幅编号的显示地图请求发送给中心服务器。由用户手机计算各个需要显示的显示图幅的编号并上传给中心服务器,可减少中心服务器提取显示图幅时计算地址的负担,提高中心服务器的运行效率,同时中心服务器可接纳更多的手机用户。中心服务器收到显示地图请求,直接调取指定比例尺下的相应编号的各静态矢量地图数据下发到用户手机进行组合显示。由至少一个显示图幅的画面组成用户手机上显示屏上的地图,所以本方法可以保证多种显示屏尺寸规格的手机都可以使用中心服务器提供的不同比例尺的标准静态矢量地图数据显示所需要的地图数据。中心服务器按小于或等于最小手机显示屏像素阵列的行数和列数确定标准显示图幅的像素规格,这样一来所有显示屏尺寸规格的手机都可以使用中心服务器提供的不同比例尺的标准静态矢量地图数据显示所需要的地图数据。中心服务器按照显示地图请求中各显示图幅编号从该存储器提取各显示图幅的静态矢量地图数据后,将各个静态矢量图幅数据按照编号的先后顺序以及按照每个图幅内保存的地图对象数据的先后顺序,保存在一个二进制的数据流中下发给提出请求的用户手机。由于各显示图幅的编号与其在矢量地图中的地理坐标存在对应关系,这就意味着显示屏上各显示图幅的显示位置顺序也与各显示图幅的编号的顺序相对应。用户手机就可以利用相同的顺序使用各个静态矢量图幅数据进行组合显示地图的作业,从而简化了组合作图复杂计算。所以,本发明的方法具有便于操作,适用性强,占用存储空间小,运行效率高的优点。
【附图说明】
图1为本发明由手机下载和显示地图数据的方法一个实施例的进程示意图。
图2为本实施例中对一幅全国的矢量地图进行切割和编号的示意图。
图3为本实施例中8种比例尺的全国矢量地图进行切割后的显示图幅中可显示的部分数据类型和数据对象数据内容的示意图。
【具体实施方式】
本发明由手机下载和显示地图数据的方法一个实施例用于一个全国性的手机通讯网络。该网络设有一个具有矢量地图数据库和无线通讯机的中心服务器。
下面结合图1说明该网络中的手机用户如何使用自己的手机下载和显示地图数据。
首先,中心服务器执行下面的步骤101和步骤102,在矢量地图数据库中保存各种比例尺的全国矢量地图的具有标准静态矢量地图数据的显示图幅。
步骤101,本实施例中心服务器的矢量地图数据库中保存着11种比例尺的全国矢量地图,分别是1∶5千比例尺的全国矢量地图、1∶1万比例尺的全国矢量地图、1∶2万比例尺的全国矢量地图、1∶5万比例尺的全国矢量地图、1∶10万比例尺的全国矢量地图、1∶20万比例尺的全国矢量地图、1∶50万比例尺的全国矢量地图、1∶100万比例尺的全国矢量地图、1∶500万比例尺的全国矢量地图、1∶2000万比例尺的全国矢量地图和1∶1亿比例尺的全国矢量地图。中心服务器根据标准显示图幅的像素规格将每一种比例尺的矢量地图分别顺序切割成若干个具有静态矢量地图数据的显示图幅,并按照地理坐标顺序对各个显示图幅进行编号。
标准显示图幅的像素规格按小于或等于最小手机显示屏像素阵列的行数和列数确定;本实施例规定标准显示图幅的像素规格为80×80,行数即高(H)为80个像素,列数即宽(W)为80个像素。请参看图2,中心服务器将某一幅全国矢量地图矩形区域范围内,按照标准显示图幅的像素规格分割成多个尺寸大小相同的显示的图幅,并对这些显示图幅按照“从下到上,从左到右”的地理坐标顺序进行编号,序号从1开始。对于不同比例尺的矢量地图,虽然它们切割出的显示图幅的尺寸大小是固定的,均是高为80个象素,宽为80个象素;但是,不同比例尺的矢量地图切割出来的显示图幅所包含的地域范围是不相同的,比例尺越大,显示图幅所包含的地域范围越大。
规定比例尺为S时,经度方向总的象素数为D1,纬度方向总的象素数为D2;设当前显示的比例尺为Q,则可获得该比例尺下经度方向上总的象素数为:
M=Q×D1/S (式1)
和该比例尺下纬度方向上总的象素数为:
P=Q×D2/S (式2)
为了对每一比例尺的矢量地图切割出的显示图幅编号,先统计该比例尺的矢量地图文件中的经纬度信息,计算出该比例尺的矢量地图经度方向相邻的两个像素之间横跨的经度:
A=(Lon_Max-Lon_Min)/M (式3)
其中Lon_Min为最小经度,Lon_Max为最大经度,M为经度方向上总的像素数。
计算出该比例尺的矢量地图纬度方向相邻的两个像素之间跨越的纬度:
B=(Lat_Max-Lat_Min)/P (式4)
其中Lat_Min为最低纬度,Lat_Max为最高纬度,P为纬度方向上总的像素数。
该矢量地图按标准显示图幅的像素规格切割出的显示图幅的总行数:C=P/H (式5)
该矢量地图按标准显示图幅的像素规格切割出的显示图幅的总列数:R=M/W (式6)
总的显示图幅数就为:N=R×C (式7)
根据每个标准显示图幅的像素规格来计算该矢量地图切割出的一幅显示图幅的当前列号:
R_NOW=UP_ROUND[(Lon_NOW-Lon_Min)/(A×W)](式8)
其中Lon_NOW是当前经度,UP_ROUND是向上取整的函数。
和当前行号:
C_NOW=UP_ROUND[(Lat_NOW-Lat_Min)/(B×H)](式9)
其中Lat_NOW是当前纬度。
该显示图幅的编号=(C_NOW-1)×R+R_NOW(式10)
步骤102,中心服务器将每一种比例尺的矢量地图的所有显示图幅分别在矢量地图数据库内11个专用存储器中对应的存储器中按各自的编号进行保存。从逻辑结构上来讲每一种比例尺的矢量地图的所有显示图幅分为两级进行存储,即在本专用存储器中首先根据显示图幅的编号顺序由小到大进行显示图幅数据首地址信息的存储,然后每个显示图幅按照内部各种地图数据类型的顺序进行具体地图对象数据的保存。
地图数据类型包括区块数据、道路数据、铁路数据和(兴趣点)文本数据四种类型。本实施例中1∶1万、1∶2万、1∶5万、1∶10万、1∶20万、1∶50万、1∶100万、1∶500万这8种比例尺的全国矢量地图切割出的显示图幅中可显示的区块数据、道路数据、铁路数据和文本数据类型中的各数据对象数据内容,如图3所示。
此后,各个手机用户就可以按照自己的需要下载地图数据并加以显示了。
步骤201,用户手机依据本显示屏像素规格与标准显示图幅像素规格之比确定需要显示的显示图幅个数,用户手机依据显示图幅个数、当前经纬度和需要显示地图的比例尺计算各个需要显示的显示图幅的编号;用户手机向中心服务器发送包含显示图幅个数、比例尺及各显示图幅编号的显示地图请求。
例如,某用户手机显示屏是240×160像素的,需要显示的显示图幅个数为6个;而某用户手机显示屏是210×140像素的,需要显示的显示图幅个数也为6个,此用户手机在作组合显示地图的处理时,要做剪裁处理。用户手机的GPS提供了当前的经纬度数据,用户指定了需要显示地图的比例尺之后,手机就可以运用前述的式1到式10计算出一个需要显示的显示图幅的编号,再根据位置上相邻的关系,可以推算出另外几个需要显示的显示图幅的编号。
步骤103,中心服务器的无线通讯机接收用户手机的显示地图请求。中心服务器按接收的用户手机显示地图请求中的比例尺确定当前所要下载的各显示图幅在矢量地图数据库内的存储器,按照该请求中各显示图幅编号从矢量地图数据库中对应的存储器提取各显示图幅的静态矢量地图数据并将各个静态矢量图幅数据按照编号的先后顺序以及按照每个图幅内保存的地图对象数据的先后顺序,保存在一个二进制的数据流中下发给提出请求的用户手机。为了提高静态矢量地图数据下载的稳定性与可靠性,本实施例规定中心地图服务器下载静态矢量地图数据到手机终端的过程中,所传输的矢量地图二进制的数据流需要做打包处理。数据包中每帧的最大字节数为200个字节,逐帧下载到用户手机进行显示处理,在发送最后一帧时加上结束标识,以告知用户手机当前是所下发的数据包中的最后一帧。
步骤5,用户手机接收这些显示图幅的静态矢量地图数据并进行各显示图幅在显示屏上的组合显示处理。
例如,某用户手机显示屏是240×160像素的,收到6个需要显示的显示图幅,此用户手机在作组合显示地图的处理时将这6个需要显示的图幅按“从下到上,从左到右”的顺序进行组合显示。而某用户手机显示屏是210×140像素的,收到6个需要显示的显示图幅,此用户手机在作组合显示地图的处理时将这6个需要显示的图幅按“从下到上,从左到右”的顺序进行组合,再按照左上对齐或左下对齐或右上对齐或右下对齐或居中的剪裁处理后进行显示。
以上所述,仅为本发明的较佳实施例,不以此限定本发明实施的范围,依本发明的技术方案及说明书内容所作的等效变化与修饰,皆应属于本发明涵盖的范围。