CN113287102A - 提供用于地理服务的弹性应用编程接口 - Google Patents

提供用于地理服务的弹性应用编程接口 Download PDF

Info

Publication number
CN113287102A
CN113287102A CN201980044642.2A CN201980044642A CN113287102A CN 113287102 A CN113287102 A CN 113287102A CN 201980044642 A CN201980044642 A CN 201980044642A CN 113287102 A CN113287102 A CN 113287102A
Authority
CN
China
Prior art keywords
geographic
service
enterprise
api
query
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.)
Pending
Application number
CN201980044642.2A
Other languages
English (en)
Inventor
H.齐蒙泰克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN113287102A publication Critical patent/CN113287102A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Remote Sensing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种用于向企业客户端提供地理数据的可用性的方法。该方法由处理硬件实施,并且包括生成存储经由API调取可用于企业客户端的地理信息的存储,其中企业客户端被配置为(i)从用户设备接收服务请求,以及(ii)调用API来响应于服务请求而提供与地理相关的信息。当企业客户端调用该API来提交查询(304)时,该方法包括:在第一实例中,经由通信网络将查询发送到地理服务(306),并且使用响应于查询从地理服务接收的地理信息来生成对查询的基于网络的响应(312);以及在第二实例中,使用存储在存储中的地理信息来生成对查询的基于存储的响应(322)。

Description

