CN110657804B - 室内位置服务 - Google Patents
室内位置服务 Download PDFInfo
- Publication number
- CN110657804B CN110657804B CN201810714698.1A CN201810714698A CN110657804B CN 110657804 B CN110657804 B CN 110657804B CN 201810714698 A CN201810714698 A CN 201810714698A CN 110657804 B CN110657804 B CN 110657804B
- Authority
- CN
- China
- Prior art keywords
- map
- floor
- edges
- vertices
- path
- 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
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/383—Indoor data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3863—Structures of map data
- G01C21/3867—Geometry of map features, e.g. shape points, polygons or for simplified maps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/024—Guidance services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/025—Services making use of location information using location based information parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/33—Services specially adapted for particular environments, situations or purposes for indoor environments, e.g. buildings
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Geometry (AREA)
- Navigation (AREA)
Abstract
根据本公开的实现,提出了一种用于提供室内位置服务的方案。该方案获取关于包括至少一个楼层的第一建筑物中的第一楼层的楼层平面图。基于该楼层平面图来生成关于第一楼层的第一地图。第一地图包括多个顶点和边缘,其中一个顶点对应于第一楼层中的相应位置,连接两个顶点的边缘表示第一楼层中的物理对象或可通行路径,并且与两个顶点相对应的两个位置位于该物理对象或可通行路径上。此外,至少利用第一地图来向用户提供基于位置的服务。该方案通过理解楼层平面图的几何结构并从中提取可通行路径来将楼层平面图转换成具有特定格式的通用室内地图表示,该通用室内地图表示能够被用于提供室内导航服务以及其他基于位置的服务。
Description
背景技术
室内位置服务通常包括诸如室内定位、室内导航等服务。现有的室内定位与导航方案主要包括结合地图(例如,楼层平面图和其他指纹地图)的方案,诸如基于Wi-Fi信号、地磁场信号或蓝牙信标的定位与导航方案,以及基于惯性导航技术的方案等等。然而,这些方案往往具有较高的外部依赖性或者较高的维护成本,使得它们难以被大规模部署和扩展。此外,现有的室内导航方案还包括独立于基础设施的方案,例如基于领路者-追随者模型的室内导航方案。在基于领路者-追随者模型的室内导航方案中,领路者记录自己的行进路线并将其分享给其他人,使得其他人能够跟随领路者的路线找到目的地。然而,这类方案往往要求参考路线(即,领路者的路线)的存在。当不存在参考路线时,这类方案可能无法工作。
发明内容
根据本公开的实现,提出了一种用于提供室内位置服务的方案。该方案获取关于包括至少一个楼层的第一建筑物中的第一楼层的楼层平面图。基于该楼层平面图来生成关于第一楼层的第一地图。第一地图包括多个顶点和边缘,其中一个顶点对应于第一楼层中的相应位置,连接两个顶点的边缘表示第一楼层中的物理对象或可通行路径,并且与两个顶点相对应的两个位置位于该物理对象或可通行路径上。此外,至少利用第一地图来向用户提供基于位置的服务。
根据本公开的实现的方案能够实现地图理解,其通过理解楼层平面图的几何结构并从中提取可通行路径来将楼层平面图转换成具有特定格式的通用室内地图表示。该通用室内地图表示能够被用于提供室内导航服务以及其他基于位置的服务。此外,该通用室内地图表示可以作为基础设施,来为其他基于位置的应用服务。该通用室内地图表示还可以进一步与其他数据源和第三方导航应用相结合,以提高数据收集的质量并且提高室内导航的可靠性。通过将该通用室内地图表示与对应的环境数据绑定,能够在不依赖于任何基础设施(例如,Wi-Fi热点或蓝牙信标)的情况下提供实时室内导航服务。
提供发明内容部分是为了简化的形式来介绍对概念的选择,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
图1示出了能够实施本公开的多个实现的计算设备的框图;
图2示出了根据本公开的一些实现的用于提供室内位置服务的示例系统的框图;
图3示出了根据本公开的一些实现的通用地图表示的示例;
图4A示出了根据本公开的实现的要从中移除冗余信息的示例初始地图的示意图;
图4B示出了根据本公开的一些实现的已从中移除冗余信息的示例初始地图的示意图;
图5示出了根据本公开的一些实现的地图中可能存在的重叠的示意图;
图6示出了根据本公开的一些实现的地图中可能存在的交叉点的示意图;
图7示出了根据本公开的一些实现的用于处理边缘交叉点的过程的流程图;
图8示出了根据本公开的一些实现的地图中可能存在的间隙的示意图;
图9示出了根据本公开的一些实现的三角剖分的示意图;
图10示出了根据本公开的一些实现的经由三角剖分而生成的地图的示意图;
图11示出了根据本公开的一些实现的拓扑生成的示意图;
图12示出了根据本公开的一些实现的不具有拓扑信息和具有拓扑信息的地图的示意图;
图13示出了根据本公开的一些实现的用于重新平衡的过程的流程图;
图14示出了根据本公开的一些实现的用于消除穿墙路径的过程的流程图;
图15示出了根据本公开的一些实现的未经清理的拓扑地图的示意图;
图16示出了根据本公开的一些实现的web前端的示例用户界面的示意图;
图17示出了根据本公开的一些实现的可视化工具的示意图;以及
图18示出了根据本公开的一些实现的用于提供室内位置服务的过程的流程图。
这些附图中,相同或相似参考符号用于表示相同或相似元素。
具体实施方式
现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本主题的范围的任何限制。
如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
示例环境
以下参考附图来说明本公开的基本原理和若干示例实现。图1示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100包括通用计算设备形式的计算设备100。计算设备100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。
在一些实现中,计算设备100可以被实现为具有计算能力的各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。
处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备100的并行处理能力。处理单元110也可以被称为中央处理单元(CPU)、微处理器、控制器、微控制器。
计算设备100通常包括多个计算机存储介质。这样的介质可以是计算设备100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储器120可以包括位置服务模块122,这些程序模块被配置为执行本文所描述的各种实现的功能。位置服务模块122可以由处理单元110访问和运行,以实现相应功能。
存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,其能够用于存储信息和/或数据并且可以在计算设备100内被访问。计算设备100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。
通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算设备100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备100可以使用与一个或多个其他服务器、个人计算机(PC)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。
输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球、语音输入设备等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备100交互的设备进行通信,或者与使得计算设备100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
计算设备100可以根据本公开的多种实现来提供室内位置服务。在提供室内位置服务时,计算设备100可以通过输入设备150获取关于建筑物中的楼层的楼层平面图170。计算设备100可以基于所获取的楼层平面图170来生成关于该楼层的具有拓扑信息(例如,与路径有关的信息)地图。例如,该地图包括多个顶点和边缘,其中的一个顶点对应于该楼层中的相应位置,并且连接两个顶点的边缘表示连接与两个顶点相对应的两个位置的物理对象或可通行路径。计算设备100可以将所生成的地图存储在存储设备130中,以便于至少利用该地图来向计算设备100的用户提供基于位置的服务。例如,计算设备100可以通过输入设备150获取关于用户的起始位置和目的位置的信息180。然后,计算设备100可以至少基于所生成的地图来确定从该起始位置到目的位置的路径190,例如该路径190可以由来自地图中的多个顶点和边缘的一系列顶点和边缘表示。计算设备100可以进一步通过输出设备160向用户提供该路径190。
在一些实现中,除了被集成在单个设备上之外,计算设备100的各个部件中的一些或所有部件还可以以云计算架构的形式被设置。在云计算架构中,这些部件可以被远程布置,并且可以一起工作以实现本公开所描述的功能。在一些实现中,云计算提供计算、软件、数据访问和存储服务,它们不需要终端用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实现中,云计算使用适当的协议通过广域网(诸如因特网)提供服务。例如,云计算提供商通过广域网提供应用,并且它们可以通过web浏览器或任何其他计算组件被访问。云计算架构的软件或组件以及相应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被合并或者它们可以被分散。云计算基础设施可以通过共享数据中心提供服务,即使它们表现为针对用户的单一访问点。因此,可以使用云计算架构从远程位置处的服务提供商提供本文所描述的组件和功能,如以下将结合图2来描述的。备选地,它们也可以从常规服务器被提供,或者它们可以直接或以其他方式被安装在客户端设备上。
如上所述,传统的室内定位与导航方案主要包括结合地图(例如,楼层平面图和其他指纹地图)的方案,诸如基于Wi-Fi信号、地磁场信号或蓝牙信标的定位与导航方案,以及基于惯性导航技术的方案等等。然而,这些方案往往具有较高的外部依赖性或者较高的维护成本,使得它们难以被大规模部署和扩展。此外,现有的室内导航方案还包括独立于基础设施的方案,例如基于领路者-追随者模型的室内导航方案。在基于领路者-追随者模型的室内导航方案中,领路者记录自己的行进路线并将其分享给其他人,使得其他人能够跟随领路者的路线找到目的地。然而,这类方案往往要求参考路线(即,领路者的路线)的存在。当不存在参考路线时,这类方案可能无法工作。
以上讨论了在目前的室内位置服务方案中存在的一些问题。根据本公开的实现,提出了一种用于提供室内位置服务的方案,旨在解决上述问题以及其他潜在问题中的一个或多个。根据本公开的实现的方案能够实现地图理解,其通过理解楼层平面图的几何结构并从中提取可通行路径来将楼层平面图转换成具有特定格式的通用室内地图表示。该通用室内地图表示能够被用于提供室内导航服务以及其他基于位置的服务。此外,该通用室内地图表示可以作为基础设施,来为其他基于位置的应用服务。进一步地,该通用室内地图表示还可以进一步与其他数据源和第三方导航应用相结合,以提高数据收集的质量并且提高室内导航的可靠性。通过将该通用室内地图表示与对应的环境数据绑定,能够在不依赖于任何基础设施(例如,Wi-Fi热点或蓝牙信标)的情况下提供实时室内导航服务。
以下进一步结合附图来详细描述该方案的各种示例实现。
系统架构
图2示出了根据本公开的一些实现的用于提供室内位置服务的示例系统200的框图。应当理解,仅出于示例性的目的描述系统200的结构和功能而不是暗示对于本公开的范围的任何限制。本公开的实现也可以被体现在不同的结构和/或功能中。
系统200可以包括地图构建子系统210、web前端220和客户端设备230。在一些实现中,地图构建子系统210可以被配置为将由用户240经由web前端220上传的楼层平面图作为输入,通过一系列的处理技术来生成具有特定格式的通用地图表示;以及利用该通用地图表示来为用户240提供室内导航及其他基于位置的服务。在一些实现中,地图构建子系统210中的至少一部分可以被实现为图1的计算设备100的位置服务模块122,也即,被实现为计算机程序模块。例如,在图2的实施例中,地图构建子系统210可以被部署在云端。备选地,在其他实现中,地图构建子系统210也可以部分或者全部地通过硬件设备来实现。
用户240可以通过web前端220来与地图构建子系统210进行交互。例如,web前端220允许用户240经由浏览器上传楼层平面图、对由地图构建子系统210生成的具有特定格式的通用地图表示进行修改、查询特定于位置的信息(例如,查询从起始位置到目的位置之间的路径)或者查找兴趣点等等。
客户端设备230可以被实现为例如用户240的终端设备(诸如,手机)或其他电子设备,其可以为用户240提供实时室内导航服务。例如,用户240可以将通过web前端220查询到的路径下载到客户端设备230中。客户端设备230可以基于所下载的路径为用户240提供实时或者准实时的导航指令。此外,客户端设备230可以被装配有各种传感器。在进行室内导航期间,客户端设备230可以沿着用户240行进的轨迹来存储由各种传感器采集的环境数据(例如,Wi-Fi信号、地磁场信号、气压等等)。这些环境数据可以被上传至地图构建子系统210并且被存储在地图构建子系统210中的环境数据库(例如,环境数据库218)中,以与所生成的通用地图表示进行绑定。与环境数据绑定的地图能够提供可靠的导航指示。
以下将进一步结合附图来描述地图构建子系统210中的各模块的原理和/或功能。在详细介绍地图构建子系统210之前,首先介绍根据本公开的实现的具有特定格式的通用地图表示(在本文中,该地图表示也被称为“MapGraph”)。
在一些实现中,MapGraph是代表室内地图的文件格式。现有的地图格式(例如,楼层平面图)主要包括栅格图像和矢量图,它们均不适合地图和路径构建。例如,栅格图像由彩色像素组成,并且地图相关信息被隐藏于其中。矢量图包含太多冗余的信息,比如颜色、笔画风格等,这些信息对简明的地图表示没有用处。此外,原始楼层平面图中不包含拓扑信息(即,关于可通行路径的信息),这使得不能满足室内位置服务的要求。针对这些问题以及其他潜在问题,MapGraph能够简明地保存所需的地图相关信息。
MapGraph的定义类似于矢量图,其存储楼层中不同形状的物理对象(诸如,房间、门等)的轮廓。MapGraph由基于顶点和边缘的数据结构表示。例如,图3示出了MapGraph 300的示例。如图3所示,存储在MapGraph中的项目包括以下三种:地图大小、顶点(“vertices”)和边缘(“edges”)。地图大小包括地图的高度(“height”)和宽度(“width”),两者都可以从用户提供的楼层平面图得到,其在以下处理中对于生成与大小相关的阈值非常有用。顶点可以对应于楼层中的位置。例如,MapGraph中的顶点可以包括来自楼层平面图的关于物理对象的顶点,以及在后续处理过程中生成的表示可通行路径上的位置的顶点。连接两个顶点的边缘可以表示连接与两个顶点相对应的两个位置的物理对象(例如,走廊、墙壁等)或者可能的路径。以此方式,无论是楼层中的物理对象还是拓扑信息(例如,可能的路径)都能够由MapGraph中的顶点和边缘来表示。
MapGraph中的每个顶点可以由唯一的顶点标识符(“ID”)或者键值(“key”)、其坐标(例如,X坐标和Y坐标)、其连接的边缘(“edges”)和描述附加信息的标签(“label”)表示。每个边缘由唯一的边缘ID表示、其两个顶点的ID(“endVertices”)以及用于附加信息的元素ID(“elemID”)。为了消除物理对象信息和拓扑信息之间的混淆,并且使MapGraph生成过程更加可追踪,元素类型被引入到顶点和边缘中,其由MapGraph中的类型(“type”)来表示。例如,类型可以指示顶点/边缘是属于原始楼层平面图还是在某些处理过程中创建的,以及该顶点/边缘是指示房间还是属于拓扑信息的。表1显示了根据本公开的一些实现的顶点和边缘的若干示例类型。
表1
工作原理
如图2所示,地图构建子系统210可以包括楼层解析模块211、三角剖分模块212、拓扑构建模块213、地图清理模块214、地图连接模块215、地图数据库216、环境数据绑定模块217、环境数据库218以及路径构建模块219。
楼层平面图解析
在一些实现中,地图构建子系统210中的楼层解析模块211被配置为基于从用户240处获取的关于建筑物(以下称为“第一建筑物”)中的楼层(以下称为“第一楼层”)的楼层平面图来生成与该楼层平面图相对应的初始MapGraph(以下称为“初始地图”)。例如,初始地图(即,初始MapGraph)可以包括表示第一楼层中的物理对象的轮廓的第一组顶点和边缘。
如之前所描述的,当前的楼层平面图通常采用两种格式:光栅图像和矢量图。在一些实现中,具有光栅图像格式的楼层平面图可以被转换成具有矢量图格式的楼层平面图。例如,可以利用任何已知或将要开发的技术来实现上述格式转换。常用的矢量图格式可以包括CDR、DWG、DXF、SVG等,它们大都使用类似的数据结构。出于示例的目的,在此以SVG格式作为矢量图的示例来描述楼层平面图到初始地图的转换。应当理解,这仅仅出于说明的目的,而无意于限制公开的范围。
一个典型的SVG文件包含许多元素,例如<metadata>、<style>、<polyline>等。在一些实现中,由于MapGraph文件只包含大小和轮廓信息,SVG文件中的宽度、高度和<polyline>、<path>、<text>元素可以被提取,而其他元素可以被丢弃以生成初始MapGraph。SVG文件中的宽度和高度可以被用于构成初始MapGraph中的地图大小和坐标,SVG文件中的<polyline>、<path>和<text>元素中的连接信息可以被用于构成初始MapGraph中的顶点和边缘。所有的键值都是在解析过程中自动生成的。从<polyline>和<path>元素得到的顶点的类型被标记为“原始类型”(例如,表1中的类型1),因为它们是从楼层平面图得到的。从<text>元素得到的顶点的类型可以被标记为“房间”(也即,表1中的类型0),因为其包括关于楼层中的房间的信息。在一些实施例中,可以针对房间类型的顶点创建单独的MapGraph,其中仅存储房间顶点,以便于后续对房间的查找。
附加地或者备选地,在一些实现中,地图构建子系统210中的楼层解析模块211可以进一步优化初始地图。例如,在本文中经优化的初始地图也被称为第二地图。例如,第二地图可以包括通过优化第一组顶点和边缘而得到的第二组顶点和边缘。
初始地图通常不会被直接使用,这是因为初始地图中存在很多冗余信息,使得路径构建等任务容易出错。此外,初始地图中可能存在诸如连接错误的问题,可能对系统性能造成负面影响。因此,需要针对初始地图进行预处理,以解决上述问题。
在一些实现中,楼层解析模块211可以通过从初始地图中移除冗余信息来优化初始地图。初始地图从楼层平面图转换而来,其内部可能包括很多冗余信息。在一些实现中,例如,楼层解析模块211可以从初始地图中的第一组顶点和边缘中识别特定物理对象,特定物理对象例如由具有特定特征的顶点和边缘的集合表示。特定物理对象的示例可以包括但不限于门、楼梯等等。以下以门作为特定物理对象的示例。在一些实现中,楼层解析模块211可以从表示门的顶点和边缘的集合中移除冗余顶点和边缘。其他类似的冗余信息可以使用类似的方法处理。
图4A示出了根据本公开的实现的要从中移除冗余信息的示例初始地图的示意图。如图4A所示,初始地图410中包括多个门411-1~411-6(统称为“门411”)。这些门连通的房间和走廊隔开,导致无法从一个房间到达另一房间。
在一些实现中,楼层解析模块211可以将如图4A所示的初始地图410中的多个门411移除。从如图4A所示初始地图410可以观察到,门411具有特定特征,例如,每个门411都由一段曲线和与该曲线附近的线段组成。楼层解析模块211可以从初始地图中的第一组顶点和边缘中识别这样的特定特征。在一些实现中,楼层解析模块211可以首先检测曲线形状,然后遍历附近的边缘以找到与曲线相连的限度。针对给定的地图大小,如果检测到的曲线太长,则该曲线不被视为门。在检测到与门相对应的特定特征之后,楼层解析模块211可以首先移除整个曲线,然后移除邻近该曲线的线段。在一些实现中,如果在要移除的位置处存在多个平行线段,则楼层解析模块211可以将它们全部移除。以此方式,初始地图410中的门被移除,如图4B中的地图420所示。
附加地或者备选地,在一些实现中,在移除初始地图中的冗余信息之后,楼层解析模块211还可以从初始地图中移除以下各项:重叠的边缘、边缘的交叉点和边缘间的间隙等。
在一些实现中,楼层解析模块211可以从初始地图中移除重叠的边缘。在此所述的“重叠”是指看上去是单一的边缘实际由多个重叠的边缘组成的情况。例如,图5示出了可能存在两种重叠情况:交叉重叠和完全重叠。交叉重叠是指一个边缘的一部分与另一边缘的一部分重叠,完全重叠是指一个边缘的全部与另一边缘重叠。为了处理重叠,楼层解析模块211可以首先对初始地图中的边缘进行空间聚类。例如,相同偏移和斜率的边缘可以被聚类在一起以生成共线边缘组。楼层解析模块211然后可以根据重叠的类型来处理这些组。例如,对于完全重叠的边缘,楼层解析模块211可以删除其中较短的边缘。对于交叉重叠的边缘,楼层解析模块211可以利用按照原始边缘的顶点划分的三个新的边缘来替换原始的两个边缘。以此方式,楼层解析模块211能够从初始地图中移除重叠的边缘。
在一些实现中,例如在重叠的边缘被移除之后,楼层解析模块211可以从初始地图中移除边缘交叉点。在此所述的“交叉点”是指两个边缘看似相互交叉,但在交叉处不存在顶点或者这两个边缘彼此非常接近的情况。例如,图6示出了可能存在的交叉点的两种情况。
图7示出了根据本公开的实现的用于处理边缘交叉点的过程700的流程图。例如,过程700可以由楼层解析模块211来执行。应当理解,过程700还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在701处,楼层解析模块211从初始地图中随机选取一个边缘e,并找到边缘e所在的那一行l。在702处,楼层解析模块211从初始地图中选取边缘tmpE。在703处,楼层解析模块211确定边缘e与边缘tmpE是否相交。如果在703处确定的结果为“否”,则过程700进行至702,其中楼层解析模块211选取下一边缘tmpE进行处理。如果在703处确定的结果为“是”,则过程700进行至704。
在704处,楼层解析模块211确定边缘e与边缘tmpE是否彼此接近但是不平行且不相交。如果在704处确定的结果为“是”,则在705处,楼层解析模块211延伸边缘e和边缘tmpE以相交。在706处,楼层解析模块211将表示交点的顶点添加至初始地图,并且利用经延伸的边缘e替换初始地图中原来的边缘e以及利用经延伸的边缘tmpE替换初始地图中原来的边缘tmpE。如果在704处的确定结果为“否”,则过程700进行至707,其中楼层解析模块211确定边缘e与边缘tmpE是否相交但在相交处没有顶点。如果在707处确定的结果为“是”,则在708处,楼层解析模块211将表示交点的顶点添加至初始地图,并且过程700进行至709。如果在707处确定的结果为“否”,则过程700也进行至709。
在709处,楼层解析模块211确定初始地图中所有的边缘tmpE是否被遍历。如果在709处确定的结果为“否”,则过程700进行至702,其中楼层解析模块211选取下一边缘tmpE进行处理。如果在709处确定的结果为“是”,则过程700进行至710,其中楼层解析模块211确定初始地图中所有的边缘e是否被处理。如果在710处确定的结果为“否”,则过程700进行至701,其中楼层解析模块211选取下一边缘e进行处理。
以此方式,楼层解析模块211能够从初始地图中移除边缘交叉点。
在重叠的边缘和边缘的交叉点被移除后,边缘之间仍然可能存在间隙,这使得看似连通的地图实际上存在未连接的情况。图8示出了这样的示例,其中一条看似单一的边缘实际上由两条边缘,并且两者之间存在肉眼难以辨认的间隙。在一些实现中,例如在重叠的边缘和边缘的交叉点被移除后,楼层解析模块211可以从初始地图中移除边缘间的间隙。在一些实现中,根据边缘之间的间隙的大小,可以将间隙分为较大的间隙和较小的间隙。楼层解析模块211可以针对较大的间隙和较小的间隙分别进行处理。在一些实现中,针对较小的间隙,楼层解析模块211可以通过如下方式来进行处理:针对初始地图中的每个顶点v,确定与该顶点距离小于第一预定阈值的相邻顶点集合;并且针对该相邻顶点集合中的每个相邻顶点neighbourV,利用顶点v来替换该相邻顶点neighbourV。在一些实现中,针对较大的间隙,楼层解析模块211可以通过如下方式来进行处理:针对初始地图中的每个顶点v,确定与该顶点距离小于第二预定阈值的相邻顶点集合;并且针对该相邻顶点集合中的每个相邻顶点neighbourV,将顶点v连接至该相邻顶点neighbourV,其中第一预定阈值小于第二预定阈值。
以此方式,楼层解析模块211能够从初始地图中移除边缘之间的间隙。应当理解的是,移除间隙可能会引入新的交叉点问题。在一些实现中,例如在边缘之间的间隙被移除之后,楼层解析模块211可以再次执行交叉点移除操作,如以上所描述的。
三角剖分
在针对初始地图进行冗余信息移除以及其他问题处理(诸如移除重叠的边缘、边缘的交叉点和边缘间的间隙等)之后,楼层解析模块211可以得到经优化的初始地图,在本文中也被称为“第二地图”。例如,第二地图包括通过优化初始地图中的第一组顶点和边缘而得到的第二组顶点和边缘。在第二地图中,第一楼层中的物理对象的信息被存储于其中,然而第二地图并不包括关于路径的信息(本文中也被称为“拓扑信息”),诸如哪个点可以通过哪条路径到达哪个点。因此,地图构建子系统210需要针对第二地图生成与路径相关的信息。
在一些实现中,三角剖分模块212可以向第二地图应用三角剖分来生成第三地图。在此所述的“三角剖分”是计算几何中广泛使用的一种重要的预处理方法,也是生成多边形表示的路径的成功方法。三角剖分通过在线段的端点之间插入边来被完成,直到所有空间被分成三角形。所有创建的三角形的内部应该为空,也就是说没有三角形在其他三角形内。通过这种方式,楼层中的对象和对象之间的空白空间可以被覆盖,并且随后用于进一步处理。
在一些实现中,要对第二地图进行三角剖分,三角剖分模块212需要考虑如图9所示的两种情况。如图9中的910所示,当两个边缘911和912形成类似于“耳朵”的形状时,两个边缘911和912的未连接的两个顶点可以被连接,以形成新的边缘913。如图9中的920所示,当边缘921未形成“耳朵”的形状,但是当利用边缘921形成“耳朵”的形状时能够与其他的边缘相交,则可以通过将边缘921的顶点与附近的顶点相连来形成两个新的边缘922和923。三角剖分模块212可以按照如图9所示的方式来处理第二地图中的所有类似情况。以此方式,第二地图中所有的“耳朵”和孤立的顶点能够被移除,以生成第三地图,其中经由所述三角剖分而添加的边缘将覆盖空白处和房间的内部,并且拓扑信息可以基于第三地图而被生成。
图10示出了根据本公开的实现的通过三角剖分而生成的第三地图的示例1000。如图10所示,示例第三地图1000可以包括属于初始地图的顶点和边缘以及经由三角剖分而生成的边缘。应当理解,经由三角剖分而生成的边缘在第三地图中具有表1中所示的类型7。
拓扑构建
在一些实现中,拓扑构建模块213可以从经由三角剖分而生成的第三地图中得到拓扑信息。在一些实现中,拓扑构建模块213可以被划分成如下子模块:拓扑生成子模块、重新平衡子模块、重新连接子模块、墙壁避免子模块和爆炸优化子模块。拓扑构建模块213的各个子模块将在下面被详细描述。
在一些实现中,拓扑构建模块213中的拓扑生成子模块可以通过基于试探法向第三地图添加顶点和边缘来生成拓扑信息。例如,第三地图中经由三角剖分而添加的边缘可以覆盖诸如楼层中的走廊和房间等内部。拓扑构建模块213可以在第三地图中经由三角剖分而添加的边缘中的每个边缘上(例如,中间位置处)添加顶点(在本文中也被称为“拓扑顶点”)。如果第三地图中的一个基本三角形(即,其内部没有其他三角形)的两个边缘经由三角剖分而被创建,则向第三地图添加连接这两个边缘上的两个拓扑顶点的新的边缘(在本文中也被称为“拓扑边缘”)。此外,如果第三地图中的一个基本三角形的三个边缘都是经由三角剖分而被创建的,则不添加平行于该三角形的最长边缘的拓扑边缘,以避免所生成的拓扑边缘过长。
图11示出了根据本公开的实现的拓扑生成的示例。如图11中的1110所示,三角形中仅一个边缘1111是经由三角剖分而被创建的。在此情况下,仅向边缘1111添加一个拓扑顶点,该拓扑顶点可以表示由边缘1111表示的可通行路径上的位置。如图11中的1120所示,三角形中的边缘1121和1122是经由三角剖分而被创建的。在此情况下,可以分别向边缘1121和1122添加相应拓扑顶点,并且创建连接所添加的拓扑顶点的拓扑边缘1123。该拓扑边缘1123可以表示楼层中的一条可通行路径。如图11中的1130所示,三角形中的边缘1131、1132和1133都是经由三角剖分而被创建的,并且边缘1131最长。在此情况下,可以分别向边缘1131、1132和1133添加相应拓扑顶点,并且创建连接所添加的拓扑顶点的拓扑边缘1134和1135,但是不创建平行于边缘1131的拓扑边缘。
以此方式,拓扑构建模块213能够向第三地图添加与楼层中的可通信路径有关的拓扑信息,添加了拓扑信息的地图在本文中被称为“第一地图”或“拓扑地图”。例如,第一地图中可以包括多个顶点和边缘,其中的一个顶点(可以是拓扑顶点或属于物理对象的顶点)对应于楼层中的相应位置,并且连接两个顶点的边缘可以表示连接与这两个顶点相对应的两个位置的物理对象(即,属于物理对象的边缘)或可通行路径(即,拓扑边缘)。
图12示出了根据本公开的实现的将由楼层解析模块211生成的第二地图进行三角剖分和拓扑生成处理而生成第一地图的示例。例如,图12示出了由楼层解析模块211生成的第二地图的示例1210。图12还示出了对示例地图1210应用如上所述的三角剖分和拓扑生成而生成的第三地图的示例1220。在示例地图1220中,虚线表示经由三角剖分而创建的边缘,而黑色的顶点和点划线表示经由拓扑生成而创建的拓扑边缘。
在一些实现中,由拓扑构建模块213中的拓扑生成子模块生成的第一地图可以被用于向用户240提供基于位置的服务,例如室内导航等。附加地或者备选地,拓扑构建模块213可以基于预定规则对第一地图进行进一步优化,以避免第一地图中存在不合理的拓扑信息。预定规则的示例包括但不限于:确保第一地图中的任意两个顶点彼此可达、使得第一地图中任意两个顶点之间的路径长度尽可能短和/或尽可能笔直、避免生成穿墙路径等等。以下将结合具体示例来进一步详细说明。在一些实现中,例如,拓扑构建模块213中的重新平衡子模块、重新连接子模块、墙壁避免子模块和爆炸优化子模块可以被用于执行这样的优化。
由于三角剖分模块212可能仅简单地划分第二地图而没有对生成的三角形进行任何约束,因此在第一地图中可能存在很多形状很“细”的三角形,即这样的三角形中的某个边缘比同一三角形内的最短边缘要长得多。如果利用这样的地图来进行路径构建,则可能产生不合理的路径,例如在存在较短的替代路径的情况下向用户建议一条很长的路径。例如,拓扑构建模块213中的重新平衡子模块可以针对上述情况进行处理。
图13示出了根据本公开的实现的用于重新平衡的过程1300的流程图。例如,过程1300可以由拓扑构建模块213(例如,其中的重新平衡子模块)来执行。应当理解,过程1300还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在1301处,拓扑构建模块213中的重新平衡子模块可以将第一地图划分为多个连通部分,这些连通部分中的每个连通部分内部的任意两个顶点彼此连通但是这些连通部分之间彼此不连通。在1302处,重新平衡子模块可以确定多个连通部分中的最大连通部分,并且针对最大连通部分中超过预定阈值的边缘从长到短进行排序。然后,重新平衡子模块可以针对最大连通部分中超过预定阈值的经排序的边缘集合进行处理。在1303处,重新平衡子模块可以从经排序的边缘集合中获得边缘e。在1304处,重新平衡子模块可以从多个连通部分中找到分别与该边缘e的两个顶点v1和v2最接近的两个相邻顶点neighbour1和neighbour2。在1305处,重新平衡子模块可以确定顶点v1与相邻顶点neighbour1之间的距离是否小于顶点v2相邻顶点neighbour2间的距离并且小于边缘e的长度。如果在1305处的确定结果为“是”,则过程1300进行至1306,其中重新平衡子模块可以创建连接顶点v1与相邻顶点neighbour1的新拓扑边缘以替代边缘e。如果在1305处的确定结果为“否”,则过程1300进行至1307,其中重新平衡子模块可以确定顶点v2与相邻顶点neighbour2之间的距离是否小于顶点v1相邻顶点neighbour1间的距离并且小于边缘e的长度。如果在1307处的确定结果为“是”,则过程1300进行至1308,其中重新平衡子模块可以创建连接顶点v2与相邻顶点neighbour2的新拓扑边缘以替代边缘e。如果在1307处的确定结果为“否”,则过程1300进行至1309。在1309处,重新平衡子模块可以确定经排序的边缘集合中的所有边缘是否已被处理。如果在1309处的确定结果为“否”,则过程1300进行至1303,其中重新平衡子模块可以从经排序的边缘集合中获取下一边缘e以进行处理。如果在1309处的确定结果为“是”,则在1310处,重新平衡子模块可以将最大连通部分与多个连通部分中的其他连通部分合并。
经重新平衡的第一地图中可以存在彼此不连通的部分,使得从某个顶点出发可能无法到达另一顶点。在一些实现中,拓扑构建模块213中的重新连接子模块可以针对上述情况进行处理。例如,重新连接子模块可以将第一地图划分为多个连通部分,这些连通部分中的每个连通部分内部的任意两个顶点彼此连通但是这些连通部分之间彼此不连通。然后,重新连接子模块可以遍历这些连通部分,以利用拓扑边缘将彼此不连通的两个连通部分进行连接。以此方式,拓扑构建模块213中的重新连接子模块能够消除第一地图中可能存在的不连通的情况。
在一些情况下,第一地图中可以存在“穿墙”问题,也即一条拓扑路径穿过表示物理对象(例如墙壁)的边缘。在一些实现中,拓扑构建模块213中的墙壁避免子模块可以针对上述情况进行处理。
图14示出了根据本公开的实现的用于消除穿墙路径的过程1400的流程图。例如,过程1400可以由拓扑构建模块213(例如,其中的墙壁避免子模块)来执行。应当理解,过程1400还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在1401处,墙壁避免子模块可以获取第一地图中的最大连通部分。在1402处,墙壁避免子模块可以获取最大连通部分中的顶点v并且创建与顶点v相对应的新顶点newV。例如,新顶点newV的初始属性与顶点v一致。在1403处,墙壁避免子模块可以确定第二地图中与顶点v最接近的边缘e。在1404处,墙壁避免子模块可以确定顶点v与边缘e的距离是否小于预定阈值。例如,该预定阈值的初值可以基于第二地图的地图大小来被确定。如果在1404处的确定结果为“是”,则过程1400进行至1405,其中墙壁避免子模块可以确定顶点v向边缘e的投影是否在边缘e上。如果在1405处的确定结果为“是”,则过程1400进行至1406,其中墙壁避免子模块可以将顶点newV定位在使得连接顶点v与顶点newV的边缘垂直于边缘e的位置处。如果在1405处的确定结果为“否”,则过程1400进行至1407,其中墙壁避免子模块可以将顶点newV定位在使得连接顶点v与顶点newV的边缘与边缘e的一个顶点共线的位置处,然后过程1400进行至1408。如果在1404处的确定结果为“否”,则过程1400也进行至1408。在1408处,墙壁避免子模块可以确定以下情况是否成立:连接顶点v与顶点newV的边缘或者第一地图中任何与顶点newV相连的边缘与第二地图中的任何边缘相交;或者顶点newV与第二地图中的任何边缘过于接近。如果在1408处的确定结果为“是”,则在1409处,墙壁避免子模块可以丢弃顶点newV;否则在1410处,墙壁避免子模块可以利用顶点newV来替换第一地图中的顶点v。在1411处,墙壁避免子模块可以确定最大连通部分中的所有顶点是否已被处理。如果在1411处的确定结果为“是”,则在1412处,墙壁避免子模块可以增加预定阈值;否则,过程1400进行至1402,其中墙壁避免子模块可以从最大连通部分中获取下一顶点v以进行处理。
如图14所示,过程1400可以被重复执行若干次以实现更好的效果。此外,尽管未在图14中示出,但是过程1400中包括框1403~1409的子过程可以被重复执行若干次以实现更好的效果。以此方式,拓扑构建模块213中的墙壁避免子模块能够移除第一地图中表示“穿墙”路径的拓扑边缘。
此外,第一地图还可以被进一步优化,以使得从一个顶点到另一顶点的拓扑边缘应该具有尽可能小的距离。例如,在一些实现中可以考虑将两个顶点进行连接,只要连接这两者的边缘不会与任何现有的边缘相交,因为这两者之间根据当前的第一地图的任何路径都会长与直接连接两者的边缘长度。
在一些实现中,拓扑构建模块213中的爆炸优化子模块可以被配置为针对上述问题进行处理。例如,拓扑构建模块213可以使用爆炸算法来连接尽可能多的顶点。在一些实现中,如果两个顶点已经被连接,或者它们形成的边缘与第二地图或第一地图中的任何边缘相交,则不对第一地图进行任何改变。否则,连接这两个顶点的拓扑边缘可以被添加到第一地图。
以此方式,由拓扑构建模块213中的拓扑生成子模块生成的第一地图能够被进一步优化,以避免其中存在与不合理路径相关联的拓扑信息。
地图清理
由拓扑构建模块213生成并优化的第一地图可以被用于路径构建。然而,在一些情况下,由拓扑构建模块213生成并优化的第一地图可能是错综复杂并且扭曲了。例如,图15示出了这样的示例1500。在一些实现中,为了在路径构建过程中产生更直接和更笔直的路径,地图清理模块214可以对由拓扑构建模块213生成并优化的第一地图进行地图清理。
在一些实现中,为了清理第一地图,地图清理模块214可以首先可以将沿线连接或者彼此接近共线(例如,在15度内倾斜)的多个顶点分组在一起。地图清理模块214然后可以调整同一分组内顶点的坐标。例如,在一些实现中,地图清理模块214可以将同一分组内的顶点的坐标调整为该组中的房间顶点。备选地,在另一些实现中,地图清理模块214可以将同一分组内的顶点的坐标调整为该组中顶点坐标的平均值。在一些实现中,第一地图中的所有顶点可以被遍历以被类似地处理。附加地或者备选的,在一些实现中,如果连接顶点的边缘具有过大或者过小的斜率,则该边缘的顶点可以不被调整。以此方式,能够生成经清理的拓扑地图,并且可以基于此来创建更直接的路径。
地图连接
通过上述的所有处理,能够生成关于第一楼层的经清理的第一地图,以用于路径构建。在一些实现中,可以进一步将同一建筑物中的不同楼层的拓扑地图进行组合。附加地或者备选地,在一些实现中,可以进一步将相互连通的不同建筑物的拓扑地图进行组合。可以利用经组合的拓扑地图来为用户提供基于位置的服务。
例如,用户240可以从web前端220上传关于楼层之间的连接(例如,楼梯或电梯等)的信息(本文中也被称为“第一信息”)和/或关于不同建筑物之间的连接(例如,走廊、连接岛等)的信息(本文中也被称为“第二信息”)。此外,用户240还可以经由web前端220来提供关于房间之间的连接的信息。例如,地图构建子系统210中的地图连接模块215可以基于这些信息来进行拓扑地图连接,以提供能够用于实现跨楼层和/或跨建筑物的路径构建的拓扑地图。该拓扑地图例如可以被存储在地图构建子系统210中的地图数据库216中。
路径构建
在一些实现中,路径构建模块219可以被配置为利用地图数据库216中的拓扑地图来进行路径构建。例如,响应于接收到由用户240经由web前端220而提供的关于起始位置和目的位置的信息,路径构建模块219可以基于地图数据库216中的拓扑地图来确定从起始位置到目的位置的最优路径,并且将该路径提供给用户240(例如,客户端设备230),以用于室内导航。
附加地或者备选地,在一些实现中,响应于接收到由用户240经由web前端220而提供的关于起始位置和目的位置的信息(例如,其可以指示在拓扑地图上的起始位置和目的位置),路径构建模块219可以查找针对房间类型的顶点创建的单独地图(例如,其中仅存储房间顶点),以提取分别距离起始位置和目的位置最近的房间顶点。然而,路径构建模块219可以基于起始房间顶点和目的房间顶点来确定从起始房间到目的房间的最短路径。例如,最短路径可以基于Dijkstra算法而被生成。
环境数据绑定
在一些实现中,用户240可以将通过web前端220查询到的路径下载到客户端设备230中。客户端设备230可以基于所下载的路径为用户240提供实时或者准实时的导航指令。此外,客户端设备230可以被装配有各种传感器。在进行室内导航期间,客户端设备230可以沿着用户240行进的轨迹来存储由各种传感器采集的环境数据(例如,Wi-Fi信号、地磁场信号、气压等等)。这些环境数据可以被上传至地图构建子系统210并且被存储在地图构建子系统210中的环境数据库218中,以由地图构建子系统210中的环境数据绑定模块217将其与所生成的拓扑地图进行绑定。与环境数据绑定的地图能够提供可靠的导航指示。
示例用户界面
以上示出了如图2所示的示例系统200及其各个部分的工作原理。以下将示例性地示出系统200中的一些部件的示例用户界面。
图16示出了web前端220的示例用户界面1600。如图16所示,示例用户界面1600可以由地图显示面板1610、建筑物选择面板1620,楼层选择面板1630和目的地面板1640组成。通过地图显示面板1610上的默认起点,用户可以通过单击地图中的相应点来查询到感兴趣的地点的路径。这可以触发如上所述的地图构建子系统210中的路径构建模块219根据地图数据库216中的拓扑地图来构建到目的地的最短路径,并且然后该路径将被绘制在地图上,如图16中的路径1650所示。附近的房间信息也将被给出。然后,用户可以清除路径1650并且查询其他信息,或者例如可以通过扫描二维码将路径1650下载到客户端设备230中。通过下载所需的路径,用户可以在其他导航应用的帮助下实现实时或准实时的室内导航。此外,用户可以通过建筑物选择面板1620或楼层选择面板1630来在各种建筑物中选择不同的楼层地图。此外,保留经常访问的目的地的快速选择面板1660和显示最近活动地点的信息面板1670可以使得用户能够轻松访问所需的地点。
所有的楼层平面图和生成的拓扑地图可以被存储在都作为单独的斑点存储在诸如地图构建子系统210的后端服务器中。例如,后端服务器可以部署在云端,其中楼层、建筑物、房间以及楼层连接等之间的对应关系可以被存储在单独的表格中。此外,后端服务器可以提供应用编程接口(API)。例如,可以为数据查询任务和更多特权地图相关信息上传/修改任务提供了多个API,以提高用户体验。普通用户可以通过使用查询API通过web前端220来轻松地查询数据。特权用户可以通过输入API将楼层平面图上传至后端服务器,这将触发如上所述的地图构建子系统210基于楼层平面图来生成并优化拓扑地图。处理完成后,生成的拓扑地图将被自动存储在地图数据库(例如,地图数据库216)中。此外,他们可以将地图注册到其对应的建筑物,并且通过注册API注册楼层的连接,以使得该地图能够被显示在该建筑物的楼层选择面板1630中并且跨楼层的路径能够被构建。以此方式,地图构建能够具有可扩展性。此外,特权用户还可以更改起始点以满足不同的部署位置。快速选择面板1660中的感兴趣的目的地也可以被修改。如果对所生成的路径不满意或者拓扑地图中仍然存在不可理的拓扑信息,则特权用户可以通过修改API来对拓扑地图进行直接修改。
在一些实现中,诸如地图构建子系统210的后端服务器可以为特权用户提供可视化工具,以使得特权用户能够在本地查看整个处理过程。例如,图17示出了这样的可视化工具1700的示例。例如,该可视化工具可以允许特权用户查看每个处理阶段所生成的地图(即,MapGraph),并且可以单独应用每个处理阶段。此外,还可以与修改API一起向特权用户提供硬编码模块,以便特权用户能够修改现有拓扑地图或者直接以可视化方式创建拓扑地图。
以上描述了根据本公开的实现的用于提供室内位置服务的方案。基于以上描述能够看出,根据本公开的实现的方案能够实现地图理解,其通过理解楼层平面图的几何结构并从中提取可通行路径来将楼层平面图转换成具有特定格式的通用室内地图表示。该通用室内地图表示能够被用于提供室内导航服务以及其他基于位置的服务。此外,该通用室内地图表示可以作为基础设施,来为其他基于位置的应用服务。进一步地,该通用室内地图表示还可以进一步与其他数据源和第三方导航应用相结合,以提高数据收集的质量并且提高室内导航的可靠性。通过将该通用室内地图表示与对应的环境数据绑定,能够在不依赖于任何基础设施(例如,Wi-Fi热点或蓝牙信标)的情况下提供实时室内导航服务。
示例过程
图18示出了根据本公开的一些实现的用于提供室内位置服务的过程1800的流程图。过程1800可以由如图1所示的位置服务模块122和/或如图2所示的地图构建子系统210来实现。应当理解,过程1800还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在1810处,位置服务模块122获取关于包括至少一个楼层的第一建筑物中的第一楼层的楼层平面图。
在1820处,位置服务模块122基于楼层平面图来生成关于第一楼层的第一地图,第一地图包括多个顶点和边缘,其中一个顶点对应于第一楼层中的相应位置,连接两个顶点的边缘表示第一楼层中的物理对象或可通行路径,并且与两个顶点相对应的两个位置位于该物理对象或可通行路径上。
在1830处,位置服务模块122至少利用第一地图来向用户提供基于位置的服务。
在一些实现中,至少利用第一地图来向用户提供基于位置的服务包括:获取用户在第一地图上的起始位置和目的位置;至少基于第一地图来确定从起始位置到目的位置的路径,路径由来自多个顶点和边缘的顶点和边缘的序列表示;以及向用户提供该路径。
在一些实现中,至少利用第一地图来向用户提供基于位置的服务包括:将第一地图与第一楼层的环境数据进行绑定;以及利用被绑定有环境数据的第一地图来向用户提供基于位置的服务。
在一些实现中,生成第一地图包括:基于楼层平面图来生成关于第一楼层的初始地图,初始地图包括表示第一楼层中的物理对象的轮廓的第一组顶点和边缘;优化初始地图以生成关于第一楼层的第二地图,第二地图包括通过优化第一组顶点和边缘而得到的第二组顶点和边缘;以及基于第二地图来生成第一地图。
在一些实现中,优化初始地图包括:从第一组顶点和边缘中识别特定物理对象,特定物理对象由具有特定特征的顶点和边缘的集合表示;以及从顶点和边缘的集合中移除冗余顶点和边缘中的至少一项。
在一些实现中,特定物理对象包括门。
在一些实现中,优化初始地图包括:从初始地图中移除以下至少一项:重叠的边缘、边缘的交叉点以及边缘间的间隙。
在一些实现中,基于第二地图来生成第一地图包括:通过向第二地图应用三角剖分来生成第三地图,第三地图包括第二组顶点和边缘以及经由三角剖分而添加的至少一个边缘;以及通过基于试探法向第三地图添加以下至少一项来生成第一地图:表示第一楼层中的可通行路径上的位置的顶点,其中该顶点在至少一个边缘上,以及表示第一楼层中的可通行路径的边缘。
在一些实现中,过程1800还包括:基于预定规则来优化所生成的第一地图,以避免第一地图中存在不合理的拓扑信息。
在一些实现中,第一建筑物还包括与第一楼层连通的第二楼层,并且过程1800还包括:获取关于第一楼层和第二楼层之间的连接的第一信息;基于第一信息来组合第一地图和关于第二楼层的第四地图,以生成关于第一建筑物的第五地图;以及利用第五地图来向用户提供基于位置的服务。
在一些实现中,第一建筑物与第二建筑物连通,并且过程1800还包括:获取关于第一建筑物和第二建筑物之间的连接的第二信息;基于第二信息来组合第五地图和关于第二建筑物的第六地图;以及利用经组合的地图来向用户提供基于位置的服务。
示例实现方式
以下列出了本公开的一些示例实现方式。
在第一方面,本公开提供了一种计算机实现的方法。该方法包括:获取关于包括至少一个楼层的第一建筑物中的第一楼层的楼层平面图;基于楼层平面图来生成关于第一楼层的第一地图,第一地图包括多个顶点和边缘,其中一个顶点对应于第一楼层中的相应位置,连接两个顶点的边缘表示第一楼层中的物理对象或可通行路径,并且与两个顶点相对应的两个位置位于该物理对象或可通行路径上;以及至少利用第一地图来向用户提供基于位置的服务。
在一些实现中,至少利用第一地图来向用户提供基于位置的服务包括:获取用户在第一地图上的起始位置和目的位置;至少基于第一地图来确定从起始位置到目的位置的路径,路径由来自多个顶点和边缘的顶点和边缘的序列表示;以及向用户提供该路径。
在一些实现中,至少利用第一地图来向用户提供基于位置的服务包括:将第一地图与第一楼层的环境数据进行绑定;以及利用被绑定有环境数据的第一地图来向用户提供基于位置的服务。
在一些实现中,生成第一地图包括:基于楼层平面图来生成关于第一楼层的初始地图,初始地图包括表示第一楼层中的物理对象的轮廓的第一组顶点和边缘;优化初始地图以生成关于第一楼层的第二地图,第二地图包括通过优化第一组顶点和边缘而得到的第二组顶点和边缘;以及基于第二地图来生成第一地图。
在一些实现中,优化初始地图包括:从第一组顶点和边缘中识别特定物理对象,特定物理对象由具有特定特征的顶点和边缘的集合表示;以及从顶点和边缘的集合中移除冗余顶点和边缘中的至少一项。
在一些实现中,特定物理对象包括门。
在一些实现中,优化初始地图包括:从初始地图中移除以下至少一项:重叠的边缘、边缘的交叉点以及边缘间的间隙。
在一些实现中,基于第二地图来生成第一地图包括:通过向第二地图应用三角剖分来生成第三地图,第三地图包括第二组顶点和边缘以及经由三角剖分而添加的至少一个边缘;以及通过基于试探法向第三地图添加以下至少一项来生成第一地图:表示第一楼层中的可通行路径上的位置的顶点,其中该顶点在至少一个边缘上,以及表示第一楼层中的可通行路径的边缘。
在一些实现中,该方法还包括:基于预定规则来优化所生成的第一地图,以避免第一地图中存在不合理的拓扑信息。
在一些实现中,第一建筑物还包括与第一楼层连通的第二楼层,并且该方法还包括:获取关于第一楼层和第二楼层之间的连接的第一信息;基于第一信息来组合第一地图和关于第二楼层的第四地图,以生成关于第一建筑物的第五地图;以及利用第五地图来向用户提供基于位置的服务。
在一些实现中,第一建筑物与第二建筑物连通,并且该方法还包括:获取关于第一建筑物和第二建筑物之间的连接的第二信息;基于第二信息来组合第五地图和关于第二建筑物的第六地图;以及利用经组合的地图来向用户提供基于位置的服务。
在第二方面,本公开提供了一种电子设备。该设备包括:处理单元;存储器,耦合至所述处理单元并且包含存储于其上的指令。所述指令在由所述处理单元执行时使所述设备执行动作,动作包括:获取关于包括至少一个楼层的第一建筑物中的第一楼层的楼层平面图;基于楼层平面图来生成关于第一楼层的第一地图,第一地图包括多个顶点和边缘,其中一个顶点对应于第一楼层中的相应位置,连接两个顶点的边缘表示第一楼层中的物理对象或可通行路径,并且与两个顶点相对应的两个位置位于该物理对象或可通行路径上;以及至少利用第一地图来向用户提供基于位置的服务。
在一些实现中,至少利用第一地图来向用户提供基于位置的服务包括:获取用户在第一地图上的起始位置和目的位置;至少基于第一地图来确定从起始位置到目的位置的路径,路径由来自多个顶点和边缘的顶点和边缘的序列表示;以及向用户提供该路径。
在一些实现中,至少利用第一地图来向用户提供基于位置的服务包括:将第一地图与第一楼层的环境数据进行绑定;以及利用被绑定有环境数据的第一地图来向用户提供基于位置的服务。
在一些实现中,生成第一地图包括:基于楼层平面图来生成关于第一楼层的初始地图,初始地图包括表示第一楼层中的物理对象的轮廓的第一组顶点和边缘;优化初始地图以生成关于第一楼层的第二地图,第二地图包括通过优化第一组顶点和边缘而得到的第二组顶点和边缘;以及基于第二地图来生成第一地图。
在一些实现中,优化初始地图包括:从第一组顶点和边缘中识别特定物理对象,特定物理对象由具有特定特征的顶点和边缘的集合表示;以及从顶点和边缘的集合中移除冗余顶点和边缘中的至少一项。
在一些实现中,特定物理对象包括门。
在一些实现中,优化初始地图包括:从初始地图中移除以下至少一项:重叠的边缘、边缘的交叉点以及边缘间的间隙。
在一些实现中,基于第二地图来生成第一地图包括:通过向第二地图应用三角剖分来生成第三地图,第三地图包括第二组顶点和边缘以及经由三角剖分而添加的至少一个边缘;以及通过基于试探法向第三地图添加以下至少一项来生成第一地图:表示第一楼层中的可通行路径上的位置的顶点、以及表示第一楼层中的可通行路径的边缘。
在一些实现中,动作还包括:基于预定规则来优化所生成的第一地图,以避免第一地图中存在不合理的拓扑信息。
在一些实现中,第一建筑物还包括与第一楼层连通的第二楼层,并且动作还包括:获取关于第一楼层和第二楼层之间的连接的第一信息;基于第一信息来组合第一地图和关于第二楼层的第四地图,以生成关于第一建筑物的第五地图;以及利用第五地图来向用户提供基于位置的服务。
在一些实现中,第一建筑物与第二建筑物连通,并且动作还包括:获取关于第一建筑物和第二建筑物之间的连接的第二信息;基于第二信息来组合第五地图和关于第二建筑物的第六地图;以及利用经组合的地图来向用户提供基于位置的服务。
在第三方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括计算机可执行指令,计算机可执行指令在由设备执行时使设备执行本公开的第二方面中的方法。
在第四方面,本公开提供了一种计算机可读介质,其上存储有计算机可执行指令,计算机可执行指令在由设备执行时使设备执行本公开的第二方面中的方法。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (18)
1.一种计算机实现的方法,包括:
获取关于包括至少一个楼层的第一建筑物中的第一楼层的楼层平面图;
基于所述楼层平面图来生成关于所述第一楼层的第一地图,所述第一地图包括多个顶点和边缘,其中一个顶点对应于所述第一楼层中的相应位置,连接两个顶点的边缘表示所述第一楼层中的物理对象或可通行路径,并且与所述两个顶点相对应的两个位置位于所述物理对象或可通行路径上;以及
至少利用所述第一地图来向用户提供基于位置的服务,
其中生成所述第一地图包括:基于所述楼层平面图来生成关于所述第一楼层的初始地图,所述初始地图包括表示所述第一楼层中的物理对象的轮廓的第一组顶点和边缘;
优化所述初始地图以移除冗余信息并生成关于所述第一楼层的第二地图,所述第二地图包括通过优化所述第一组顶点和边缘而得到的第二组顶点和边缘;以及
基于所述第二地图来生成所述第一地图,
其中基于所述第二地图来生成所述第一地图包括:
通过向所述第二地图应用三角剖分来生成第三地图,所述第三地图包括所述第二组顶点和边缘以及经由所述三角剖分而添加的至少一个边缘;以及
通过基于试探法向所述第三地图添加表示所述第一楼层中的可通行路径上的位置的顶点来生成所述第一地图,其中所述顶点在经由三角剖分而添加的所述至少一个边缘上。
2.根据权利要求1所述的方法,其中至少利用所述第一地图来向用户提供基于位置的服务包括:
获取所述用户在所述第一地图上的起始位置和目的位置;
至少基于所述第一地图来确定从所述起始位置到所述目的位置的路径,所述路径由来自所述多个顶点和边缘的顶点和边缘的序列表示;以及
向所述用户提供所述路径。
3.根据权利要求1所述的方法,其中至少利用所述第一地图来向用户提供基于位置的服务包括:
将所述第一地图与所述第一楼层的环境数据进行绑定;以及
利用被绑定有所述环境数据的所述第一地图来向用户提供基于位置的服务。
4.根据权利要求1所述的方法,其中优化所述初始地图包括:
从所述第一组顶点和边缘中识别特定物理对象,所述特定物理对象由具有特定特征的顶点和边缘的集合表示;以及
从所述顶点和边缘的集合中移除冗余顶点和边缘中的至少一项。
5.根据权利要求4所述的方法,其中所述特定物理对象包括门。
6.根据权利要求1所述的方法,其中优化所述初始地图包括:
从所述初始地图中移除以下至少一项:重叠的边缘、边缘的交叉点以及边缘间的间隙。
7.根据权利要求1所述的方法,其中至少两个边缘经由三角剖分而被添加,
其中通过基于试探法向所述第三地图添加以下项来生成所述第一地图:
表示所述第一楼层中的可通行路径上的位置的相应的顶点,其中所述顶点在经由三角剖分而被添加的所述至少两个边缘上,以及
表示所述第一楼层中的可通行路径的边缘,所述边缘在相应的所述顶点之间。
8.根据权利要求7所述的方法,还包括:
基于通过以下项中的一项或多项的预定规则来优化所生成的所述第一地图,以避免所述第一地图中存在不合理的拓扑信息:
确保所述第一地图中的任意两个顶点彼此可达,
使得所述第一地图中任意两个顶点之间的路径长度尽可能短或者尽可能直,以及
避免生成穿墙路径。
9.根据权利要求1所述的方法,其中所述第一建筑物还包括与所述第一楼层连通的第二楼层,并且所述方法还包括:
获取关于所述第一楼层和所述第二楼层之间的连接的第一信息;
基于所述第一信息来组合所述第一地图和关于所述第二楼层的第四地图,以生成关于所述第一建筑物的第五地图;以及
利用所述第五地图来向所述用户提供所述基于位置的服务。
10.根据权利要求9所述的方法,其中所述第一建筑物与第二建筑物连通,并且所述方法还包括:
获取关于所述第一建筑物和所述第二建筑物之间的连接的第二信息;
基于所述第二信息来组合所述第五地图和关于所述第二建筑物的第六地图;以及
利用经组合的地图来向所述用户提供所述基于位置的服务。
11.一种电子设备,包括:
处理单元;
存储器,所述存储器被耦合到所述处理单元并且存储用于由所述处理单元执行的指令,所述指令当由所述处理单元执行时,使得所述设备执行动作,所述动作包括:
获取关于包括至少一个楼层的第一建筑物中的第一楼层的楼层平面图;
基于所述楼层平面图来生成关于所述第一楼层的第一地图,所述第一地图包括多个顶点和边缘,其中一个顶点对应于所述第一楼层中的相应位置,连接两个顶点的边缘表示所述第一楼层中的物理对象或可通行路径,并且与所述两个顶点相对应的两个位置位于所述物理对象或可通行路径上;以及
至少利用所述第一地图来向用户提供基于位置的服务,
其中生成所述第一地图包括:基于所述楼层平面图来生成关于所述第一楼层的初始地图,所述初始地图包括表示所述第一楼层中的物理对象的轮廓的第一组顶点和边缘;
优化所述初始地图以移除冗余信息并生成关于所述第一楼层的第二地图,所述第二地图包括通过优化所述第一组顶点和边缘而得到的第二组顶点和边缘;以及
基于所述第二地图来生成所述第一地图,
其中基于所述第二地图来生成所述第一地图包括:
通过向所述第二地图应用三角剖分来生成第三地图,所述第三地图包括所述第二组顶点和边缘以及经由所述三角剖分而添加的至少一个边缘;以及
通过基于试探法向所述第三地图添加表示所述第一楼层中的可通行路径上的位置的顶点来生成所述第一地图,其中所述顶点在经由三角剖分而添加的所述至少一个边缘上。
12.根据权利要求11所述的设备,其中至少利用所述第一地图来向用户提供基于位置的服务包括:
获取所述用户在所述第一地图上的起始位置和目的位置;
至少基于所述第一地图来确定从所述起始位置到所述目的位置的路径,所述路径由来自所述多个顶点和边缘的顶点和边缘的序列表示;以及
向所述用户提供所述路径。
13.根据权利要求11所述的设备,其中至少利用所述第一地图来向用户提供基于位置的服务包括:
将所述第一地图与所述第一楼层的环境数据进行绑定;以及
利用被绑定有所述环境数据的所述第一地图来向用户提供基于位置的服务。
14.根据权利要求11所述的设备,其中优化所述初始地图包括:
从所述第一组顶点和边缘中识别特定物理对象,所述特定物理对象由具有特定特征的顶点和边缘的集合表示;以及
从所述顶点和边缘的集合中移除冗余顶点和边缘中的至少一项。
15.根据权利要求14所述的设备,其中所述特定物理对象包括门。
16.根据权利要求11所述的设备,其中优化所述初始地图包括:
从所述初始地图中移除以下至少一项:重叠的边缘、边缘的交叉点以及边缘间的间隙。
17.根据权利要求11所述的设备,其中至少两个边缘经由三角剖分而被添加,
其中通过基于试探法向所述第三地图添加以下项来生成所述第一地图:
表示所述第一楼层中的可通行路径上的位置的相应的顶点,其中所述顶点在经由三角剖分而被添加的所述至少两个边缘上,以及
表示所述第一楼层中的可通行路径的边缘,所述边缘在相应的所述顶点之间。
18.一种计算机存储介质,其上存储有计算机程序产品,所述计算机程序产品包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行动作,所述动作包括:
获取关于包括至少一个楼层的第一建筑物中的第一楼层的楼层平面图;
基于所述楼层平面图来生成关于所述第一楼层的第一地图,所述第一地图包括多个顶点和边缘,其中一个顶点对应于所述第一楼层中的相应位置,连接两个顶点的边缘表示所述第一楼层中的物理对象或可通行路径,并且与所述两个顶点相对应的两个位置位于所述物理对象或可通行路径上;以及
至少利用所述第一地图来向用户提供基于位置的服务,
其中生成所述第一地图包括:基于所述楼层平面图来生成关于所述第一楼层的初始地图,所述初始地图包括表示所述第一楼层中的物理对象的轮廓的第一组顶点和边缘;
优化所述初始地图以移除冗余信息并生成关于所述第一楼层的第二地图,所述第二地图包括通过优化所述第一组顶点和边缘而得到的第二组顶点和边缘;以及
基于所述第二地图来生成所述第一地图,
其中基于所述第二地图来生成所述第一地图包括:
通过向所述第二地图应用三角剖分来生成第三地图,所述第三地图包括所述第二组顶点和边缘以及经由所述三角剖分而添加的至少一个边缘;以及
通过基于试探法向所述第三地图添加表示所述第一楼层中的可通行路径上的位置的顶点来生成所述第一地图,其中所述顶点在经由三角剖分而添加的所述至少一个边缘上。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810714698.1A CN110657804B (zh) | 2018-06-29 | 2018-06-29 | 室内位置服务 |
US17/056,380 US20210190505A1 (en) | 2018-06-29 | 2019-06-18 | Indoor location-based service |
PCT/US2019/037592 WO2020005636A1 (en) | 2018-06-29 | 2019-06-18 | Indoor location-based service |
EP19735083.8A EP3794312B1 (en) | 2018-06-29 | 2019-06-18 | Indoor location-based service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810714698.1A CN110657804B (zh) | 2018-06-29 | 2018-06-29 | 室内位置服务 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110657804A CN110657804A (zh) | 2020-01-07 |
CN110657804B true CN110657804B (zh) | 2023-10-20 |
Family
ID=67138144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810714698.1A Active CN110657804B (zh) | 2018-06-29 | 2018-06-29 | 室内位置服务 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210190505A1 (zh) |
EP (1) | EP3794312B1 (zh) |
CN (1) | CN110657804B (zh) |
WO (1) | WO2020005636A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11960541B2 (en) * | 2019-12-19 | 2024-04-16 | Nippon Telegraph And Telephone Corporation | Name data matching apparatus, and name data matching method and program |
CN111551169B (zh) * | 2020-05-15 | 2021-12-07 | 广州支点创新科技有限责任公司 | 机器人的地图构建及定位方法、机器人 |
CN112015836A (zh) * | 2020-08-19 | 2020-12-01 | 维沃移动通信有限公司 | 导航地图显示方法及装置 |
CN112229411B (zh) * | 2020-10-15 | 2021-12-07 | 广州小鹏自动驾驶科技有限公司 | 一种数据处理的方法和装置 |
CN112767525A (zh) * | 2021-01-28 | 2021-05-07 | 广州赛特智能科技有限公司 | 一种室内地图路径绘制方法 |
CN117889866B (zh) * | 2024-03-18 | 2024-06-11 | 深圳竹芒科技有限公司 | 导航路径规划方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103674017A (zh) * | 2013-12-20 | 2014-03-26 | 广东瑞图万方科技股份有限公司 | 室内电子地图生成系统与室内导航方法及系统 |
CN106996782A (zh) * | 2015-10-28 | 2017-08-01 | Sk 普兰尼特有限公司 | 路线引导服务装置 |
CN107367278A (zh) * | 2017-06-20 | 2017-11-21 | 深圳橙立科技有限公司 | 一种室内导航方法及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417446B2 (en) * | 2008-07-25 | 2013-04-09 | Navteq B.V. | Link-node maps based on open area maps |
US8346474B2 (en) * | 2008-08-28 | 2013-01-01 | Honeywell International Inc. | Method of route retrieval |
US8812015B2 (en) * | 2009-10-01 | 2014-08-19 | Qualcomm Incorporated | Mobile device locating in conjunction with localized environments |
US9173069B2 (en) * | 2012-01-12 | 2015-10-27 | Google Inc. | Navigating using an indoor map representation |
-
2018
- 2018-06-29 CN CN201810714698.1A patent/CN110657804B/zh active Active
-
2019
- 2019-06-18 WO PCT/US2019/037592 patent/WO2020005636A1/en unknown
- 2019-06-18 EP EP19735083.8A patent/EP3794312B1/en active Active
- 2019-06-18 US US17/056,380 patent/US20210190505A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103674017A (zh) * | 2013-12-20 | 2014-03-26 | 广东瑞图万方科技股份有限公司 | 室内电子地图生成系统与室内导航方法及系统 |
CN106996782A (zh) * | 2015-10-28 | 2017-08-01 | Sk 普兰尼特有限公司 | 路线引导服务装置 |
CN107367278A (zh) * | 2017-06-20 | 2017-11-21 | 深圳橙立科技有限公司 | 一种室内导航方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110657804A (zh) | 2020-01-07 |
EP3794312A1 (en) | 2021-03-24 |
EP3794312B1 (en) | 2022-12-28 |
US20210190505A1 (en) | 2021-06-24 |
WO2020005636A1 (en) | 2020-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110657804B (zh) | 室内位置服务 | |
EP3506212B1 (en) | Method and apparatus for generating raster map | |
WO2020223974A1 (zh) | 更新地图的方法及移动机器人 | |
KR102160990B1 (ko) | 객체 기반의 3d 도시 모델링 방법 및 이를 구현하는 서버, 그리고 이를 이용하는 시스템 | |
US8467810B2 (en) | Method and system for reporting errors in a geographic database | |
US9600607B2 (en) | Methods, apparatuses and computer program products for automatic, non-parametric, non-iterative three dimensional geographic modeling | |
CN106980633B (zh) | 室内地图数据的生成方法及装置 | |
CN111542860A (zh) | 用于自主车辆的高清地图的标志和车道创建 | |
KR20200109260A (ko) | 지도 구축 방법, 장치, 기기 및 판독가능 저장 매체 | |
US8600713B2 (en) | Method of online building-model reconstruction using photogrammetric mapping system | |
CN107564077B (zh) | 一种绘制道路网的方法及装置 | |
CN110926478B (zh) | 一种ar导航路线纠偏方法、系统及计算机可读存储介质 | |
CN115100643B (zh) | 融合三维场景语义的单目视觉定位增强方法和设备 | |
JP2024519323A (ja) | 衝突データ処理方法、衝突データ処理装置、コンピュータプログラム、及び電子機器 | |
JP4606898B2 (ja) | 情報生成装置及び検索装置 | |
CN112053440A (zh) | 单体化模型的确定方法及通信装置 | |
JP7351892B2 (ja) | 障害物検出方法、電子機器、路側機器、及びクラウド制御プラットフォーム | |
CN113483771B (zh) | 实景地图的生成方法、装置及系统 | |
CN113610702B (zh) | 一种建图方法、装置、电子设备及存储介质 | |
CN112002007A (zh) | 基于空地影像的模型获取方法及装置、设备、存储介质 | |
JP2022501751A (ja) | 3d幾何抽出のために画像の複数から相補的画像を選択するシステムおよび方法 | |
CN114299192B (zh) | 定位建图的方法、装置、设备和介质 | |
JP2010282657A (ja) | 配信装置及び情報配信システム | |
CN115578432A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN114140813A (zh) | 高精地图标注方法、装置、设备及存储介质 |
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 |