基于街景地图的目标物地理位置的三维量测算方法和装置与流程

文档序号:12726024阅读:444来源:国知局
基于街景地图的目标物地理位置的三维量测算方法和装置与流程

本发明涉及街景地图、电子地图学、摄影测量、GIS、Web服务、计算机图形学等领域,其目的是在现有街景地图资源的基础上,实现街景地图中目标物实际地理位置的直接量测。具体涉及Http请求、极坐标系下的空间直线确定、前方交汇等内容。



背景技术:

街景地图是一种实景地图服务。为用户提供城市、街道或其他环境的提供水平方向360°及垂直方向180°的街道全景,让使用者能检视所选城市地面上街道不同位置及其两旁的景物。它是一种运用多路摄像机对真实场景进行多角度环视图像采集之后,再利用计算机进行后期融合处理,并加载播放程序来完成的一种三维虚拟展示技术。

近年来,随着互联网技术的飞速发展,三维全景、虚拟游览等各种以全景图像信息为基础的应用服务,越来越多地进入了人们的日常生活。街景地图实现了二维三维相结合的虚拟现实场景,给使用者能够带来身临其境的观感。

目前,国外的Google公司,国内的百度、腾讯等信息技术和互联网公司,均推出了面向城市街景的地图服务。但是,这些街景地图主要用于展览展示,严重浪费了街景图像中蕴含的大量信息。与传统的二维地图相比,街景地图无法实现对街景图像中地物的定位、量测,极大地限制了全景技术的广泛应用。

针对目前街景地图仅可用于展览展示的不足,本发明提出基于现有街景地图的三维量测算法,实现对街景图像中地物的实际地理坐标及高度的快速获取。



技术实现要素:

本发明旨在解决现有街景地图无法实现对街景图片中目标物的实际地理位置、高度等信息获取的问题。在街景地图为用户提供更加真实准确、更富有画面细节的地图服务的基础上,本发明可以实现街景地图中目标物实际地理位置、高度的量测,使街景地图中特有的丰富信息得到利用,拓展街景在实际生产生活中的应用。

为实现上述技术目的,本发明采用如下技术方案:

一种基于街景地图的目标物地理位置的三维量测算方法,包括如下步骤:

步骤1:在街景地图中,选定两个视角范围内包含待测算的目标物的视点;

步骤2:获取所选两个视点的经纬度;

步骤3:在每个视点下,将目标物底部、顶部分别依次调整到街景地图的中心位置;

具体为,在每个视点下,将目标物底部、顶部上的一点分别依次调整到街景地图的中心位置,顶部、底部上各自选择的一点的连线位于同一条竖直线上;

步骤4:获取步骤3中目标物各状态下视点的视角参数,包括水平角和俯仰角;

所述水平角是指拍摄相机的摄像头的罗盘航向。可接受值的范围是0至360°(两个值都表示北方,90°表示东方,180°表示南方)。

所述俯仰角是指拍摄相机的摄像头相对于Street View车辆的向上或向下角度。正值表示摄像头呈向上角度(90°表示垂直向上);而负值表示摄像头呈向下角度(-90°表示垂直向下)。

步骤5:根据两视点及视点到目标物底部的水平角,在极坐标系下构建两条非平行的空间直线;

步骤6:求出两条空间直线交点,交点的经纬度即为目标物底部在水平面的投影位置,即为目标物的实际地理位置;

步骤7:根据所选两视点中任一视点经纬度与目标物底部经纬度求出视点距目标物底部在水平面上的距离,根据视点到目标物底部与顶部的俯仰角,分别求出目标物底部与顶部距视点的相对高度;

步骤8:目标物顶部距视点的相对高度减去目标物底部距视点的相对高度得到目标物的实际高度。

本发明的方法,所述步骤1还包括,选定两个视点后,调整该视点下的视角及视野范围,将目标物调整到街景地图的合适位置。

所述视点是指,拍摄该街景图像时相机所在地理位置,以经纬度表示。不同视点是指拍摄街景图片时相机的地理位置不同。

进一步的,所述步骤1中,通过旋转街景图像,将目标物调整到街景地图的合适位置;具体为,通过旋转调整街景影像,使目标物整体清晰的位于视野范围内,无障碍物遮挡。

本发明的方法,所述步骤2中,经纬度从视点的拍摄参数中获取;

本发明的方法,所述步骤3中,在所选的两个视点下分别将目标物底部、顶部调整到街景地图的中心位置;

所述街景地图的中心位置是指,在街景地图显示窗口中,水平方向的中心线及竖直方向的中心线的交点位置。