提供用于地理服务的弹性应用编程接口
技术领域
本公开涉及地理服务,并且更具体地,涉及向企业客户端提供弹性应用编程接口(API)。
背景技术
本文提供的背景描述是为了总体呈现本公开的上下文的目的。在该背景技术部分中描述的程度上的目前命名的发明人的工作、以及在提交时可能不以其他方式符合现有技术的描述的各方面,既不明确也不隐含地被认为是针对本公开的现有技术。
如今,诸如个人计算机、平板电脑、移动电话、专用导航器等的众多电子设备提供地理区域的数字地图和用于在地理位置之间导航的逐步方向。数字地图和/或导航方向可以经由诸如制图和导航应用的专用软件应用以及经由诸如web浏览器的通用软件应用来提供。
例如,除了专用的地理应用之外,一些地理服务提供商还公开了用于从各种软件应用或网页访问地理服务的应用编程接口(API)。此外,一些提供商公开了用于由个人应用或设备访问的“常规”API和用于由其他服务访问的企业地理API。例如,企业客户端可以是对多个用户的某个服务的提供商。企业客户端可以接收对服务的请求,并且作为为这些请求提供服务的一部分,需要某些地理信息。企业客户端因此可以调用企业地理API来获得地理信息。企业地理API通常通过通信网络来传送对地理信息的请求。
发明内容
本公开的技术的示例实施例是一种用于向企业客户端提供地理数据的可用性的方法。该方法由处理硬件实施,并且包括生成存储经由API调取(call)可用于企业客户端的地理信息的存储,其中企业客户端被配置为(i)从用户设备接收服务请求,以及(ii)调用(invoke)API来响应于服务请求而提供与地理相关的信息。当企业客户端调用API来提交查询时,该方法包括:在第一实例中,经由通信网络将查询发送到地理服务,并且使用响应于查询从地理服务接收的地理信息来生成对查询的基于网络的响应;以及在第二实例中,使用存储在存储中的地理信息来生成对查询的基于存储的响应。
在各种实施方式中,上述方法包括以下特征中的一个或多个。地理服务在第一实例中被确定为可用,并且地理服务在第二实例中被确定为不可用。在第二实例中:将查询发送到地理服务,并且在确定在自查询被发送到地理服务时开始的预定时间段内没有接收到对查询的响应时,生成基于存储的响应。在第二实例中:使用存储在高速缓存器中的地理信息来生成对查询的基于存储的响应,并且响应于确定基于网络的响应和基于存储的响应相差多于阈值量,更新周期性地报告给地理服务的等待时间统计。向企业客户端提供警报。基于网络的响应和基于存储的响应包括在源和目的地之间行进的时间的相应估计。在第二实例中,提供使用存储来为查询提供服务的指示以及对查询的基于存储的响应。生成存储包括在与企业客户端相关联的一个或多个网络服务器上生成存储。生成存储包括在与企业客户端相关联的一个或多个网络服务器上生成存储。在存储中提供指令集合,该指令集合被配置为实施用于使用存储在存储中的地理信息来生成导航方向的功能。用于生成导航方向的功能使用预先计算的路线段来生成导航路线。在存储中提供指令集合,该指令集合被配置为实施用于执行对指定地理区域的本地搜索的功能。基于企业客户端对API的先前调取,将地理信息添加到存储。对API的先前调取对应于与和地理坐标集合相关联的点相关的查询和基于网络的响应,并且添加地理信息包括将基于网络的响应与包括该点的更大的地理区域相关联。更大的地理区域是S2单元。
这些技术的另一示例是一种包括处理硬件并且被配置为实施上述方法的计算设备。
这些技术的又一示例实施例是一种其上存储指令的非暂时性计算机可读介质,该指令实施由被配置为从用户设备接收服务请求的企业客户端使用的API。当由企业客户端调用并由处理硬件执行时,该API被配置为:在第一实例中,经由通信网络将查询发送到地理服务,并且使用响应于查询从地理服务接收的地理信息来生成对查询的基于网络的响应;并且在第二实例中,使用在由企业客户端控制的存储器中实施的存储中可用的地理信息来生成对查询的基于存储的响应。该API还被配置为在第一实例和第二实例中向企业客户端提供相应生成的响应。
附图说明
图1是其中企业客户端可以调用本公开的企业地理API的示例通信系统的框图;
图2A是其中本公开的企业地理API响应于查询而经由通信网络从地理服务接收地理信息的示例场景的消息传递图;
图2B是其中本公开的企业地理API响应于查询而从实施高速缓存器的存储获得地理信息的示例场景的消息传递图;
图3是在两个单独的实例中本公开的企业地理API可以实施以为来自企业客户端的调取提供服务的示例方法的流程图;并且
图4是用于可以在本公开的企业地理API中实施的质量监视的示例方法的流程图。
具体实施方式
一般来说,本公开的技术向被配置来为来自企业客户端的对地理信息的请求提供服务的企业地理API提供高可靠性,其中企业客户端进而使用所获得的地理信息来为来自用户设备的请求提供服务。企业客户端可以向其用户提供这样的服务(例如,基于位置的游戏),并且可以使用企业地理API来获得导航路线、地图、感兴趣点的商业数据、以及与企业客户端的服务相关的其他类型的地理信息。实施企业地理API的指令可以驻留在由企业客户端控制的网络服务器的存储器中。
当由企业客户端调用时,企业地理API经由通信网络向地理服务发送对地理信息的请求。企业地理API(或另一个合适的软件组件)创建和管理驻留在网络服务器的存储器内并包含地理信息的存储。当企业地理API在某个预定时间量内未能接收到对所发送的请求的响应时,企业地理API基于存储在高速缓存器中的地理信息来生成至少近似的响应。然而,如果响应在预定时间量内从地理服务到达,则企业地理API使用从地理服务接收的地理信息来生成对查询的响应。
此外,在一些实施方式中,企业地理API实施本地导航、本地搜索和/或对存储中的地理信息进行操作的其他功能。这些功能可以对应于地理服务支持的功能的子集。此外,一些实施方式中的企业地理API确定从地理服务接收的响应何时与使用高速缓存器中的地理信息生成的响应相差多于一定量,并且生成适当的通知,以便提供质量监视。
这些技术在下面参考图1-图4更详细地讨论。
示例通信系统100包括企业客户端102,其提供诸如基于位置的游戏、出租车或拼车服务、送货服务、快递服务等的企业服务。企业客户端102可以从诸如客户端设备106的用户(或“客户端”)设备接收对企业的请求。图1仅示出了一个这样的设备来减少混乱,但是通常通信系统100可以包括任何合适数量的客户端设备。客户端设备106可以是例如个人计算机、诸如平板计算机或智能电话的便携式设备、可穿戴计算设备、专用汽车导航器、嵌入车辆头部单元的设备等。企业客户端102和客户端设备106可以经由通信网络108访问在地理服务104的域中操作的一个或多个网络服务器,其中该通信网络108可以是诸如互联网的广域网。
地理服务104的域可以包括任何合适数量的前端服务器、后端服务器、存储设备等。前端服务器110例如耦合到地图数据库120、感兴趣点(POI)数据库122和交通数据库124等。在操作中,前端服务器110处理来自企业客户端102和客户端设备106的查询,通过例如使用数据库120、122和124中的数据执行各种路由功能、搜索功能等来生成响应。所生成的响应可以包括用于显示地理区域的数字地图的地图数据、各种位置的POI数据、用于在地理位置之间导航的导航数据等。
地图数据库120可以存储指定诸如道路、建筑物、湖泊、河流、公园等的地理特征的形状和各种属性的地图数据。地图数据可以符合根据任何合适的原则(例如,在某个缩放级别覆盖相同的面积量的方形地图图块)组织的任何合适的格式,诸如矢量图形、光栅化图像、标签文本等。地图数据还可以包括街道级别的图像和从各种有利位置收集的照片。例如,POI数据库122可以存储由空间坐标和/或街道地址标识的特定位置的信息。作为更具体的示例,POI数据库122可以存储关于位于地理区域内的相应位置处的实体商业的信息:营业时间、产品和服务描述、用户评论等。交通数据库124可以存储由数据库120中的地图描述的各种道路的当前交通状况、事故报告、道路封闭数据等。
在各种实施方式中,地理服务104的域可以包括更少的数据库,或者相反地,可以包括存储其他类型的地理信息的附加数据库。在地理服务104的域中操作的一个或多个网络服务器还可以与其他服务(诸如实时天气信息的提供商、与运输相关的信息(例如,火车、公共汽车、渡船的调度和选路信息)的提供商)进行通信。
为了为来自企业客户端102的请求提供服务,前端服务器110可以实施企业API服务130。当在与企业客户端102相关联的一个或多个服务器上运行的企业应用140调用企业地理API 150来请求某些地理信息时,实施企业地理API 150的指令集合可以生成企业API服务130可以处理的查询并将其发送到地理服务104的域。此外,为了为来自客户端设备106的请求提供服务,前端服务器110可以实施用户API服务132。当客户端设备106调用用户地理API 160来请求某些地理信息时,实施用户地理API 160的指令集合可以生成用户API服务132可以处理的查询并将其发送到地理服务104的域。
取决于实施方式,服务130和132可以不共享、共享一些或者共享全部地理功能。例如,服务130和132中的每一个可以响应于指定源位置和目的地的查询,以类似的方式生成导航路线。另一方面,服务130可以经由用户地理API 160支持不可用于客户端设备的某些功能,诸如确定两个社区之间的平均行进时间。
前端服务器110、客户端设备106以及与企业客户端102相关联的一个或多个网络服务器可以包括处理硬件(诸如一个或多个处理器)以及存储数据和/或可在处理硬件上执行的指令的非暂时性存储器(例如,用以实施永久性和/或非永久性存储组件的硬盘、闪存驱动器)(未示出以避免混乱)。客户端设备106也可以包括具有诸如触摸屏、键盘、麦克风等的输入设备和诸如屏幕、扬声器等的输出设备的任何合适组合的用户接口。
继续参考图1,企业地理API 150可以实施存储152、存储和服务逻辑154、连接监视器156和质量监视器158。
存储152可以被放置在与企业客户端102相关联的一个或多个网络服务器的存储器中。因此,企业客户端102在某些情况下控制其中实施存储152的存储器。此外,企业客户端102在这些情况下可以经由本地网络或者在存储152在与企业地理API 150的指令相同的设备中被实施的情况下经由本地总线以高效和可靠的方式访问存储152。在其他情况下,存储152可以在由第三方(诸如基于云的存储服务)控制的网络服务器中被实施。第三方与企业客户端102和地理服务104分开且独立地操作。根据这种方法,企业地理API 150仍然需要经由通信网络108或另一网络访问存储152。然而,因为存储152独立于地理服务104进行操作,所以地理服务104和支持存储152的第三方同时变得不可用的概率相对较低。这样,可以以可靠的方式将地理数据提供给企业客户端102。
此外,还可以在由地理服务104的提供商控制的域中、但是优选地在充分独立于前端服务器110而操作的一个或多个网络服务器上分配存储152。以这种方式,前端服务器110的临时不可用性不一定阻止企业地理API 150访问存储152,除非该不可用性是由于地理服务104的提供商的整个域不可达。同样,由于这一点,可以以可靠的方式将地理数据提供给企业客户端102。
在任何情况下,存储152可以存储某些地理信息,其中该某些地理信息在一些情况下是在数据库120、122、124等中可用的信息的子集。例如,存储152可以存储仅对应于可能对企业客户端102重要的那些地理特征的地图数据,并且省略其余特征。作为更具体的示例,存储152可以存储某个地理区域的道路信息以便支持导航功能,并且不存储关于博物馆、公园以及一些或所有类别中的其他POI的信息。
在一些实施方式中,存储152存储对经由企业地理API 150提交的先前查询的响应中的一些。存储和服务逻辑154可以概括这些响应,使得例如当企业客户端102调用企业地理API 150来提交对从某个社区到某个目的地或区域(例如,从加利福尼亚州旧金山的教会区到机场)的导航方向的多个请求时,存储和服务逻辑154可以向存储添加从教会区的近似中心到机场的导航路线、和/或教会区和机场之间的平均行进时间。作为更具体的示例,存储和服务逻辑154可以每X分钟(例如,X=10,20,30,60)之后存储源和目的地之间的行进的更新信息。以这种方式,当企业地理API 152由于网络故障或一些其他原因不能检索用于从教会区内的特定位置行进到机场的导航路线时,存储和服务逻辑154可以查询存储152,并使用仅在过去X分钟内生成的类似查询的结果来确定预期行进时间。结果,因为企业地理API 152维护最新数据,所以所检索的导航路线的准确性、以及因此可以基于其的其他信息(例如,预期行进时间、行进成本等)的准确性被提高。
作为另一示例,存储和服务逻辑154可以将对先前查询的响应从特定的地理坐标(例如,纬度和经度)转化为S2单元或某个固定大小的方形区域。因此,例如,存储和服务逻辑154可以将与坐标(Lat1,Long1)相关的地理查询(例如,“查找附近的咖啡店”)转化为单元S1,将与坐标(Lat2,Long2)相关的类似地理查询转化为相同的单元S1,并将与坐标(Lat3,Long3)相关的另一类似地理查询转化为单元S2
作为又一示例,存储和服务逻辑154可以向存储152添加用于在单元S1和S2、单元S1和S3、单元S2和S3等的质心之间行进的预先计算的路线段。存储和服务逻辑154可以通过查询地理服务104来周期性地计算这些段,该地理服务104考虑到当前交通状况、天气状况等而确定S2单元的质心之间的路线段。当企业地理API 150不能到达地理服务104以为从单元Sx中的位置到单元Sy中的位置的导航方向的请求提供服务时,存储和服务逻辑154可以访问存储152,检索相关的预先计算的路线段,并使用单元Sx和Sx+1、单元Sx+1和Sx+2、…Sx+N和Sy的相应质心之间的段来拼接导航路线。
存储和服务逻辑154也可以以完整或简化(“轻量”)的形式支持地理服务104的其他地理功能。例如,存储和服务逻辑154可以对某些地理数据(例如,对频繁的过去地理查询的响应,诸如伊利诺伊州芝加哥艺术学院的办公时间)编索引,以提供部分的本地搜索功能。
仍然参考图1,连接监视器156可以确定当为对企业地理API 150的调取提供服务时,存储和服务逻辑154是否应该依赖于存储152。为此,连接监视器156可以在存储和服务逻辑154经由网络108向地理服务104发送查询之后激活计时器,并且确定响应是否在计时器期满之前到达。附加地或替代地,连接监视器156可以确定对查询的平均响应时间,以识别与服务的延迟或中断相关的趋势。
连接监视器156在一些实施方式中被配置为提供周期性指示,基于该周期性指示,地理服务104可以确定企业客户端102和地理服务104之间的网络连接是健全的。周期性指示可以包括企业客户端102的等待时间统计,或者在一些实施方式中,传达除了企业客户端102的身份之外的信息。附加地或替代地,地理服务104可以周期性地探索(ping)企业客户端102,使得当企业客户端102在某个时间段内没有响应时,地理服务104可以识别网络连接的中断。
在一些实施方式中,质量监视器158可以确定从地理服务104接收的对地理查询的结果是否不同于企业地理API 150使用存储152响应于相同或类似的地理查询而生成的结果。例如,企业客户端102可以调用企业地理API 150来获得从加利福尼亚州旧金山的某个位置驾驶到加利福尼亚州山景城的时间估计。在地理服务104的域中操作的前端服务器110可以处理查询并以55分钟的估计响应企业客户端102。企业地理API 150也可以使用在存储152中可用的地理信息来生成行程的时间估计。取决于实施方式,该估计可以基于企业地理API 150在过去X分钟内处理的对一定数量的类似查询,或者基于企业地理API 150通常在相同时间处理的对类似的天气状况等的类似查询。响应于获得75分钟的估计,企业地理API150可以确定基于网络的响应和基于存储的响应相差多于某个阈值量(例如,15%),并因此更新等待时间统计。企业地理API 150在一些实施方式中以某些间隔(例如,一小时一次、一天一次)向地理服务104提供这样的统计。企业地理API 150也可以向地理服务104、企业客户端102或两者提供适当的警报消息。
在示例实施方式中,企业客户端102向操作与客户端设备106类似的客户端设备的用户提供出租车服务。这些设备可以执行企业应用162,经由该企业应用162,用户可以向企业客户端102提交服务请求。请求例如可以指定用户的当前位置、用户的目的地、以及对可用的附近汽车的查询和从当前位置行进到目的地的成本估计。作为处理该请求的一部分,企业客户端102可以调用企业地理API 150来获得从客户端106的当前位置行进到目的地的时间估计(使得企业客户端102可以基于时间估计来确定成本估计)。在一些情况下,企业地理API 150成功查询地理服务104。在其他情况下,企业地理API 150不能在某个预定时间段内接收到对查询的响应,并且使用存储152中的地理信息来生成估计。在任一情况下,企业地理API 150在某个时间量内向客户端设备106提供成本估计,使得无论企业地理API 150是否能够到达地理服务104,客户端设备106都不会经历服务中断。此外,例如,客户端设备106可以经由用户地理API 160访问地理服务104,以显示当前位置或目的地处的数字地图。客户端设备106可以独立于企业应用162来利用用户地理API 160。
参考图2A和图2B来考虑其中企业地理API 150可以为地理信息的请求提供服务的示例场景。
在场景200的开始,客户端设备106提交202对由企业客户端102提供的服务的请求。企业客户端102确定需要某些地理信息来为来自客户端设备106的请求提供服务,并因此经由对企业地理API 150的调取来请求210地理信息。
API逻辑154然后向地理服务104请求220A地理信息。API逻辑154启动228计时器,以将企业地理API 150等待来自地理服务104的响应的时间段限制到某个预定量。此外,在该示例实施方式中,API逻辑154向存储152请求222缓存的信息。在另一实施方式中,在企业地理API 150从地理服务104接收到对查询的响应之后,API逻辑154请求222缓存的信息。在又一实施方式中,仅当企业地理API 150在由计时器限制的某个时间段内没有从地理服务104接收到对查询的响应时,API逻辑154才请求222缓存的信息。在任一情况下,存储152都向API逻辑154提供224缓存的信息。
在场景200中,在计时器期满之前,地理服务104响应226来自企业地理API 150的查询。地理服务104提供所请求的地理信息,并且API逻辑154停止计时器。API逻辑154然后格式化并提供230响应到企业客户端102。在一些情况下,企业客户端102向客户端设备106提供240该地理信息、或基于该地理信息而生成的消息。
在一些情况下,API逻辑154使质量监视器158(为简单起见,从图2A中省略)比较250在事件224和226期间接收的结果。当结果相差多于阈值量时,API逻辑154可以更新等待时间统计,以用于随后向地理服务104报告252。在一些实施方式中,API逻辑154也向企业客户端102提供警报消息。
图2B的场景270类似地从事件202和204开始。同样类似于图2A的场景,API逻辑154向存储152请求222缓存的信息,并且存储152向API逻辑154提供224缓存的信息。此外,API逻辑154启动228计时器,以限制企业地理API 150等待来自地理服务104的响应的时间量。
然而,在该场景中,API逻辑154未成功地向地理服务104请求220B地理信息。例如,API逻辑154发送220B的请求可能由于网络连接问题而没有到达前端服务器110,或者前端服务器110可能正在经历重启过程。在任一情况下,在由API逻辑154响应于发送220B请求而启动228的计时器控制的时间段期间,企业地理API 150没有接收到来自地理服务104的响应。在计时器期满时,API逻辑154确定它应该将从存储152检索的地理信息返回232给企业客户端102。类似于图2A的场景,企业客户端102在一些情况下可以向客户端设备106提供240该地理信息、或基于该地理信息而生成的消息。
参考图2A和图2B,企业地理API 150可以向企业客户端102提供响应是对应于来自地理服务104的基于网络的响应还是对应于使用存储152中的地理信息生成的基于存储的响应的指示。在一些实施方式中,指示可以是显式的,诸如连同对应的地理指示一起的响应于对企业地理API 150的调取而返回的标志,其一个值指示基于网络的响应,并且另一个值指示基于存储的响应。在其他实施方式中,更典型和期望的基于网络的响应的指示是隐式的,而响应是基于存储的指示是显式的。
为了更清楚起见,图3和图4示出了企业地理API 150可以实施的示例方法300和400。方法300和400中的每一个可以被实施为存储在非暂时性计算机可读介质上并由诸如一个或多个处理器的处理硬件执行的指令集合。
首先参考图3,方法300开始于块302,其中企业地理API 150经由对企业地理API150(例如,图1-图2B的存储152)的调取在企业客户端102可访问的域中生成用于地理数据的存储。在一些实施方式中,除了企业地理API 150之外的软件实体分配存储。例如,企业客户端102可以调用被专门配置为创建用于企业客户端的存储的单独的高速缓存器创建API。缓存器创建API在一些实施方式中可以允许企业客户端102控制存储的大小、要被缓存的内容的类型、可用的功能的类型等。
在块304,用对地理信息的请求(参见图2A和图2B的事件210)来调用企业地理API150。在各种场景中,请求可以指定企业客户端102针对其请求数字地图的区域的地理坐标;企业客户端102请求在其之间的时间估计、距离估计或完整的方向集合的用于行进的开始位置和目的地;点或区域的地理坐标或另一参照以及要结合该点或区域执行的查询(例如,“加油站”、“食物”);等等。
接下来,在块306,企业地理API 150基于在块304接收的信息来格式化查询并将其发送到地理服务104(分别参见图2A和图2B的事件220A和220B)。如上所讨论的,企业地理API 150也可以在与发送查询大约相同的时间启动计时器,以便限制企业地理API 150等待响应的时间段(参见图2A和图2B中的事件228)。因为实施企业地理API 150的指令在企业客户端102的处理硬件上执行,所以企业地理API 150经由通信网络108或另一合适的通信网络发送查询。
可选地,企业地理API 150可以在与在块306将查询发送到地理服务大约相同的时间查询存储152以请求缓存的地理信息(参见图2A和图2B的事件222)。然而,在图3的示例实施方式中,在块322,企业地理API 150仅在没有接收到来自地理服务的响应之后才请求缓存的地理信息。
继续参考图3,在计时器期满之前,在第一实例中企业地理API 150在块310接收来自地理服务的响应(参见图2A中的事件226)。企业地理API 150然后在块312生成对API调取的响应。为此,企业地理API 150使用从地理服务接收的地理信息。
然而,在第二实例中,企业地理API 150在由计时器控制的分配时段内没有接收到来自地理服务的响应。具体地,企业地理API 150可以在块320检测计时器期满(参见图2B中的事件228)。流程然后前进到块322,其中企业地理API 150使用从存储检索的地理信息来生成对API调取的响应(参见图2B中的事件232)。
现在参考图4,用于质量监视的方法400开始于块402,其中企业地理API 150从地理服务104接收地理信息(参见图2A中的事件226)。在块404,企业地理API 150也使用存储来生成“基线”地理信息(参见图2A中的事件224)。企业地理API 150可以在接收来自地理服务的响应之前、在接收到来自地理服务的响应之前或者在与来自地理服务的响应大约相同的时间生成该基线地理信息。
接下来,在块406,企业地理API 150确定在块402和404获得的地理信息之间的差是否超过某个阈值量(参见图2A的事件250)。为此,企业地理API 150可以例如测量行进时间或行进距离的估计相差的程度(例如,22分钟对30分钟)。响应于确定该差超过阈值量,企业地理API 150在块408更新等待时间统计和/或为企业客户端102生成警报(参见图2A的事件252)。否则,方法400在块406之后完成。
附加考虑
以下附加考虑适用于前述讨论。贯穿本说明书,多个实例可以实施被描述为单个实例的组件、操作或结构。尽管一个或多个方法的相应操作被示出和描述为单独的操作,但是相应操作中的一个或多个可以同时执行,并且不需要以示出的顺序执行操作。在示例配置中被呈现为分离组件的结构和功能可以被实施为组合的结构或组件。类似地,被呈现为单个组件的结构和功能可以被实施为分离的组件。这些和其他变化、修改、添加和改进落入本公开的主题的范围内。
另外,本文中将某些实施例描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,存储在机器可读介质上的代码)或硬件模块。硬件模块是能够执行某些操作的有形单元,并且可以以某种方式被配置或布置。在示例实施例中,一个或多个计算机系统(例如,单机(standalone)、客户端或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用或应用部分)配置为硬件模块,其进行操作以执行本文描述的某些操作。
在各种实施例中,硬件模块可以被机械地或电子地实施。例如,硬件模块可以包括永久配置的专用电路或逻辑(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)),以执行某些操作。硬件模块也可以包括可编程逻辑或电路(例如,如包含在通用处理器或其他可编程处理器内),其由软件临时配置为执行某些操作。将理解,在专用和永久配置的电路中、或者在临时配置的电路中(例如,由软件配置)机械地实施硬件模块的决定可能受到成本和时间考虑的驱动。
因此,术语硬件应该被理解为包含有形实体,即被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)为以某种方式操作或执行本文描述的某些操作的实体。如本文使用的“硬件实施的模块”是指硬件模块。考虑到硬件模块被临时配置(例如,编程)的实施例,硬件模块中的每一个不需要在任何一个时刻被配置或实例化。例如,在硬件模块包括使用软件配置的通用处理器的情况下,通用处理器可以在不同时间被配置为相应的不同硬件模块。软件可以因此配置处理器,例如,在一个时刻构成特定的硬件模块,并且在不同的时刻构成不同的硬件模块。
硬件模块可以向其他硬件提供信息,并从其他硬件接收信息。因此,所描述的硬件模块可以被认为是通信耦合的。在多个这样的硬件模块同时存在的情况下,通信可以通过连接硬件模块的信号传输(例如,通过适当的电路和总线)实现。在多个硬件模块在不同时间被配置或实例化的实施例中,这样的硬件模块之间的通信可以例如通过在多个硬件模块可以访问的存储器结构中存储和检索信息来实现。例如,一个硬件模块可以执行操作,并将该操作的输出存储在与其通信耦合的存储器设备中。另一个硬件模块然后可以在稍后的时间访问存储设备,以检索和处理存储的输出。硬件模块也可以发起与输入或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。
方法300和400可以包括以有形计算机可执行指令的形式的一个或多个功能块、模块、单独函数或例程,有形计算机可执行指令被存储在非暂时性计算机可读存储介质中并使用计算设备(例如,服务器设备、个人计算机、智能电话、平板计算机、智能手表、移动计算设备或其他客户端计算设备,如本文所述)的处理器来执行。方法300和400可以被包括作为任何后端服务器(例如,增强现实服务器、漫游服务器、地图数据服务器、导航服务器或任何其他类型的服务器计算设备,如本文所述)、示例环境的客户端计算设备模块的一部分,或者作为这样的环境外部的模块的一部分。尽管为了便于解释,可以参考其他附图来描述附图,但是方法300和400可以与其他对象和用户界面一起使用。此外,尽管上面的解释描述了由特定设备(诸如增强现实服务器110、驾驶员客户端设备10或骑手客户端设备28)执行的方法800和900的步骤,但是这仅仅是为了说明的目的。方法300和400的块可以由一个或多个设备或环境的其他部分执行。
本文描述的示例方法的各种操作可以至少部分地由被临时配置(例如,由软件)或永久配置为执行相关操作的一个或多个处理器执行。无论是临时配置的还是永久配置的,这样的处理器可以构成处理器实施的模块,其进行操作以执行一个或多个操作或功能。本文提到的模块在一些示例实施例中可以包括处理器实施的模块。
类似地,本文描述的方法或例程可以是至少部分地由处理器实施的。例如,方法的至少一些操作可以由一个或多个处理器或处理器实施的硬件模块执行。某些操作的执行可以分布在不仅驻留在单个机器内而且跨多个机器部署的一个或多个处理器当中。在一些示例实施例中,一个或多个处理器可以位于单个位置(例如,在家庭环境内、办公室环境内或作为服务器群),而在其他实施例中,处理器可以跨多个位置或设备而分布。
一个或多个处理器还可以进行操作以支持“云计算”环境中或作为SaaS的相关操作的执行。例如,如上所指示的,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可经由网络(例如,互联网)并且经由一个或多个适当的接口(例如,API)访问。

