基于浏览器的电子海图实现方法及系统技术方案

技术编号:14239508 阅读:86 留言:0更新日期:2016-12-21 15:01
本发明专利技术公开了一种基于浏览器的电子海图的实现方法及系统。首先将利用瓦片地图金字塔模型产生出不同层级的瓦片,将不同区域的海图切成一张张瓦片地图,并对这些瓦片进行编号以及按一定的方式进行存储;然后采用优秀的瓦片缓存技术,从而提供海图展示的速度,实现更好的用户体验;然后对于用于显示的电子海图引擎,利用地理经纬度范围与瓦片行列号的转换、缩放与平移、瓦片无缝连接,实现了电子海图在浏览器的屏幕上的快速显示。

Method and system for realizing electronic chart based on Browser

The invention discloses a method and a system for realizing electronic chart based on browser. We will use the tile map Pyramid model produce different levels of tiles, different area chart into a tile map, and the number of tiles and stored in a certain way; then the tile cache technology outstanding, thus providing the sea charts show the speed, to achieve a better user experience; and then for electronic chart engine for display, conversion, using latitude and longitude range and ranks No. tiles and translation, zoom tiles seamless connection, to achieve a rapid display in the browser screen on the electronic chart.

【技术实现步骤摘要】

本专利技术涉及一种基于浏览器的电子海图的实现方法及系统。
技术介绍
航道拥挤程度的提高、船舶的大型化、以及超高速船舶的出现给船舶航行安全提出了严峻的挑战。解决这个问题的一种方式是集成式地把本船的位置、所处的静态环境、周围的动态目标信息显示在一个屏幕上,使得船舶驾驶员能够迅速地获取所有这些信息,及时地做出操船决策。海运船舶驾驶中使用各种现代化的导航设备和雷达设备,能够在很短的时间间隔内获取精确可靠的关于船位、船舶运动参数以及周围环境方面的信息。使用电子海图,能够把驾驶员从海图作业这一事务性工作中解脱出来,使其把主要精力放在航行监视和及时制定操船决策上来。一般把各种数字式海图及其应用系统统称为电子海图。电子海图显示与信息系统(ECDIS)被认为是继雷达/ARPA之后在船舶导航方面又一项伟大的技术革命。从最初纸海图的简单电子复制品到过渡性的电子海图系统(ENS),ECDIS已发展成为一种新型的船舶导航系统和辅助决策系统,它不仅能连续给出船位,还能提供和综合与航海有关的各种信息,有效地防范各种险情。目前电子海图应用主要是基于C/S端的,海图格式为国际上的通用标准:S52、S57、S63,是矢量格式。它的应用更多是单机应用,每台设备上必须安装电子海图应用软件及相应的一套电子海图,不但更新麻烦而且效率偏低。为了普及电子海图应用技术,开发了基于浏览的电子海图技术,这样只需打开浏览器即可访问相应应用。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于浏览器的电子海图的实现方法及系统,实现了电子海图在屏幕的浏览器上的快速显示。本专利技术的目的是通过以下技术方案来实现的:基于浏览器的电子海图的实现方法,它包括电子海图分割步骤、瓦片缓存步骤和电子海图显示步骤;所述的电子海图分割步骤包括以下子步骤:使用电子海图引擎创建切图软件,利用瓦片地图金字塔模型产生出不同层级的瓦片:将不同区域的海图切成一张张瓦片地图,并对这些瓦片进行编号以及进行存储;所述的瓦片缓存步骤包括以下子步骤:当使用者通过浏览器进行浏览,请求调用一张新瓦片时,瓦片缓存模块拦截所述的调用,查看缓存中是否有这些瓦片,如果缓存中能找到则直接返回,如果缓存中找不到再调用服务器上的瓦片;所述的电子海图显示步骤包括地理经纬度范围与瓦片行列号的转换子步骤、缩放子步骤、平移子步骤、瓦片无缝拼接子步骤;所述的地理经纬度范围与瓦片行列号的转换子步骤包括:设地图切图的原点是(x0,y0),地图的瓦片大小是tileSize,地图屏幕上1像素代表的实际距离是resolution;则计算坐标点(x,y)所在的瓦片的行列号的公式如下:col=floor((x0-x)/(tileSize*resolution));row=floor((y0-y)/(tileSize*resolution));式中,col表示行号,row表示列号,floor()表示向下取整;所述的缩放子步骤包括以下子步骤:S11:对电子海图进行包括拉框、双击或者滚动鼠标中任意一项或者多项的操作;S12:针对拉框操作,获得屏幕的地理四角坐标参数;针对双击操作或滚动鼠标操作,获得包括屏幕的地理四角坐标以及当前显示的比例层级在内的参数;S13:针对只有屏幕的地理四角坐标参数的情况,在瓦片请求时,首先算出与此屏幕四角坐标最吻合的地图级别是多少,然后重新算出此时的屏幕地理坐标以及相关的瓦片的真实范围;针对屏幕的地理四角坐标和当前显示的比例层级参数都有的情况,在瓦片请求时,会重新算出在此显示级别下屏幕的地理坐标,中心点是参数中屏幕四角坐标的中心点;所述的平移子步骤包括拖拽平移子步骤和点击平移子步骤,所述的拖拽平移子步骤包括以下子步骤:S21:当当鼠标触发mouseDown事件时,给全局变量flag赋值true,表示鼠标已经点下,记录下初始点;S22:当鼠标触发mouseMove事件时,判断flag是否为true,如果是,调用平移公式,使图层出现移动,算出屏幕像素的移动mouseX和mouseY;S23:当鼠标触发mouseUp事件时,判断屏幕地理范围加上移动的地理长度后,是否在整个瓦片请求的容差范围内,如果在的话不用触发瓦片请求;如果不在的话,则需触发瓦片请求,请求的参数即为目前的屏幕地理范围加上容差范围;所述的点击平移子步骤包括以下子步骤:S31:当鼠标触发mouseDown事件时,给全局变量isClick赋值true,表示鼠标已经点下,记录下初始点;S32:当鼠标触发mouseMove事件时,则将此isClick参数赋值false;S33:当鼠标触发mouseClick事件时,判断isClick是否为true,如果是true,则将地图平移到以初始点为中心的地方;所述的瓦片无缝拼接子步骤包括以下子步骤:S41:得到需要请求的瓦片;S42:算出此地理范围对应的X轴和Y轴的瓦片数,左上角瓦片的行列号及屏幕坐标参数,其中,当前瓦片的屏幕坐标计算公式如下:coord.x=offSetX+(clipX-fixedTileLeftTopNumX)*tileSize;coord.y=offSetY+(clipY-fixedTileLeftTopNumY)*tileSize;式中:offSetX、offSetY表示最左上角瓦片的屏幕坐标,clipX、clipY表示目前瓦片的行列号,fixedTileLeftTopNumY、fixedTileLeftTopNumY表示最左上角瓦片的行列号,coord表示目前瓦片的屏幕坐标;S43:遍历X轴Y轴,换算出单个瓦片的URL,进行加载,挨个进行瓦拼接;S44:屏幕显示整张电子海图。所述的瓦片缓存步骤还包括一个子步骤:在全国多个节点采用CDN系统,通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,使用户可就近取得所需内容,提高用户访问网站的响应速度。对所述的地图屏幕上1像素代表的实际距离resolution进行偏移补偿,公式如下:resolution=scale*inch2centimeter/dpi;式中,scale是地图比例尺,inch2centimeter为英寸转厘米的参数,dpi为1英寸所包含的像素。在所述的步骤S2执行过程中,如果有其他图层或者功能需要监听到地图平移事件,抛出一个地图平移事件,抛出的参数设置为此时鼠标所在的地理坐标以及鼠标平移的地理长度,其中此时鼠标所在的地理坐标通过鼠标的屏幕坐标转换得到,鼠标平移的地理长度通过mouseX和mouseY转换得到。所述的方法还包括一个即时通讯步骤:采用WebSocket技术,并结合电子海图在flash互相访问,达到网页电子海图应用于桌面电子海图应用同等的效果;对于WebSocket API,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者之间就直接进行数据互相传送。基于浏览器的电子海图系统,包括:电子瓦片海图分割器:利用瓦片地图金字塔模型产生出不同层级的瓦片:将不同区域的海图切成一张张瓦片地图,并对这些瓦片进行编号并存储;瓦片缓存模本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610667115.html" title="基于浏览器的电子海图实现方法及系统原文来自X技术">基于浏览器的电子海图实现方法及系统</a>

