基于地图API的海量覆盖物绘制方法与流程

文档序号:18684876发布日期:2019-09-13 23:49阅读:530来源:国知局
基于地图API的海量覆盖物绘制方法与流程

本发明涉及地图API函数应用技术领域领域,特别涉及一种基于地图API的海量覆盖物绘制方法。



背景技术:

随着物联网技术的发展,地图应用范围在不断的增加,地图应用程序接口(Application Programming Interface,API)被运用在越来越多的领域,而地图覆盖物是地图API应用中不可或缺的一个环节,在现实应用过程中,往往需要将海量的覆盖物添加到地图上。

目前在地图API的应用过程中仍存在明显的缺陷:目前地图API的覆盖物添加方法是浏览器访问内存中的图形,把图形加载到浏览器中。因此加载覆盖物的速度比较慢,而且当地图覆盖物的数量过多时,地图的加载过程会变得更慢,甚至会导致浏览器的崩溃。



技术实现要素:

本发明的目的在于提供一种基于地图API的海量覆盖物绘制方法,以解决现有的覆盖物绘制速度慢且通过浏览器加载覆盖物速度慢的问题。

在图形容器上建立WEBGL坐标系,所述WEBGL坐标系的原点与地图中预设的经纬度坐标点对应;

从后台提取覆盖物的经纬度坐标数据,并把覆盖物的经纬度坐标数据转化为WEBGL坐标系的数据,得到覆盖物转化后的坐标点(x,y);

将坐标点(x,y)作为覆盖物的原点,通过显卡绘制覆盖物。

与现有技术相比,本发明存在以下技术效果:一,本发明是在图形容器上通过WEBG绘制覆盖物而不是通过浏览器加载覆盖物,因此,极大的提升了绘图的速度,而且可以将利用本发明中的绘制方法绘制出的覆盖物大量的添加到地图API中时,提高了覆盖物的添加数量,另外,也极大的提升了覆盖物的加载速度,避免出现因当覆盖物数量过多时,地图加载速度变慢甚至导致浏览器崩溃的现象。二,通过本发明中的覆盖物绘制方法,适用于任何类型的地图API。三,通过本发明中的覆盖物绘制方法,可以任意绘制覆盖物的大小和形状,使覆盖物更加多样化,具有很好的灵活性和实用性。

附图说明

图1是本发明一实施例中的基于地图API的海量覆盖物绘制方法的流程图;

图2是本发明一实施例中的基于地图API的海量覆盖物绘制方法的流程图;

图3是本发明一实施例中添加鼠标点击事件的流程图。

具体实施方式

下面结合图1至图3,对本发明做进一步详细叙述。

如图1所示,本实施例提供了一种基于地图API的海量覆盖物绘制方法,包括如下步骤S1至S3:

S1、在地图的布局上对应放置一层图形容器,并在图形容器上建立WEBGL坐标系,所述WEBGL坐标系的原点与地图中预设的经纬度坐标点对应;

具体地,该处的WEBGL坐标系的原点与地图中预设的经纬度坐标点对应是指:将方向从北向南定义为WEBGL坐标系的Y轴正方向、西经向东经方向定义为WEBGL坐标系的X轴正方向,WEBGL坐标系的原点与经度180度与平面图最北边的交点对应。通过该步骤S1即可将在图形容器上建立的WEBGL坐标系与地图的经纬度坐标关联起来。

需要说明的是,地图上的覆盖物的数量和位置是地图自身具备的,在地图的布局上放置一层图形容器,既可以根据地图本身标注的覆盖物的位置来绘制覆盖物。

S2、从后台提取覆盖物的经纬度坐标数据,并把覆盖物的经纬度坐标数据转化为WEBGL坐标系的数据,得到覆盖物转化后的坐标点(x,y);

具体地,该处的覆盖物的经纬度数据是指地图本身标注的覆盖物的位置信息,并且覆盖物的经纬度数据已经预先存储在后台的数据库中。

在开始绘制之前,首先需要将地图本身标注好的覆盖物的经纬度数据转化为步骤S1中建立的WEBGL坐标系的数据,具体的转化过程为:

(1)将地图本身标注的覆盖物的经度坐标按照如下公式转化为WEBGL坐标系的X坐标值:

式中,zoom为地图当前的缩放级别,256指地图缩放级别为0时的地图固定像素点,180度为东西经度值,360为总经度值。

(2)将地图本身标注的覆盖物的纬度值按照如下公式转化为WEBGL坐标系的Y坐标:

式中,Φ为纬度且-90<Φ<90,Φmax为地图布局范围内的最大纬度(地图的最大纬度一般为-85<Φmax<85),256×2zoom/2为半球在当前缩放级别下的像素点,为墨卡托投影Mercatorprojection公式。

需要说明的是,如果特殊地图的纬度计算方法不是采用墨卡托投影公式,那么就需知道该地图的纬度计算方法,然后用该地图的纬度计算公式来替换墨卡托投影公式进行纬度转化的计算。

S3、将坐标点(x,y)作为覆盖物的原点,通过显卡绘制覆盖物。

具体地,在通过显卡绘制覆盖物的过程中,可以按照覆盖物的尺寸和形状来进行绘制。

如图2所示,本实施例中的基于地图API的海量覆盖物绘制方法还包括步骤S4:

S4、基于所述的图形容器,在预先添加的像素精度范围内添加鼠标点击事件。

具体地,如图3所示,添加鼠标点击事件的具体流程为:

S41、拾取鼠标在地图上的经纬度数据,并将鼠标在地图上的经纬度数据转化WEBGL坐标系的数据,得到鼠标转化后的坐标点(x`,y`);

S42、判断坐标点(x`,y`)的像素是否在预先添加的像素精度范围内,如果是,则添加鼠标点击事件,如果否,则跳出本次对比,重新执行步骤S41。

需要说明的是,当鼠标在地图上移动的时候,可拾取鼠标在地图上的当前位置的经纬度,按照上述的地图经纬度坐标转化为WEBGL坐标系数据的过程,将鼠标在地图上的当前位置的经纬度坐标转化为WEBGL坐标系数据(x`,y`),需要说明的是,这里的(x`,y`)是在图形容器上的且与鼠标在地图上的当前位置坐标对应。将(x`,y`)点的像素与预先添加在图形容器上的像素精度范围进行比较,如果(x`,y`)点的像素在预设的像素精度范围内,则添加鼠标点击事件,如果不在,则跳出此次比较,进行下一次比较。

需要说明的是,本实施中预先添加的精度范围可以根据覆盖物的尺寸和形状进行添加,精度范围可变,提高了鼠标点击事件添加的灵活性和实用性。

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