Claims (16)

1.一种用于向企业客户端提供地理数据的可用性的方法,所述方法包括:
由处理硬件生成存储经由应用编程接口(API)调取可用于企业客户端的地理信息的存储,所述企业客户端被配置为(i)从多个用户设备接收服务请求,以及(ii)响应于所述服务请求,调用所述API来提供与地理相关的信息;以及
当所述企业客户端调用所述API来提交查询时:
在第一实例中,经由通信网络将所述查询发送到地理服务,并且使用响应于所述查询从所述地理服务接收的地理信息来生成对所述查询的基于网络的响应,和
在第二实例中,使用存储在所述存储中的地理信息来生成对所述查询的基于存储的响应。
2.根据权利要求1所述的方法,其中:
所述地理服务在所述第一实例中被确定为可用,并且
所述地理服务在所述第二实例中被确定为不可用。
3.根据权利要求1或2所述的方法,还包括,在所述第二实例中:
由所述处理硬件将所述查询发送到所述地理服务;以及
在确定在自所述查询被发送到所述地理服务时开始的预定时间段内没有接收到对所述查询的响应时,生成所述基于存储的响应。
4.根据前述权利要求中任一项所述的方法,还包括,在所述第二实例中:
使用存储在所述存储中的地理信息来生成对所述查询的基于存储的响应;以及
响应于由所述处理硬件确定所述基于网络的响应和所述基于存储的响应相差多于阈值量,更新周期性地报告给所述地理服务的等待时间统计。
5.根据权利要求4所述的方法,还包括向所述企业客户端提供警报。
6.根据前述权利要求中任一项所述的方法,其中,所述基于网络的响应和所述基于存储的响应包括在源和目的地之间行进的时间的相应估计。
7.根据前述权利要求中任一项所述的方法,还包括,在所述第二实例中:
由所述处理硬件提供使用所述存储来为所述查询提供服务的指示以及对所述查询的基于存储的响应。
8.根据前述权利要求中任一项所述的方法,其中,生成所述存储包括在与所述企业客户端相关联的一个或多个网络服务器上生成所述存储。
9.根据前述权利要求中任一项所述的方法,其中,生成所述存储包括在独立于所述企业客户端和所述地理服务操作的一个或多个网络服务器上生成所述存储。
10.根据前述权利要求中任一项所述的方法,还包括:
在所述存储中提供指令集合,所述指令集合被配置为实施用于使用存储在所述存储中的地理信息来生成导航方向的功能。
11.根据权利要求10所述的方法,其中,所述用于生成所述导航方向的功能使用预先计算的路线段来生成导航路线。
12.根据前述权利要求中任一项所述的方法,还包括:
在所述存储中提供指令集合,所述指令集合被配置为实施用于执行对指定地理区域的本地搜索的功能。
13.根据前述权利要求中任一项所述的方法,还包括:
基于所述企业客户端对所述API的先前调取,将地理信息添加到所述存储中。
14.根据权利要求13所述的方法,其中:
对所述API的先前调取对应于与和地理坐标集合相关联的点相关的查询和基于网络的响应,
添加所述地理信息包括将所述基于网络的响应与包括所述点的更大的地理区域相关联。
15.根据权利要求14所述的方法,其中,所述更大的地理区域是S2单元。
16.一种计算设备,包括处理硬件并且被配置为实施根据权利要求1-15中任一项所述的方法。
CN201980044642.2A 2019-12-20 2019-12-20 提供用于地理服务的弹性应用编程接口 Pending CN113287102A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/067924 WO2021126251A1 (en) 2019-12-20 2019-12-20 Providing a resilient application programming interface for geographic services