【技术保护点】
基于浏览器的电子海图的实现方法,其特征在于:它包括电子海图分割步骤、瓦片缓存步骤和电子海图显示步骤;所述的电子海图分割步骤包括以下子步骤:使用电子海图引擎创建切图软件,利用瓦片地图金字塔模型产生出不同层级的瓦片:将不同区域的海图切成一张张瓦片地图,并对这些瓦片进行编号以及进行存储;所述的瓦片缓存步骤包括以下子步骤:当使用者通过浏览器进行浏览,请求调用一张新瓦片时,瓦片缓存模块拦截所述的调用,查看缓存中是否有这些瓦片,如果缓存中能找到则直接返回,如果缓存中找不到再调用服务器上的瓦片;所述的电子海图显示步骤包括地理经纬度范围与瓦片行列号的转换子步骤、缩放子步骤、平移子步骤、瓦片无缝拼接子步骤;所述的地理经纬度范围与瓦片行列号的转换子步骤包括:设地图切图的原点是(x0,y0),地图的瓦片大小是tileSize,地图屏幕上1像素代表的实际距离是resolution;则计算坐标点(x,y)所在的瓦片的行列号的公式如下:col=floor((x0‑x)/(tileSize*resolution));row=floor((y0‑y)/(tileSize*resolution));式中,col表示行号,row表示列号,floor()表示向下取整;所述的缩放子步骤包括以下子步骤:S11:对电子海图进行包括拉框、双击或者滚动鼠标中任意一项或者多项的操作;S12:针对拉框操作,获得屏幕的地理四角坐标参数;针对双击操作或滚动鼠标操作,获得包括屏幕的地理四角坐标以及当前显示的比例层级在内的参数;S13:针对只有屏幕的地理四角坐标参数的情况,在瓦片请求时,首先算出与此屏幕四角坐标最吻合的地图级别是多少,然后重新算出此时的屏幕地理坐标以及相关的瓦片的真实范围;针对屏幕的地理四角坐标和当前显示的比例层级参数都有的情况,在瓦片请求时,会重新算出在此显示级别下屏幕的地理坐标,中心点是参数中屏幕四角坐标的中心点;所述的平移子步骤包括拖拽平移子步骤和点击平移子步骤,所述的拖拽平移子步骤包括以下子步骤:S21:当当鼠标触发mouseDown事件时,给全局变量flag赋值true,表示鼠标已经点下,记录下初始点;S22:当鼠标触发mouseMove事件时,判断flag是否为true,如果是,调用平移公式,使图层出现移动,算出屏幕像素的移动mouseX和mouseY;S23:当鼠标触发mouseUp事件时,判断屏幕地理范围加上移动的地理长度后,是否在整个瓦片请求的容差范围内,如果在的话不用触发瓦片请求;如果不在的话,则需触发瓦片请求,请求的参数即为目前的屏幕地理范围加上容差范围;所述的点击平移子步骤包括以下子步骤:S31:当鼠标触发mouseDown事件时,给全局变量isClick赋值true,表示鼠标已经点下,记录下初始点;S32:当鼠标触发mouseMove事件时,则将此isClick参数赋值false;S33:当鼠标触发mouseClick事件时,判断isClick是否为true,如果是true,则将地图平移到以初始点为中心的地方;所述的瓦片无缝拼接子步骤包括以下子步骤:S41:得到需要请求的瓦片;S42:算出此地理范围对应的X轴和Y轴的瓦片数,左上角瓦片的行列号及屏幕坐标参数,其中,当前瓦片的屏幕坐标计算公式如下:coord.x=offSetX+(clipX‑fixedTileLeftTopNumX)*tileSize;coord.y=offSetY+(clipY‑fixedTileLeftTopNumY)*tileSize;式中:offSetX、offSetY表示最左上角瓦片的屏幕坐标,clipX、clipY表示目前瓦片的行列号,fixedTileLeftTopNumY、fixedTileLeftTopNumY表示最左上角瓦片的行列号,coord表示目前瓦片的屏幕坐标;S43:遍历X轴Y轴,换算出单个瓦片的URL,进行加载,挨个进行瓦拼接;S44:屏幕显示整张电子海图。...