本发明的算法可以概括为:在街景地图中,首先选定一个目标物,根据目标物选择两个合适的视点;在每个视点下,将目标物底部/顶部调整到街景地图的中心位置,获取视点到目标物底部/顶部的视角参数;根据视点经纬度及视点到目标物底部的视角确定两条空间直线,求出两直线的交点,该交点的经纬度即为目标物在实际地理空间中的经纬度;由视点经纬度与得到的目标物的经纬度求出视点及目标物在水平面上的距离,再根据视点到目标物顶部与底部的俯仰角求出视点与目标物顶部、底部的相对高度,两相对高度差即为目标物的实际高度。

本发明还提供了实现上述方法所采用的装置,包括:

用于在街景地图中,选定两个视角范围内包含待测算的目标物的视点的装置;

用于获取所选两个视点的经纬度的装置;

用于在每个视点下,将目标物底部、顶部上的一点分别依次调整到街景地图的中心位置的装置;

用于获取目标物调整后各状态下视点的视角参数,包括水平角和俯仰角的装置;

用于根据根据两视点及视点到目标物底部的水平角,在极坐标系下构建两条非平行的空间直线的装置;

用于求解两条空间直线交点经纬度的装置;

用于根据所选两视点中任一视点经纬度与目标物底部经纬度求出视点距目标物底部在水平面上的距离,根据视点到目标物底部与顶部的俯仰角,分别求出目标物底部与顶部距视点的相对高度的装置;

用于将目标物顶部距视点的相对高度减去目标物底部距视点的相对高度的装置。

本发明的上述装置中,所述用于在街景地图中,选定两个视角范围内包含待测算的目标物的视点的装置,包括在选定两个视点后,调整该视点下的视角及视野范围,将目标物调整到街景地图的合适位置的装置。

优选的,设有通过旋转街景图像,将目标物调整到街景地图的合适位置的装置;

具体为,通过旋转调整街景影像,使目标物整体清晰的位于视野范围内,无障碍物遮挡的装置。

所述用于获取所选两个视点的经纬度的装置,包括从视点的拍摄参数中获取其经纬度的装置。

所述用于在每个视点下,将目标物底部、顶部上的一点分别依次调整到街景地图的中心位置的装置,包括在每个视点下,将目标物底部或顶部上的一点分别依次调整到街景地图的中心位置,所述一点选择目标物底部或顶部的中心点或角点的装置。

本发明有效的利用了现有的街景资源,实现了街景地图中地物的地理位置的直接获取以及地物的实际高度的量测,有利于现有街景资源在智慧城市、智能交通等方面的进一步应用。

附图说明

图1是本发明方法的流程图;

图2是本发明目标物地理位置求解示意图;

图3是本发明目标物实际高度求解示意图。

具体实施方式

下面结合附图和实施例作进一步详细说明。

实施例1

本实施例以Google公司的街景地图为例,对本发明方法的技术方案作进一步描述。如图1所示,本发明的流程包括如下步骤:

步骤1:在Google街景地图中,对于一个待测算目标物,选择两个视角范围内包含待测算目标物的合适视点;

步骤2:获取街景地图中选取的两个视点的经纬度;

步骤3:在每个视点下,将目标物底部、顶部分别调整到街景地图的中心位置;

步骤4:获取步骤3中目标物各状态下视点的视角参数,包括水平角和俯仰角;

步骤5:根据两视点及视点到目标物底部的水平角,在极坐标系下构建两条空间直线;

步骤6:求出两条空间直线交点,交点的经纬度即为目标物底部在水平面的投影位置,即为目标物的实际地理位置。

步骤7:根据所选两视点中任一视点经纬度与目标物底部经纬度求出视点距目标物底部在水平面上的距离,根据视点到目标物底部与顶部的俯仰角,分别求出目标物底部与顶部距视点的相对高度;

步骤8:目标物顶部距视点的相对高度减去目标物底部距视点的相对高度得到目标物的实际高度。

具体实施步骤如下:

步骤1:首先选择一个特定的目标物,对于该目标物选择街景地图中两个不同的合适的视点;

所述视点是指,拍摄该街景图像时相机所在地理位置,以经纬度表示。不同视点是指拍摄街景图片时相机的地理位置不同。本实施例中,通过旋转街景图像,将目标物调整到街景地图的合适位置;具体为,通过旋转调整街景影像,使目标物整体清晰的位于视野范围内,无障碍物遮挡。

步骤2:根据Google街景地图相关服务分别获取两个街景视点的经纬度;街景地图的拍摄参数中即包含视点的经纬度信息,其他街景地图可采用相应方式获取视点的经纬度信息。

视点的经纬度根据Google Street View API可以获得,具体代码如下:

//获取视点的经纬度

var lat = panorama.getPosition().lat();

var lng = panorama.getPosition().lng();

其中,lat为视点的纬度,lng为视点的经度;