Publications (1)

Publication Number Publication Date
CN113287102A true CN113287102A (zh) 2021-08-20

Family

ID=69411506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980044642.2A Pending CN113287102A (zh) 2019-12-20 2019-12-20 提供用于地理服务的弹性应用编程接口

Country Status (4)

Country Link
US (1) US20220318279A1 (zh)
EP (1) EP3861461A1 (zh)
CN (1) CN113287102A (zh)
WO (1) WO2021126251A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11915064B2 (en) * 2022-01-19 2024-02-27 Vmware, Inc. Highly concurrent and responsive application programming interface (API) in eventual consistency environment

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060190285A1 (en) * 2004-11-04 2006-08-24 Harris Trevor M Method and apparatus for storage and distribution of real estate related data
US10002156B2 (en) * 2015-03-16 2018-06-19 Here Global B.V. Version management for incrementally compiled map data
US10659403B2 (en) * 2015-03-25 2020-05-19 Pypestream, Inc. Systems and methods for navigating nodes in channel based chatbots using natural language understanding
US10523524B2 (en) * 2016-09-13 2019-12-31 Gogo Llc Usage-based bandwidth optimization
US11068513B2 (en) * 2016-11-04 2021-07-20 Intergraph Corporation Feature management for web map tile services
US20190005055A1 (en) * 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Offline geographic searches
WO2019118801A1 (en) * 2017-12-15 2019-06-20 Google Llc Multi-modal directions with a ride service segment in a navigation application
US11321579B2 (en) * 2018-07-30 2022-05-03 Uber Technologies, Inc. Multiple source place matching system