【技术特征摘要】
1.基于浏览器的电子海图的实现方法,其特征在于:它包括电子海图分割步骤、瓦片缓存步骤和电子海图显示步骤;所述的电子海图分割步骤包括以下子步骤:使用电子海图引擎创建切图软件,利用瓦片地图金字塔模型产生出不同层级的瓦片:将不同区域的海图切成一张张瓦片地图,并对这些瓦片进行编号以及进行存储;所述的瓦片缓存步骤包括以下子步骤:当使用者通过浏览器进行浏览,请求调用一张新瓦片时,瓦片缓存模块拦截所述的调用,查看缓存中是否有这些瓦片,如果缓存中能找到则直接返回,如果缓存中找不到再调用服务器上的瓦片;所述的电子海图显示步骤包括地理经纬度范围与瓦片行列号的转换子步骤、缩放子步骤、平移子步骤、瓦片无缝拼接子步骤;所述的地理经纬度范围与瓦片行列号的转换子步骤包括:设地图切图的原点是(x0,y0),地图的瓦片大小是tileSize,地图屏幕上1像素代表的实际距离是resolution;则计算坐标点(x,y)所在的瓦片的行列号的公式如下:col=floor((x0-x)/(tileSize*resolution));row=floor((y0-y)/(tileSize*resolution));式中,col表示行号,row表示列号,floor()表示向下取整;所述的缩放子步骤包括以下子步骤:S11:对电子海图进行包括拉框、双击或者滚动鼠标中任意一项或者多项的操作;S12:针对拉框操作,获得屏幕的地理四角坐标参数;针对双击操作或滚动鼠标操作,获得包括屏幕的地理四角坐标以及当前显示的比例层级在内的参数;S13:针对只有屏幕的地理四角坐标参数的情况,在瓦片请求时,首先算出与此屏幕四角坐标最吻合的地图级别是多少,然后重新算出此时的屏幕地理坐标以及相关的瓦片的真实范围;针对屏幕的地理四角坐标和当前显示的比例层级参数都有的情况,在瓦片请求时,会重新算出在此显示级别下屏幕的地理坐标,中心点是参数中屏幕四角坐标的中心点;所述的平移子步骤包括拖拽平移子步骤和点击平移子步骤,所述的拖拽平移子步骤包括以下子步骤:S21:当当鼠标触发mouseDown事件时,给全局变量flag赋值true,表示鼠标已经点下,记录下初始点;S22:当鼠标触发mouseMove事件时,判断flag是否为true,如果是,调用平移公式,使图层出现移动,算出屏幕像素的移动mouseX和mouseY;S23:当鼠标触发mouseUp事件时,判断屏幕地理范围加上移动的地理长度后,是否在整个瓦片请求的容差范围内,如果在的话不用触发瓦片请求;如果不在的话,则需触发瓦片请求,请求的参数即为目前的屏幕地理范围加上容差范围;所述的点击平移子步骤包括以下子步骤:S31:当鼠标触发mouseDown事件时,给全局变量isClick赋值true,表示鼠标已经点下,记录下初始点;S32:当鼠标触发mouseMove事件时,则将此isClick参数赋值false;S33:当鼠标触发mouseClick事件时,判断isClick是否为true,如果是true,则将地图平移到以初始点为中心的地方;所述的瓦片无缝拼接子步骤包括以下子步骤:S41:得到需要请求的瓦片;S42:算出此地理范围对应的X轴和Y轴的瓦片数,左上角瓦片的行列号及屏幕坐标参数,其中,当前瓦片的屏幕坐标计算公式如下:coord.x=offSetX+(clipX-fixedTileLeftTopNumX)*tileSize;coord.y=offSetY+(clipY-fixedTileLeftTopNumY)*tileSize;式中:offSetX、offSetY表示最左上角瓦片的屏幕坐标,clipX、clipY表示目前瓦片的行列号,fixedTileLeftT...

【专利技术属性】
技术研发人员:刘宇卢新平莫运如敬言民杨磊
申请(专利权)人:成都天奥信息科技有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1