步骤3:在上述两个视点下分别将目标物底部、顶部上的一点调整到街景地图的中心位置;为便于调整,选择顶部或底部的角点/中心点;顶部、底部上各自选择的一点连线,要位于同一条竖直线上,如一个长方体的目标物,若顶部选择了顶面上的左前方的角点,底部同样要选择底面上左前方的角点。

所述街景地图的中心位置是指,在街景地图显示窗口中,水平方向的中心线及竖直方向的中心线的交点位置。

步骤4:获取步骤3中各状态的视角参数,包括水平角和俯仰角;

所述水平角是指拍摄相机的摄像头的罗盘航向。可接受值的范围是0至360°(两个值都表示北方,90°表示东方,180°表示南方)。

所述俯仰角是指拍摄相机的摄像头相对于Street View车辆的向上或向下角度。正值表示摄像头呈向上角度(90°表示垂直向上);而负值表示摄像头呈向下角度(-90°表示垂直向下)。

实现的代码具体如下:

//获取当前视角的水平角

var heading = panorama.getPov().heading;

//获取当前视角的俯仰角

var pitch = panorama.getPov().pitch;

步骤5:已知视点的经纬度及视点到目标物底部的水平角,根据极坐标系,可以确定出一条空间直线。两个不同的视点则构建出两条不同的空间直线,具体代码如下:

//k1,k2分别为两条空间直线的斜率

var k1 = 1/Math.tan(heading1/180*Math.PI);

var k2 = 1/Math.tan(heading2/180*Math.PI);

//b1,b2分别为两条空间直线的截距

var b1 = lat1 - k1*lng1;

var b2 = lat2 - k2*lng2;

步骤6:如图2所示,根据两条直线方程,求出交点,该交点的经纬度值为目标物底部在水平面的投影位置,即为目标物的实际地理位置,具体代码如下:

//两直线的交点,即目标物的地理位置

var lngT = (b2 - b1)/(k1 - k2);

var latT = y0 * k1 + b1;

其中,latT为交点的纬度,lngT为交点的经度;

步骤7:如图3所示,由视点经纬度及目标物底部的经纬度求出视点与目标物底部在水平面上的距离。根据视点到目标物底部与顶部的俯仰角,分别求出目标物底部与顶部距视点的相对高度。具体代码如下:

//根据视点及目标物底部经纬度求出两点间的距离

var xyDistance = GetDistance(latT,lngT,lat,lng);

function GetDistance( lat1, lng1, lat2, lng2)

{

var radLat1 = rad(lat1);

var radLat2 = rad(lat2);

var a = radLat1 - radLat2;

var b = rad(lng1) - rad(lng2);

var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +

Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));

s = s * EARTH_RADIUS;//地球半径

s = Math.round(s * 10000) / 10;

return s;

}

//根据pitch角及目标物与视点的水平距离求目标物与视点的相对高度

var z1 = xyDistance * Math.tan(pitchBottom/180*Math.PI);

var z2 = xyDistance * Math.tan(pitchTop/180*Math.PI);

步骤8:目标物顶部距视点的相对高度减去目标物底部距视点的相对高度得到目标物的实际高度。具体代码如下:

//目标物顶部与视点的相对高度减去目标物底部与视点的相对高度,得出目标物的实际高度

var height = z2-z1;

height即为计算出的目标物的实际高度。

实施例2

本实施例具体说明本发明装置的具体技术方案。

如图1,一种基于街景地图的目标物地理位置的三维量测算装置,包括:

用于在街景地图中,选定两个视角范围内包含待测算的目标物的视点的装置,包括在选定两个视点后,调整该视点下的视角及视野范围,将目标物调整到街景地图的合适位置的装置。优选为通过旋转街景图像,将目标物调整到街景地图的合适位置的装置;具体为,通过旋转调整街景影像,使目标物整体清晰的位于视野范围内,无障碍物遮挡的装置。

用于获取所选两个视点的经纬度的装置,包括从视点的拍摄参数中获取其经纬度的装置;

用于在每个视点下,将目标物底部、顶部上的一点分别依次调整到街景地图的中心位置的装置,包括在每个视点下,将目标物底部或顶部上的一点分别依次调整到街景地图的中心位置,所述一点选择目标物底部或顶部的中心点或角点的装置;

用于获取目标物调整后各状态下视点的视角参数,包括水平角和俯仰角的装置;

用于根据根据两视点及视点到目标物底部的水平角,在极坐标系下构建两条非平行的空间直线的装置;

用于求解两条空间直线交点经纬度的装置,如图2所示;

用于根据所选两视点中任一视点经纬度与目标物底部经纬度求出视点距目标物底部在水平面上的距离,根据视点到目标物底部与顶部的俯仰角,分别求出目标物底部与顶部距视点的相对高度的装置,如图3所示;

用于将目标物顶部距视点的相对高度减去目标物底部距视点的相对高度的装置。

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