Also Published As

Publication number Publication date
EP3861461A1 (en) 2021-08-11
US20220318279A1 (en) 2022-10-06
WO2021126251A1 (en) 2021-06-24

Similar Documents

Publication Publication Date Title
JP6756561B2 (ja) モバイル装置生成事象分析に基づく地図タイルデータのプリフェッチ
US8954860B1 (en) Method and apparatus for generating and displaying tourist maps
US8972187B1 (en) Varying the degree of precision in navigation data analysis
EP2788948B1 (en) Method and apparatus for pre-fetching place page data for subsequent display on a mobile computing device
US20150370828A1 (en) Tile-Based Distribution of Searchable Geospatial Data to Client Devices
US10630628B2 (en) Systems and methods for managing vehicles
US9171293B2 (en) Location based system with location-enabled messaging and method of operation thereof
US8943126B1 (en) Rate limiter for push notifications in a location-aware service
US10198704B2 (en) Methods for dynamically identifying loads for a trucker
US20230409611A1 (en) Improving Offline Map Data Availability
US20210231456A1 (en) Objective generation of a point of interest score based on quantities of user stops
US20150007043A1 (en) Secure private data models for customized map content
CN113287102A (zh) 提供用于地理服务的弹性应用编程接口
CN110799969A (zh) 语义矢量片
CN112097785B (zh) 车载智能设备数据的处理方法、装置及电子设备
US20150130817A1 (en) Generating a sidebar from vector tiles
CN109657019B (zh) 地图数据融合方法、服务器、系统、存储介质及电子设备
Setiawan et al. Shortest path problem for public transportation using gps and map service
EP3915280A1 (en) Intelligent geofence provisioning
US20220108609A1 (en) Geohash-based traffic management
JP2018036957A (ja) 車載通信装置、配車システムおよび車載通信方法
TWI471830B (zh) 交通資訊提供系統及方法
US10129702B1 (en) Methods and systems for determining semantic location information
JP2024061495A (ja) 方法及び情報処理装置
JP2023073848A (ja) 出荷後の製品の管理を支援するシステム及び方法

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