CN107229461B - 将导航服务整合为软件应用的一部分的方法以及计算设备 - Google Patents

将导航服务整合为软件应用的一部分的方法以及计算设备 Download PDF

Info

Publication number
CN107229461B
CN107229461B CN201611158888.7A CN201611158888A CN107229461B CN 107229461 B CN107229461 B CN 107229461B CN 201611158888 A CN201611158888 A CN 201611158888A CN 107229461 B CN107229461 B CN 107229461B
Authority
CN
China
Prior art keywords
navigation
instructions
parameters
interface
software application
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
Application number
CN201611158888.7A
Other languages
English (en)
Other versions
CN107229461A (zh
Inventor
本杰明·格林伍德
约瑟芬·劳伦斯·思卡尔
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 CN107229461A publication Critical patent/CN107229461A/zh
Application granted granted Critical
Publication of CN107229461B publication Critical patent/CN107229461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • G01C21/3676Overview of the route on the road map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Navigation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

提供了一种能够被用于在软件应用中嵌入导航服务的导航应用编程接口。在一个实施例中,应用编程接口包括指定一个或多个第一参数以控制软件应用对导航服务的实现的第一指令集。导航服务向软件应用的用户提供导航信息。应用编程接口进一步包括指定一个或多个第二参数以控制经由应用编程接口与路由引擎的交互以获得导航信息的第二指令集。第一指令集指定一个或多个可配置的事件侦听器接口。可配置事件侦听器接口能够可操作为获得与一个或多个导航事件相关联的数据,以更新作为导航服务的一部分提供的导航信息。

Description

将导航服务整合为软件应用的一部分的方法以及计算设备
技术领域
本公开一般涉及用于提供导航信息的应用编程接口。
背景技术
出于多种目的——包括商业、社交、健康、和其它目的,已经开发了在诸如移动计算设备(例如智能电话、平板计算机、智能手表等) 的计算设备上实现的应用。这些应用能够提供用于向用户呈现信息以及允许用户与应用交互的用户界面(例如图形用户界面)。用于移动计算设备的流行应用包括使用户可获得各种地理信息(例如在地图上呈现的当前位置信息)的地图应用。
在一些情况下,可能期望主要不意图用于绘制或导航的应用包含导航或地图信息——例如可能期望使健康或健身应用提供导航或地图信息以允许用户找到路线前往课程、完成一定距离的跑步等。原则上,健康或健身应用能够被编写为包含定制的导航或地图界面,但是这将需要增加的编程资源来创建应用。
发明内容
本公开的实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中获知,或者可以通过对实施例的时间来学习。
本公开的一个示例方面涉及计算机可读介质,其可以是非暂时性计算机可读介质,但是本发明不限于此,该计算机可读介质存储指令,其实现用于将导航服务提供为在计算设备上执行的软件应用的一部分的应用编程接口。该计算设备能够具有一个或多个处理器和显示设备。该应用编程接口能够包括指定一个或多个第一参数以控制软件应用实现导航服务的第一指令集。导航服务能够向软件应用的用户提供导航信息。应用编程接口能够进一步包括第二指令集,其指定一个或多个第二参数以控制经由应用编程接口与路由引擎的交互。第一指令集能够指定一个或多个可配置事件侦听器接口。该可配置事件侦听器接口能够可操作为获得与一个或多个导航事件相关联的数据,以更新作为导航服务的一部分提供的导航信息。
本公开的另一示例方面涉及一种用于在具有一个或多个处理器的计算设备上将导航服务整合为软件应用的一部分的方法。该方法包括访问与导航应用编程接口相关联的数据;将与导航编程接口相关联的数据包含到软件应用中;以及使用与导航应用编程接口相关联的第一指令集构造与导航服务相关联的图形用户界面组件。第一指令集能够指定一个或多个参数,以控制结合软件应用的、与导航服务相关联的图形用户界面组件在显示设备上的显示。该方法还能够包括使用与导航应用编程接口相关联的第二指令集来配置导航服务。第二指令集能够指定一个或多个参数以控制软件应用对导航服务的实现。该第二指令集能够包括一个或多个可配置事件侦听器接口。该可配置事件侦听器接口能够可操作为获得与一个或多个导航事件相关联的数据,以更新作为导航服务的一部分提供的导航信息。该方法能够包括:获得访问密钥以用于启用导航应用编程接口的操作的访问密钥;以及将该访问密钥添加到软件应用。附加地或替选地,该方法可以包括使用与导航应用编程接口相关联的初始化和错误处理指令集来初始化导航应用编程接口。附加地或替选地,一个或多个可配置事件侦听器接口可以包括位置侦听器接口,其可操作为被调用以更新导航服务中的用户的当前位置。附加地或替选地,一个或多个事件侦听器接口可以包括剩余时间或剩余距离改变侦听器接口,其可操作为在到路点的剩余时间或剩余距离改变超过阈值时被调用。附加地或替选地,使用第二指令集来配置导航服务可以包括:将阈值设置为第二指令集中的参数。
另一示例方面涉及一种计算设备,包括:显示设备;网络接口;一个或多个处理器;以及一个或多个存储器设备,其中所述一个或多个存储器设备存储计算机可读指令,所述计算机可读指令在被执行时使得一个或多个处理器执行上述示例方面的方法。
应用编程接口能够允许在计算设备上实现的应用与各种服务交互以向用户提供信息和功能。应用编程接口能够为开发者提供工具以将信息、编程、框架、和结构嵌入到由用户访问的应用中。例如,地图服务提供者能够提供地图应用编程接口,其能够由第三方用来将数字地图嵌入到由第三方开发的应用的用户界面中。这避免了第三方的开发者创建他们自己的地图应用的需要。
本公开的其它示例方面涉及系统、装置、计算机可读介质,其能够是有形的、非暂时性计算机可读介质、用户接口、存储器设备、以及与用于提供导航信息的应用编程接口相关联的电子设备。
参照以下描述和所附权利要求书,各个实施例的这些和其它特征、方面和优点将被更好地理解。被包含在本说明书中并构成其一部分的附图图示了本公开的实施例,并连同说明书一起用作解释相关原理。
附图说明
在参照附图的说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中:
图1描绘了根据本公开的示例实施例的、用于使用应用编程接口来实现作为软件应用的一部分的导航服务的示例系统的概览;
图2-图3描绘了根据本公开的示例实施例的、与被实现为软件应用的一部分的导航服务相关联的示例图形用户界面组件;
图4描绘了根据本公开的示例实施例的实现软件应用的示例用户设备的框图;
图5描绘了根据本公开的示例实施例的示例导航应用编程接口的框图;
图6描绘了根据本公开的示例方面的、与导航应用编程接口相关联的示例导航器指令的框图;
图7描绘了根据本公开的示例实施例的示例方法的流程图;
图8描绘了根据本公开的示例实施例的示例导航应用编程接口的框图;以及
图9描绘了根据本公开的示例方面的与导航API相关联的示例导航器指令的框图。
具体实施方式
现在将详细参照实施例,其中的一个或多个示例在附图中图示。每个示例通过对实施例的解释而不是对本公开的限制的方式来提供。事实上,对于本领域技术人员显而易见的是,在不脱离本公开的范围或精神的情况下,能够作出对实施例的各种修改和变化。例如,作为一个实施例的一部分所图示或描述的特征能够与另一个实施例一起使用以产生另一个实施例。因此,意图是本公开的方面覆盖这样的修改和变化。
本公开的示例方面涉及用于在一个或多个计算设备——诸如在浏览器中实现的基于web的软件应用——上实现的第三方软件应用中提供导航信息的应用编程接口(“API”)、本地存储的软件应用、以及其它应用。在一些实施例中,API能够允许应用开发者在其软件应用中嵌入由导航数据提供者或其它源提供的导航应用。API能够允许开发者容易地定制和改订(tailor)导航应用以适应不同的平台和最终用例。
更具体地,API在被在计算设备上实现的软件应用调取(invoke) 时,能够被配置为经由通信接口(例如通过诸如互联网的网络)从数据提供者请求和接收路由信息。API能够被配置为基于该路由信息来呈现导航信息(例如,通过图形用户界面组件或通过音频和/或振动提示) 以提供嵌入在软件应用中的导航服务。导航服务能够是应用(例如软件应用),其提供能够被用于引导用户从起点到目的地的导航信息。在一些实施例中,嵌入在软件应用中的导航服务能够在用户沿着导航路线或其它路径行进时向用户提供导航信息(例如路线规划 (tum-by-tum)导航信息)。更具体地,在一些实施例中,导航服务能够接收指引用户从当前位置到目的地的路线。作为一个示例,路线能够包括一系列步骤,每个步骤描述路线部分(例如,道路的名称或号码、距离、行进时间、速度限制)和操纵(maneuver)(例如左转、右并线、直行)以到达下一个路线部分。导航服务能够通过图形用户界面并且经由一个或多个提示(例如音频或视频提示)向用户提供路线以引导该用户从原点到目的地。
在一些实施例中,软件应用能够经由API与由导航数据提供者或其它源(例如本地导航信息源)实现的路由引擎交互,以获得路由信息和其它导航信息。导航数据提供者能够与相对于软件应用的开发者分离的实体相关联。例如,导航数据提供者能够与托管地理信息系统的web服务器相关联。导航信息能够包括到一个或多个路点的路线。导航信息能够进一步包括用于结合路线和其它信息来呈现的地图数据。随着用户穿过导航路线,导航信息能够被连续地更新(例如,通过被实现为API的一部分的一个或多个事件侦听器接口)以向用户提供实时或近实时的导航信息。
API在由软件应用来实现时,能够在结合该软件应用显示的图形用户界面组件中可视地呈现与导航服务相关联的导航信息。例如,图形用户界面组件能够显示地图。例如,地图的默认显示能够是地图的鸟瞰视图(top-down view)。在导航模式期间,图形用户界面组件能够将路线以折线(polyline)显示在地图上。随着用户导航路线,能够沿着路线更新用户的位置。例如,导航服务能够提供图形用户界面,其中随着用户的位置沿着导航路线改变,该用户位置沿着导航路线被连续地更新。能够通过位于地图中的记号来识别各个路点。能够在图形用户界面组件中呈现其它信息,诸如到达路点的估计的时间或距离 (“ETD信息”)、罗盘界面元素、导航航向(navigation heading)元素等。在一些实施例中,能够在具有或不具有图形用户界面组件中的导航信息的视觉显示的情况下使用音频引导来提供导航信息。
根据本公开的特定方面,API能够包括计算机可读指令集,其在由一个或多个处理器执行时促进将导航应用整合到开发者的软件应用中。所述指令集在由一个或多个处理器实现时,能够管控(govern)软件应用经由API与导航数据提供者的交互以及将导航信息作为软件应用的一部分向用户的显示和/或递送。
更具体地,与面向软件应用的开发者的API相关联的示例指令能够包括指定一个或多个参数的指令集,其管控导航服务的视觉输出的显示。API能够进一步包括控制导航服务的实现的指定一个或多个参数的指令集以及管控API与由导航数据提供者提供的路由引擎的交互的指令集。
根据本公开的特定方面,API能够包括一个或多个可配置的事件侦听器接口,其在被调用(call)时允许软件应用调取API以(例如通过网络从导航数据提供者)获得指示各个导航事件的数据。例如,导航事件能够是更新的用户位置、改变的路线、对ETD信息的更新、到达路点等。可配置的事件侦听器接口能够被用于随用户沿着路线行进而以软件应用开发者期望的方式连续地更新导航信息。例如,一个示例事件侦听器接口能够被用于沿着导航路线更新用户的当前位置。另一个示例事件侦听器接口能够被用于将ETD信息更新为一个或多个路点。另一个示例事件侦听器接口能够被用于在用户已到达特定的路点时发出信号。另一示例事件侦听器接口能够在用户从路由引擎所确定的路线偏离并且到由路由引擎确定的路点的路径改变时被使用。
在一些实施方式中,API能够被配置为容纳多个路点的导航。指示多个路点的数据能够经由API来被接收,例如以对路点排序的列表形式来接收。路由引擎能够确定到所述多个路点的多路点路线。多路点路线能够包括多个路线段。每个路线段能够是多路点路线中的路点之间或多路点路线中的起始位置和路点之间的路线。
API能够包括一个或多个事件侦听器接口以容纳基于多路点路线来提供导航信息。例如,一个或多个事件侦听器接口能够被配置为在到达每个路点时、在到下一个路点的ETD信息改变时、或者在多路点路线的任何部分改变时提供通知。此外,一个或多个事件侦听器接口能够被配置为:独立于到多路点路线中的下一个路点的路线而提供对沿着多路点路线的每个路点的ETD信息的访问、对每个路点的地理坐标(例如纬度和经度)的访问、对与沿着多路点路线的每个路点之间的路线段(例如导航折线)的访问、和/或对用户沿着多路点路线去过何处的访问。
以这种方式,根据本公开的示例实施例的API能够具有以下技术效果:在各个软件应用中促进导航数据提供者所提供的导航服务的整合。作为API的一部分来实现的一个或多个可配置事件侦听器接口能够被用于随用户沿着导航路线行进而以开发者期望的方式连续地更新导航信息。API能够允许针对各种最终使用需求的对导航服务的定制,诸如用于乘车共享(ride sharing)应用、装运/递送应用、社交应用、以及其它最终使用应用。
图1描绘了根据本公开的示例实施例的、用于使用导航API来将导航服务实现为软件应用的一部分的示例系统100的概览。系统100 能够包括用户设备112,其能够经由通信网络116从导航数据提供者 114接收导航数据。例如,用户设备112能够是智能电话、平板计算机、可穿戴设备、膝上型计算机、台式计算机、移动设备、能够在操作时由用户携带的设备、具有一个或多个处理器的显示器、车辆系统、或者其它用户设备112。
软件应用120能够在用户设备112上实现。例如,软件应用能够是地图应用、浏览器、乘车共享应用、用于协助递送的应用、社交媒体应用或者可能需要向用户提供导航信息的其它软件应用。软件应用 120能够本地存储在用户设备112上,或者能够是例如经由在用户设备 112上实现的浏览器访问的web应用。在一些实施例中,软件应用120 能够由第三方实体开发,其独立于和/或不附属于与导航数据提供者114 相关联的实体。
软件应用120能够调取导航API 130以经由通信网络116从导航数据提供者114访问和提供导航数据,使得导航服务能够被嵌入在软件应用120中。出于说明和讨论的目的,本公开的示例方面对访问来自远程导航数据提供者114的数据进行讨论。本领域普通技术人员使用本文提供的公开内容将理解,API 130能够访问来自其它源的数据,所述源诸如来自本地源或位于用户设备112上的应用。
随着携带用户设备112的用户或车辆沿着从起点到一个或多个目的地的路线行进,导航服务能够实时或近实时地向用户呈现导航信息 (例如路线规划导航信息)。导航服务能够包括图形用户界面组件以用于在一个或多个显示设备上向用户呈现导航信息。另外和/或导航服务能够向用户提供指示导航信息(例如路线规划)路线指引的音频引导或其它通知(例如振动通知)。
图2描绘了根据本公开的示例实施例的、与作为软件应用120的图形用户界面122的一部分所嵌入的导航服务相关联的示例图形用户界面组件200。图形用户界面组件200能够被显示在用户设备112的显示器设备上。图形用户界面组件200能够包括各个界面元素,其作为导航服务的一部分来向用户提供导航信息。如图2所示,图形用户界面组件200包括地图202以及在地图202上呈现的路线210。此外,指示路点的记号212能够被呈现在地图202上。路线210在地图的鸟瞰视图上被显示以提供路线概览。根据本公开的示例实施例,能够经由软件应用120所取的API 130从导航数据提供者114获得与地图202 相关联的数据、与路点212相关联路线210和的信息、以及其它导航信息,其将在下面更详细地讨论。
图3描绘了根据本公开的示例实施例的、与作为软件应用120的图形用户界面122的一部分所嵌入的导航服务相关联的示例图形用户界面组件200的另一方面。在图3的示例中,随着用户或车辆实时或近实时地通过路线,导航服务能够利用图形用户界面组件200来提供路线规划导航路线指引。图形用户界面组件200能够包括各个界面元素以用于向用户呈现导航信息。例如,图形用户界面组件200能够包括地图202和在地图202上以折线呈现的路线210。图形用户界面组件 200能够进一步呈现指示用户或车辆沿着路线210行进的当前位置的标记(indicia)230。标记230能够随着用户或车辆沿着路线210行进而沿着路线210移动。
图形用户界面组件200能够向用户呈现能够在导航中有用的其它信息。例如,图形用户界面组件200能够进一步包括导航标头元素220,其能够显示当前导航方向和与路线的当前部分相关联的其它信息。此外,图形用户界面组件220能够显示ETD信息232,诸如到达到下一个路点的估计的分钟或估计的距离。根据本公开的示例实施例,能够经由软件应用120所调取的API 130来从导航数据提供者114或其它源获得与地图202、路线210等相关联的数据。作为导航编程接口130的一部分来被实现的一个或多个事件侦听器接口能够被用于随着用户或车辆沿着路线行进而更新导航信息。
当API 130在导航模式下操作时,能够显示示例图形用户界面组件200。能够基于各个事件来进入导航模式,诸如对一个或多个路点的指定和/或对信号表示希望开始导航模式的用户输入的接收。在一些实施例中,当在导航模式下操作时,图形用户界面组件200能够显示路线210。当不在导航模式下操作时,图形用户界面组件200能够简单地显示地图的鸟瞰视图或地图的其它合适的视图。
图2和图3描绘了根据本公开的示例实施例的、与能够使用导航 API 130来被嵌入在应用120中的导航服务相关联的图形用户界面组件的一个示例实施方式。在不偏离本公开的范围的情况下,导航服务能够以其它合适的形式呈现导航信息。
再参照图1,API 130能够被配置为与由导航数据提供者114实现的路由引擎140相接口。例如,路由引擎140能够被配置为计算到一个或多个路点的路线、访问地图数据、基于各个导航事件来更新导航数据、以及响应于对于来自API 130的导航数据的请求。在一些实施例中,导航数据提供者114能够包括一个或多个服务器,例如web服务器。所述一个或多个服务器能够包括一个或多个处理器和一个或多个存储器设备。所述一个或多个存储器设备能够存储计算机可读指令以实现例如路由引擎140。在一些实施例中,路由引擎140能够访问例如与地理信息系统115相关联的数据。地理信息系统115能够包括由数据的元素的地理坐标索引的数据。与地理信息系统115相关联的数据能够包括例如地图数据、路线数据、地理图像、与各个路点(例如商业清单名称、地址、地理坐标等)相关联的数据以及其它数据。
应用120能够通过在网络116上经由API 130与导航数据提供者 114进行交互来实现导航服务。网络116能够是任何类型的通信网络,诸如局域网(例如内联网)、广域网(例如互联网)、蜂窝网络、或者其某种组合。网络116还能够包括直接连接。一般而言,能够使用各种通信协议(例如TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如HTML、XML)、和/或保护方案(例如VPN、安全HTTP、SSL),使用任何类型的有线和/或无线连接来经由网络116执行通信。
图4描绘了根据本公开的示例实施例的、被配置为实现导航API 130的示例用户设备112。如图所示,用户设备112包括:指令存储器 152、被配置为执行存储在存储器152中的指令的一个或多个处理器 154、显示器设备156、支持网络通信的网络接口158、以及存储存储器160。为了清楚,指令存储器152和存储存储器160被分离地来图示。然而,将理解,组件152和160也能够是相同存储器模块内的区域。更一般地,用户设备112能够包括一个或若干附加处理器、存储器设备、网络接口,其能够被单独提供或者在同一芯片或板上提供。此外,组件152和160能够包括持久性存储器(例如闪存)、易失性存储器 (例如RAM)、或者这两者、或者其它合适的存储器。
指令存储器152能够存储操作系统(OS)170、导航API 130、和软件应用120的指令集。OS 170能够是专门为移动设备开发的移动OS。因此,OS 170能够包括功能,其允许软件应用访问诸如无线网络参数 (例如无线网络的身份、服务质量)的数据以及调用诸如电话通讯、位置确定(例如经由全球定位服务(GPS)或WLAN)、无线网络数据呼叫发起等的服务。在其它实施方式中,例如,OS 170是在诸如智能电话和台式计算机的移动和固定设备二者上操作的通用操作系统。在一些示例实施方式中,OS包括或基于由谷歌公司(Google Inc.)开发的
Figure BDA0001181183410000111
移动操作系统或实现Android操作平台的类似操作系统。然而,在不偏离本公开的范围的情况下,能够使用其它合适的操作系统。
例如,软件应用120能够是地图应用、导航应用、乘车共享应用、协助递送的应用、社交媒体应用等。此外,软件应用120能够是web 浏览器应用,其调用导航API 130以在浏览器窗口的所指派部分内显示导航信息。通常,导航API 130能够对在用户设备120上执行的任何合适的软件应用可用。此外,多个不同的软件应用可以调取导航API 130。
如上所述,软件应用120能够调取导航API 130以在软件应用120 中嵌入导航服务。例如,在一个示例中,软件应用120能够向导航API 130提供一个或多个路点。导航API130能够从远程导航数据提供者请求导航数据,以基于所述一个或多个路点来确定导航路线。导航API 130能够包括指令集以控制作为导航服务的一部分的导航信息在移动设备上的显示。API 130能够包括一个或多个事件侦听器,其被用于例如基于由作为用户设备的一部分实现的定位系统所确定的用户位置来更新所显示的导航信息。
在一些实施例中,定位系统能够包括一个或多个设备或电路以用于确定设备的位置。例如,定位设备能够通过以下方式来确定实际或相对位置:使用卫星导航定位系统(例如GPS系统、Galileo定位系统、全球导航卫星系统(GLONASS)、北斗卫星导航和定位系统)、惯性导航系统、航位推算系统、基于IP地址、通过使用蜂窝塔或WiFi热点、信标等的三角测量和/或接近度、和/或用于确定位置的其它合适的技术。
导航API 130能够被实现为一个或多个函数、数据结构等。此外, API 130能够包括直接在处理器154上执行的经编译的代码,或者可替选地,处于诸如由应用120在运行时解释的脚本语言的任何其它形式的指令。在一个示例实施方式中,API 130包括开发者能够将其包括在软件应用120的代码中的若干函数的恰当记录的原型,以及实现这些函数的指令。在一些实施例中,API 130能够作为静态库来被提供给开发者。
图5描绘了根据本公开的示例实施例的、开发者能够用来配置导航API 130的示例指令集的框图。例如,指令集能够包括:初始化和错误处理指令310;导航片段指令320,其能够指定参数以控制导航服务的视觉输出的显示;在指令中指定的各个类330,其允许开发者例如将记号添加到地图并指定路点;导航器指令350,其能够指定参数以控制导航服务的实现;以及导航服务指令370,其能够指定参数来控制与导航数据提供者的交互以用于请求和接收导航信息(例如路由信息)。在一些实施例中,导航服务指令370还能够包括被用于将导航服务作为软件应用的一部分来实现的逻辑(例如移动指示沿着路线的用户位置的标记)。
在一些实施例中,导航API 130能够被实现如下。首先,软件应用的开发者能够将导航片段类320添加到其应用以显示导航服务的视觉输出(例如图形用户界面组件)。开发者能够通过指定导航器指令 350中的一个或多个参数来控制导航服务。当不处于导航模式时,导航片段(navigation fragment)类320能够被配置为显示例如鸟瞰的概览地图。在导航器(navigator)指令350(例如,Navigator.setWapoint(...)) 中调用设置路点(setwaypoint)函数能够在地图上以折线显示具有每个路点的记号的导航路线。开发者能够通过在导航器指令350中调用进入导航模式(enter navigation mode)函数(例如,Navigator.enterNavigationMode())来触发向路点的导航。
导航模式能够继续,直到到达路点(例如由事件侦听器所确定) 或者直到在导航器指令350中的退出导航模式函数被调用(例如, Navigator.exitNavigationMode())。在一些实施方式中,能够在没有处于自由导航格式的路点的情况下使用导航模式。在自由导航格式下,用户的位置(例如基于用户设备的定位系统)能够被用于更新用户在地图上的当前位置。在一些实施例中,开发者能够使用在导航片段指令320中指定的获取地图(getmap)函数(例如, NavigationFragment.getMap())向地图添加记号。
参照图5,初始化和错误处理指令310能够是API 130的入口点,开发者能够从该入口点获得对导航器指令350的访问。以这种方式,初始化和错误处理逻辑能够与导航逻辑分离地来被处理。初始化和错误处理指令310能够要求API密钥授权开发者使用API。初始化和错误处理指令310还能够要求用户在使用导航服务之前接受由导航数据提供者提供的条款和条件。
在一些示例实施例中,初始化和错误处理指令310能够被实现如下:
Figure BDA0001181183410000141
Figure BDA0001181183410000151
Figure BDA0001181183410000161
Figure BDA0001181183410000171
Figure BDA0001181183410000181
一个示例用例如下:
Figure BDA0001181183410000182
Figure BDA0001181183410000191
导航片段指令320能够指定一个或多个参数以控制图形用户界面组件的实现。开发者能够添加导航片段指令320以结合软件应用来显示导航的视觉输出(例如,交互式地图和路线规划路线指引)。在一些实施例中,导航片段指令320能够被实现为基于Android的操作平台中的片段,而不是作为用以降低复杂性的视图。例如,使用视图实现能够要求开发者手动地将生命周期方法(例如onCreate()、onResume ()等)转发到该视图。在一些实施例中,导航片段指令320能够被实现为视图,而不偏离本公开的范围。
在Android操作平台中,片段能够是能够被放置在活动(activity) 中的应用的用户接口的一部分。在一些实施例中,多个片段能够被实现为应用的一部分以构建多窗格(multi-pane)用户界面。片段能够具有其自己的生命周期,并且能够接收其自己的输入事件,其能够在活动正在运行时被添加或去除。出于说明和讨论的目的,讨论了在 Android操作平台中实现导航片段指令320的本公开的示例方面。在不偏离本公开的范围的情况下,导航片段指令320能够以其它方式实现以提供类似的功能。
导航片段指令320能够包括允许开发者控制与导航服务相关联的图形用户界面组件的哪些方面被示出的参数。例如,开发者能够利用导航片段指令320中的构建器函数(例如,NavigationFragment.Builder) 构造图形用户界面。在一些实施例中,开发者能够选择是否来显示导航标头、罗盘元素、ETD信息、或者与导航服务结合的其它信息。
在一个实施例中,图形用户界面组件能够被构造如下:
Figure BDA0001181183410000201
作为另一个示例,图形用户界面组件能够使用XML被构造如下:
Figure BDA0001181183410000211
在一些实施例中,片段类接口能够被实现如下:
Figure BDA0001181183410000212
Figure BDA0001181183410000221
在替选实施例中,图形用户界面组件还能够被实现为Android操作平台中的视图而不是片段。当使用导航视图时,能够从应用活动转发各个生命周期事件。
例如,在一个实施例中,导航视图能够被实现如下。
Figure BDA0001181183410000222
可能需要转发以下生命周期方法以用于导航视图指令集: onCreate、onStart、onResume、onPause、onStop、onDestroy、onConfigurationChanged、onSaveInstanceState。
在一些实施例中,API 130能够包括各个类指令330,诸如地图类、路点类、纬度/纬度类、和相机类。地图类能够使开发者向地图添加路点。地图类还能够包括各个函数以控制图形用户界面组件中的对地图的描绘。例如,在一些实施方式中,地图类能够被实现如下:
Figure BDA0001181183410000231
Figure BDA0001181183410000241
路点类能够根据指示路点的位置的各个数据来创建或指定航路点,所述数据诸如:地点识别、地址、纬度/经度坐标、语义名称、或其它地点识别。在一些实施方式中,路点类能够被指定如下:
Figure BDA0001181183410000242
lat/lng(经/纬度)类能够被用于至少部分地基于指示纬度和经度的数据来生成指示地点位置的纬度/经度变量。在一个示例中,lat/lng 类能够被实现如下:
Figure BDA0001181183410000243
Figure BDA0001181183410000251
能够实现的另一个示例类能够是相机类,其能够被用于调整被示为导航的一部分的地图的位置和视角(perspective)。能够使用被指定为导航片段的一部分的获取相机接口来获得对当前相机的引用。在一个示例中,相机类能够被实现如下:
Figure BDA0001181183410000252
Figure BDA0001181183410000261
Figure BDA0001181183410000271
导航器指令350能够指定一个或多个参数以控制软件应用实现导航服务。在一些实施例中,导航器指令350能够被实现为Android操作平台中的单例。这能够允许开发者实现导航器指令350,而无需使用导航片段指令320。因此,导航服务能够在没有图形用户界面组件的情况下提供导航信息(例如使用音频通知)。当用户在导航时经由调取API 130的应用来完成全屏任务时,这能够是有用的。此外,可能不需要在给定时间实现多于一个的导航器指令集。
例如,导航器指令350能够确定到一个或多个目的地路点的路线是否已经被成功地计算和接收,并且能够被配置为提供指示是否接收到路线的信息,或者是否存在各个错误(例如网络错误)。导航器指令350能够进一步设置一个或多个路点,并且能够控制进入和退出到导航模式。导航器指令350能够被用于启用能够模拟沿着所计算的路线的驾驶的驾驶模拟。导航器指令350还能够指定与音频指导相关联的参数,以在导航期间提供音频提示或振动提示。
在一个示例实施例中,导航器指令350能够被实现如下:
Figure BDA0001181183410000281
Figure BDA0001181183410000291
Figure BDA0001181183410000301
Figure BDA0001181183410000311
Figure BDA0001181183410000321
根据本公开的示例方面,导航器指令350能够实现一个或多个事件侦听器接口360。事件侦听器接口360能够利用导航器指令350来被注册。事件侦听器接口360能够被用于回调以获得与一个或多个导航事件相关联的数据,以更新作为导航服务的一部分来提供的导航信息。导航事件能够是能够影响向用户呈现的导航信息的任何事件。例如,导航事件能够是用户位置的变化、交通状况的变化、一个或多个路点的变化、路线信息的变化、ETD信息的变化等。以这种方式,事件侦听器能够被用于随着用户沿着路线行进或导航而更新作为导航服务的一部分来呈现的导航信息。在一个示例中,事件侦听器接口360能够利用如下导航器指令350来被注册:
Figure BDA0001181183410000322
Figure BDA0001181183410000331
Figure BDA0001181183410000341
图6描绘了根据本公开的示例实施例的、能够被实现为导航器指令350的一部分的一个或多个事件侦听器接口360的框图。如图6所图示,一个或多个事件侦听器接口360能够包括位置侦听器接口362、路线改变侦听器接口364、到达侦听器接口366、和/或ETD侦听器接口368。事件侦听器接口360能够是可配置事件侦听器接口360,使得开发者能够在与API130相关联的指令——诸如在导航器指令350中指定事件侦听器接口360的各个设置和参数。
位置侦听器接口362能够被配置为(例如通过导航器接口)被调用以更新导航服务中的用户的当前位置。以这种方式,导航服务能够随着用户的当前位置被更新而沿着导航路线显示用户的当前位置。一个示例位置侦听器接口362能够被实现如下:
Figure BDA0001181183410000351
路线改变侦听器接口364能够被配置为当所计算的路线改变时被调用以更新路线信息。例如,当计算出更好的路线时或者当用户偏离推荐路线时,能够更新路线信息。由路线改变侦听器接口364提供的路线能够结合作为导航服务的一部分的地图来以折线提供以用于显示。一个示例路线改变侦听器接口364能够被实现如下:
Figure BDA0001181183410000352
Figure BDA0001181183410000361
到达侦听器接口366能够在用户已经到达指定的路点时被调用以发出信号。例如,当用户已经到达路点时,能够调用到达侦听器接口 366以退出导航模式。一个示例到达侦听器接口366能够被实现如下:
Figure BDA0001181183410000362
当到路点的剩余时间或剩余距离已经改变超过阈值时,能够调用 ETD侦听器接口368(例如,剩余时间或剩余距离侦听器接口)。该阈值能够被指定为导航器指令350中的参数。ETD信息(例如剩余时间或剩余距离)能够作为导航事件的结果而改变,诸如用户移动(例如用户位置的改变)、交通状况的改变、路线的改变、一个或多个路点的改变、或者当剩余时间或剩余距离首次变得已知时。更新的ETD信息能够作为导航服务的一部分被呈现给用户,例如作为图形用户界面组件的一部分或通过音频引导或其它通知。一个示例ETD侦听器接口 368能够被实现如下:
Figure BDA0001181183410000363
Figure BDA0001181183410000371
图5中所示的导航服务指令370实际上能够驱动导航服务(例如能够为导航服务提供逻辑),并且能够由导航器指令350中阐述的参数控制。导航服务指令370能够控制与路由引擎的交互,以提供基于导航器指令350中指定的参数的导航信息和由一个或多个事件侦听器接口360确定的导航事件。在一些实施例中,开发者不指定导航服务指令370的参数,并且导航服务指令充当API 130的内部接口。开发者能够例如通过将对导航指令的引用添加到软件应用的manifest.xml来实现导航服务指令370。例如,导航服务指令370能够被实现如下:
<service android:name= "com.navprovider.android.libraries.navigation.NavigationService"/>
图7描绘了根据本公开的示例实施例的、使用导航API将导航服务整合到软件应用中的一个示例方法(400)的流程图。方法(400) 能够使用例如图5中所描绘的API 130来实现。图7出于说明和讨论的目的而描绘了以特定顺序执行的步骤。本领域普通技术人员使用本文提供的公开内容将理解,在不偏离本公开的范围的情况下,能够调整、修改、重新布置、省略、和/或扩展本文所公开方法中的任何一个的各个步骤。
在(402)处,该方法能够包括访问与导航API 130相关联的数据 (例如文件)并将其包含到软件应用中。例如,用户能够例如通过网络(例如互联网)下载与导航API 130相关联的文件,并且能够将导航 API文件提供到与软件应用相关联的gradle root下的子目录中。与导航 API 130和第三方依赖关系相关联的库能够被添加到软件应用。
在(404)处,能够获得用于启用导航API 130的访问密钥。在一些实施例中,能够从导航数据提供者获得访问密钥。访问密钥能够被添加到软件应用,例如,添加到与软件应用相关联的 androidmanifest.xml。
在(406)处,开发者能够通过指定导航片段指令集320(或在一些实施例中,导航视图指令集)中的参数来构造与导航服务相关联的图形用户界面组件。这能够向软件应用添加交互式地图和路线规划导航图形用户界面组件。
在(408)处,开发者能够使用初始化和错误处理指令来初始化导航API 130。一旦导航API被初始化,导航器指令350就能够被用于控制和配置导航服务,如在(410)处所示。例如,能够指定各个函数以确定何时开始和退出导航模式。根据本公开的特定实施例,能够将一个或多个事件侦听器接口360包括在导航器指令350中,以捕获诸如到达、路线改变、用户位置改变、ETD信息改变等的导航事件。在(412) 处,该方法能够包括利用所整合的导航服务来构建和测试软件应用。
在一些示例实施例中,导航API 130能够被配置为容纳多个不同路点间的多路点路由。例如,图8描绘了被配置为容纳多路点路由的示例导航API 130的框图。导航API 130能够类似于图5所示的导航 API 130。例如,图8的导航API 130能够包括初始化和错误处理指令 310、导航片段指令320(或在一些实施例中,导航视图指令)、各个类指令330(例如,地图类、路点类、经纬度类、相机类等)。此外, API 130能够包括导航器指令350和导航服务指令370。导航器指令350 能够指定参数以控制导航服务的实现,以及导航服务指令370,其能够控制与导航数据提供者的交互,以用于请求和接收导航信息。
导航器指令350能够包括一个或多个多路点函数510和一个或多个多路点事件侦听器接口520以容纳由导航服务进行的多路点路由。多路点事件侦听器接口520能够利用导航器指令350来被注册。事件侦听器接口520能够被用于回调以获得与一个或多个导航事件相关联的数据,以更新作为导航服务的一部分提供的导航信息。例如,导航事件能够是用户位置的改变、交通状况的改变、多个路点中的一个或多个的改变、多路点路线中的一个或多个路线段的路线信息的改变、到多路点路线中的下一个目的地的ETD信息的改变等。
多路点函数510能够被用于实现与多路点路由相关联的各个函数。例如,多路点函数能够被用于:设置一个或多个路点以制作多路点路线,访问针对沿着多路点路线的多个路点中的每一个的ETD信息,访问与沿着多路点路线的多个路点中的每一个相关联的位置信息,访问沿着多路点路线的路点之间的路线段,以及访问用户在特定导航会话期间沿着多路点路线去过何处。
图9描绘了根据本公开的示例性实施例的、能够被用作导航器指令350的一部分或者利用导航器指令350来注册以实现多路点导航的、各个多路点函数510和事件侦听器接口520的框图。例如,多路点函数510能够包括一个或多个路点函数512,其能够被用于设置和管理多路点路线的多个路点。在一个实施例中,路点函数512能够包括设置多路点函数、设置单路点函数、继续到下一个路点函数、和清除路点函数。设置多路点函数能够被配置为设置经由路点列表输入的多路点路线的多个路点。设置多路点函数将设置多个路点(优先于任何先前的路点),其能够按列表中指定的顺序来被访问。该函数能够返回路线状态函数的future(其确定所计算的路线的状态)。如果针对多个路点生成了多路点路线,则能够解决为OK。能够针对网络或配额错误生成错误代码。在一个实施例中,设置多路点函数能够在导航器指令350 中被实现如下:
ListenableResultFuture<RouteStatus>
setDestinations(List<Waypoint>destinations)
设置单路点函数能够作为设置导航路线的单个路点的便利方法来使用。在一个实施例中,设置单路点函数能够在导航器指令350中被实现如下:
ListenableResultFuture<RouteStatus>setDestination(Waypointdestination)
继续到下一个路点函数能够被用于启动到多路点导航区段中的下一个路点的导航。在一些实施例中,能够要求显式地调用该函数。在这些实施例中,API可以不自动移动到下一个路点。如果多路点路线中没有剩余路点,则继续到下一个目标函数能够返回异常。在一些实施例中,继续到下一个目的地函数能够在导航器指令350中被实现如下:
void continueToNextDestination()throws NoNextDestinationException toWaypoint continueToNextDestination()
清除路点函数能够被用于清除一个或多个(例如所有)先前设置的路点。如果导航正在运行,则此函数也能够停止导航。在一些实施例中,能够在导航器指令350中实现清除路点函数,如下:
void clearDesintations()
如图9所示,一个或多个事件侦听器520能够包括到达事件侦听器接口522。到达事件侦听器接口能够在用户已到达特定路点时被调用。在一些实施例中,到达事件侦听器接口522能够如下地利用导航器指令350注册:
Void ArrivalListener.onArrivedAtWaypoint(Waypoint waypoint)
一个或多个事件侦听器520能够进一步包括ETD侦听器接口524。当到多路点路线的多个路点中的下一个路点的剩余距离或剩余时间改变超过阈值时,能够调用ETD侦听器接口来更新ETD信息。阈值能够由开发者在导航器指令中指定。例如,在一些实施例中,ETD侦听器接口524能够如下来利用导航器指令350注册:
Figure BDA0001181183410000411
Figure BDA0001181183410000421
多路点函数510能够包括获取ETD函数514。获取ETD函数能够获得针对沿着多路点路线的指定路点的ETD信息(例如剩余时间和/ 或剩余距离)。在一些实施例中,获取ETD函数514能够在导航器指令350中被实现如下:
@Nullable TimeAndDistance getTimeAndDistance(Waypoint waypoint)
多路点函数510能够进一步包括获取下一个ETD函数。获得下一个ETD函数能够向多路点路线中的下一个路点返回ETD信息(例如剩余时间和/或剩余距离)。如果不存在下一个路点,则函数能够返回空。在一些实施例中,获取下一个ETD函数能够在导航器指令350中被实现如下:
@Nullable TimeAndDistance getNextTimeAndDistance()
事件侦听器接口520能够进一步包括路线改变事件侦听器接口 526。路线改变事件侦听器接口526能够利用导航器指令来注册,以在多路点导航路线改变时提供更新。当多路点导航路线的任何路线段改变时,能够调用路线改变事件侦听器接口526。例如,路线改变事件侦听器接口526能够在以下情况被调用:在初始多路点路线改变时、在用户偏离导航路线时、在该用户手动选择另一个导航路线的情况下等。在一些实施例中,路线改变事件侦听器接口526能够在导航器指令350 中被实现如下:
Figure BDA0001181183410000431
在一些实施例中,ETD信息(例如,TimeAndDistance)是不可变类型。例如,TimeAndDistance能够被实现如下:
Figure BDA0001181183410000441
多路点函数510能够包括获得路线段函数516。获得路线段函数能够包括:获得当前路线段函数以返回到下一个路点的当前路线段,列出路线段函数以列出多路点导航路线中的所有路线段,以及获得行进路线段,以获得在多路点导航路线中已经行进的路线段。在一些实施例中,获得路线段函数能够被实现如下:
Figure BDA0001181183410000442
Figure BDA0001181183410000451
在一些实施例中,RouteSegment能够是不可变类型。例如, RouteSegment能够被实现如下:
Figure BDA0001181183410000452
Figure BDA0001181183410000461
事件侦听器接口520能够仅以包括位置侦听器接口528。位置侦听器接口528能够类似于关于图2所讨论的位置侦听器接口362。位置侦听器接口528能够被配置为(例如通过导航器接口)被调用以更新导航服务中的用户的当前位置。以这种方式,导航服务能够在用户的当前位置被更新时沿着多点导航路线来显示用户的当前位置。
本文讨论的技术涉及服务器、数据库、软件应用、以及其它基于计算机的系统,以及所采取的动作和发送到这样的系统和从其发送的信息。本领域普通技术人员将认识到,基于计算机的系统的固有灵活性允许组件间的任务和功能的极其多种的可能的配置、组合、和划分。例如,本文所讨论的服务器进程可以使用单个服务器或组合工作的多个服务器来实现。数据库和应用可以在单个系统上实现或者跨多个系统分布。分布式组件可以顺序或并行操作。
虽然已经关于本主题的具体示例实施例详细描述了本主题,但是将理解的是,本领域技术人员在获得对前述的理解后可以容易地产生对这样的实施例的更改、变型、和等同物。因此,本公开的范围是通过示例而不是限制的方式,并且本公开不排除包括对本主题的这样的修改、变化、和/或添加,这对于本领域普通技术人员将是显而易见的。

Claims (18)

1.一种存储指令的非暂时性计算机可读介质,所述指令实现用于将导航服务提供为在计算设备上执行的软件应用的一部分的应用编程接口,所述计算设备具有一个或多个处理器和显示设备,所述应用编程接口包括:
第一指令集,其指定一个或多个第一参数以控制由所述软件应用对导航服务的实现,所述导航服务向所述软件应用的用户提供导航信息,所述第一指令集被实现为类;
第二指令集,其指定至少部分地基于在所述第一指令集中指定的所述一个或多个第一参数来控制与路由引擎的交互的逻辑;
其中,所述第一指令集指定一个或多个能够配置的事件侦听器接口,所述能够配置的事件侦听器接口能够操作为获得与一个或多个导航事件相关联的数据,以更新作为所述导航服务的一部分提供的所述导航信息,所述一个或多个能够配置的事件侦听器接口均包括作为被实现为类的所述第一指令集的一部分能够由开发者指定的一个或多个参数;
其中,所述一个或多个能够配置的事件侦听器接口被配置为响应于能够由所述开发者指定的所述一个或多个参数指定的一个或多个导航事件而获得与所述一个或多个导航事件相关联的数据;以及
其中,所述一个或多个能够配置的事件侦听器接口包括路线改变侦听器接口,所述路线改变侦听器接口能够操作为在作为所述导航服务的一部分提供的路线改变时被调用;其中,所述一个或多个能够配置的事件侦听器接口包括到达侦听器接口,所述到达侦听器接口能够操作为在用户已到达指定的路点时被调用。
2.根据权利要求1所述的非暂时性计算机可读介质,其中,所述一个或多个能够配置的事件侦听器接口包括位置侦听器接口,所述位置侦听器接口能够操作为被调用以更新所述导航服务中的用户的当前位置。
3.根据权利要求1所述的非暂时性计算机可读介质,其中,所述一个或多个能够配置的事件侦听器接口包括剩余时间或剩余距离改变侦听器接口,所述剩余时间或剩余距离改变侦听器接口能够操作为在到路点的剩余时间或剩余距离已改变超过阈值时被调用,所述阈值被指定为所述第一指令集中的所述第一参数中的一个。
4.根据权利要求1所述的非暂时性计算机可读介质,其中,所述第一指令集包括一个或多个第一参数,所述一个或多个第一参数能够操作为指定与所述导航服务结合的音频引导模式的操作。
5.根据权利要求1所述的非暂时性计算机可读介质,其中,所述应用编程接口包括用于接收用于导航的一个或多个路点的路点接口。
6.根据权利要求1所述的非暂时性计算机可读介质,其中,所述应用编程接口包括第三指令集,所述第三指令集指定一个或多个第三参数以控制与所述软件应用相结合的、与所述导航服务相关联的图形用户界面组件在所述显示设备上的显示。
7.根据权利要求6所述的非暂时性计算机可读介质,其中,所述第三指令集指定在处于导航模式时由所述路由引擎确定的导航路线在地图上以折线方式的显示。
8.根据权利要求6所述的非暂时性计算机可读介质,其中,所述第三指令集指定在不处于导航模式时对地图的鸟瞰视图的显示。
9.根据权利要求6所述的非暂时性计算机可读介质,其中,所述第三指令集指定参数以控制与所述图形用户界面组件相结合的、对导航标头元素或估计的到达时间元素的显示。
10.根据权利要求6所述的非暂时性计算机可读介质,其中,所述第三指令集被实现为Android操作平台中的片段。
11.根据权利要求1所述的非暂时性计算机可读介质,其中,所述第一指令集被实现为Android操作平台中的单例。
12.一种用于在具有一个或多个处理器的计算设备上将导航服务整合为软件应用的一部分的方法,所述方法包括:
访问与导航应用编程接口相关联的数据;
将所述与导航应用编程接口相关联的数据合并到所述软件应用中;
使用与所述导航应用编程接口相关联的第一指令集来构造与所述导航服务相关联的图形用户界面组件,所述第一指令集指定一个或多个参数以控制与软件应用相结合的、与所述导航服务相关联的所述图形用户界面组件在显示设备上的显示;以及
使用与所述导航应用编程接口相关联的第二指令集来配置所述导航服务,所述第二指令集指定一个或多个参数以控制所述软件应用对所述导航服务的实现,所述第二指令集被实现为类;
其中,所述第二指令集包括一个或多个能够配置的事件侦听器接口,所述能够配置的事件侦听器接口能够操作为获得与一个或多个导航事件相关联的数据,以更新作为所述导航服务的一部分提供的导航信息,所述一个或多个能够配置的事件侦听器接口均包括作为被实现为类的所述第二指令集的一部分能够由开发者指定的一个或多个参数;
其中,所述一个或多个能够配置的事件侦听器接口被配置为响应于能够由所述开发者指定的所述一个或多个参数指定的一个或多个导航事件而获得与所述一个或多个导航事件相关联的数据;以及
其中,所述一个或多个能够配置的事件侦听器接口包括路线改变侦听器接口,所述路线改变侦听器接口能够操作为在作为所述导航服务的一部分提供的路线改变时被调用;
其中,所述一个或多个能够配置的事件侦听器接口包括到达侦听器接口,所述到达侦听器接口能够操作为在用户已到达指定的路点时被调用。
13.根据权利要求12所述的方法,其中,所述方法包括:
获得访问密钥以用于启用所述导航应用编程接口的操作;以及
将所述访问密钥添加到所述软件应用。
14.根据权利要求12所述的方法,其中,所述方法包括:使用与所述导航应用编程接口相关联的初始化和错误处理指令集来初始化所述导航应用编程接口。
15.根据权利要求12所述的方法,其中,所述一个或多个能够配置的事件侦听器接口包括位置侦听器接口,所述位置侦听器接口能够操作为被调用以更新所述导航服务中的用户的当前位置。
16.根据权利要求12所述的方法,其中,所述一个或多个能够配置的事件侦听器接口包括剩余时间或剩余距离改变侦听器接口,所述剩余时间或剩余距离改变侦听器接口能够操作为在到路点的剩余时间或剩余距离已改变超过阈值时被调用。
17.根据权利要求16所述的方法,其中,使用第二指令集来配置所述导航服务包括:将所述阈值设置为所述第二指令集中的参数。
18.一种计算设备,包括:
显示设备;
网络接口;
一个或多个处理器;以及
一个或多个存储器设备,其中,所述一个或多个存储器设备存储计算机可读指令,所述计算机可读指令实现由软件应用调取的应用编程接口,以从导航数据提供者获得导航信息,来将导航服务提供为所述软件应用的一部分,所述指令包括:
第一指令集,其指定一个或多个第一参数以控制由所述软件应用对导航服务的实现,所述导航服务向所述软件应用的用户提供导航信息,所述一个或多个第一参数控制所述导航服务何时进入和退出导航模式,所述第一指令集被实现为类;
第二指令集,其指定至少部分地基于在所述第一指令集中指定的所述一个或多个第一参数来控制与路由引擎的交互的逻辑,以获得在处于所述导航模式时作为所述导航服务的一部分提供的所述导航信息;
第三指令集,其指定一个或多个第三参数以控制与软件应用相结合的、与所述导航服务相关联的图形用户界面组件在所述显示设备上的显示;
其中,所述第一指令集指定一个或多个能够配置的事件侦听器接口,所述一个或多个能够配置的事件侦听器接口能够操作为获得与所述一个或多个导航事件相关联的数据,以更新在所述导航模式期间作为所述导航服务的一部分提供的所述导航信息,所述一个或多个能够配置的事件侦听器接口均包括作为被实现为类的所述第一指令集的一部分能够由开发者指定的一个或多个参数;
其中,所述一个或多个能够配置的事件侦听器接口被配置为响应于能够由所述开发者指定的所述一个或多个参数指定的一个或多个导航事件而获得与所述一个或多个导航事件相关联的数据;以及
其中,所述一个或多个能够配置的事件侦听器接口包括路线改变侦听器接口,所述路线改变侦听器接口能够操作为在作为所述导航服务的一部分提供的路线改变时被调用;
其中,所述一个或多个能够配置的事件侦听器接口包括到达侦听器接口,所述到达侦听器接口能够操作为在用户已到达指定的路点时被调用。
CN201611158888.7A 2016-03-25 2016-12-15 将导航服务整合为软件应用的一部分的方法以及计算设备 Active CN107229461B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/080,672 US10169110B2 (en) 2016-03-25 2016-03-25 Navigation application programming interface
US15/080,672 2016-03-25

Publications (2)

Publication Number Publication Date
CN107229461A CN107229461A (zh) 2017-10-03
CN107229461B true CN107229461B (zh) 2022-01-14

Family

ID=57570649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611158888.7A Active CN107229461B (zh) 2016-03-25 2016-12-15 将导航服务整合为软件应用的一部分的方法以及计算设备

Country Status (6)

Country Link
US (1) US10169110B2 (zh)
EP (1) EP3374867B1 (zh)
CN (1) CN107229461B (zh)
DE (2) DE102016124464A1 (zh)
GB (1) GB2548949A (zh)
WO (1) WO2017164942A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108088436B (zh) * 2017-11-30 2020-02-18 努比亚技术有限公司 一种导航信息提示方法、终端和计算机可读存储介质
CN109992293B (zh) * 2018-01-02 2023-06-20 深圳市宇通联发科技有限公司 Android系统组件版本信息的组装方法及装置
CN113867980A (zh) * 2019-01-14 2021-12-31 华为技术有限公司 调用应用程序接口的方法和装置
CN112486596A (zh) * 2020-12-16 2021-03-12 北京小米移动软件有限公司 一种方位指示方法、装置、电子设备及存储介质
USD953371S1 (en) 2021-10-22 2022-05-31 BioReference Health, LLC Display screen or portion thereof with animated graphical user interface

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006039660A2 (en) * 2004-10-01 2006-04-13 Networks In Motion, Inc. Off board navigation solution
US7228225B1 (en) * 2002-09-18 2007-06-05 Garmin Ltd. Methods and systems to interface navigation operations
CN101183006A (zh) * 2007-11-14 2008-05-21 凯立德欣技术(深圳)有限公司 一种导航系统剩余时间确定方法、装置及导航系统
CN101210959A (zh) * 2006-12-25 2008-07-02 中国移动通信集团公司 移动终端导航系统及方法
CN101441087A (zh) * 2007-11-23 2009-05-27 佛山市顺德区顺达电脑厂有限公司 根据重新演算的导航路径提示导航信息的方法
CN102023866A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 基于Google Maps JavaScript API的地图控件及其生成方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901594B1 (en) * 1999-04-23 2005-05-31 Nortel Networks Ltd. Apparatus and method for establishing communication between applications
US20010034754A1 (en) * 2000-03-17 2001-10-25 Elwahab Amgad Mazen Device, system and method for providing web browser access and control of devices on customer premise gateways
US8010285B1 (en) * 2008-09-30 2011-08-30 Denise Jason A Electronic navigation related technology
US9409052B2 (en) * 2008-10-03 2016-08-09 Adidas Ag Program products, methods, and systems for providing location-aware fitness monitoring services
EP2360958B1 (en) * 2010-02-12 2015-03-25 Accenture Global Services Limited Mobile network monitoring by measuring quality of service QoS
KR20120067830A (ko) 2010-12-16 2012-06-26 한국전자통신연구원 모바일 웹 지도 서비스 시스템 및 이를 위한 서비스 단말
US9542241B2 (en) 2011-07-12 2017-01-10 Harman International Industries, Incorporated Navigation application interface
US20130231889A1 (en) * 2012-03-01 2013-09-05 Lockheed Martin Corporation Method and apparatus for an inertial navigation system
US20140101249A1 (en) 2012-07-10 2014-04-10 Mark Lampe Systems and Methods for Managing and Presenting Information
US8849942B1 (en) 2012-07-31 2014-09-30 Google Inc. Application programming interface for prefetching map data
US20140099973A1 (en) * 2012-10-04 2014-04-10 Libera, Inc. Systems and methods for finding mobile phone users
US20140114565A1 (en) 2012-10-22 2014-04-24 Adnan Aziz Navigation of a vehicle along a path
US8886460B1 (en) 2012-11-29 2014-11-11 Google Inc. Mobile device navigation state application programming interface
KR101474115B1 (ko) * 2013-03-26 2015-01-02 한양대학교 에리카산학협력단 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법
US9958289B2 (en) * 2013-09-26 2018-05-01 Google Llc Controlling navigation software on a portable device from the head unit of a vehicle
US10054463B2 (en) * 2013-09-26 2018-08-21 Google Llc Systems and methods for providing navigation data to a vehicle
US20150088642A1 (en) * 2013-09-26 2015-03-26 Mastercard International Incorporated Intelligent shopping cart service
US10785172B2 (en) * 2014-05-23 2020-09-22 Verizon Patent And Licensing Inc. Method and apparatus for delivering messages based on user activity status
US20160054137A1 (en) * 2014-08-20 2016-02-25 Tomtom International B.V. Navigation device with enhanced widgets and applications
US9756139B2 (en) * 2014-12-30 2017-09-05 Facebook, Inc. Executing requests for services using shared location data
FR3046273B1 (fr) 2015-12-23 2018-10-12 Thales Architecture ouverte pour systeme de gestion de vol

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228225B1 (en) * 2002-09-18 2007-06-05 Garmin Ltd. Methods and systems to interface navigation operations
WO2006039660A2 (en) * 2004-10-01 2006-04-13 Networks In Motion, Inc. Off board navigation solution
CN101210959A (zh) * 2006-12-25 2008-07-02 中国移动通信集团公司 移动终端导航系统及方法
CN101183006A (zh) * 2007-11-14 2008-05-21 凯立德欣技术(深圳)有限公司 一种导航系统剩余时间确定方法、装置及导航系统
CN101441087A (zh) * 2007-11-23 2009-05-27 佛山市顺德区顺达电脑厂有限公司 根据重新演算的导航路径提示导航信息的方法
CN102023866A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 基于Google Maps JavaScript API的地图控件及其生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
""How to"for the Android SDK;skobbler;《http://web.archive.org/web/20160316095427/http://developer.skobbler.com/getting-started/android》;20160316;第1-11页 *

Also Published As

Publication number Publication date
DE202016008228U1 (de) 2017-06-07
WO2017164942A1 (en) 2017-09-28
EP3374867B1 (en) 2024-01-31
DE102016124464A1 (de) 2017-09-28
EP3374867A1 (en) 2018-09-19
US20170277577A1 (en) 2017-09-28
CN107229461A (zh) 2017-10-03
GB2548949A (en) 2017-10-04
US10169110B2 (en) 2019-01-01
GB201621270D0 (en) 2017-01-25

Similar Documents

Publication Publication Date Title
JP7201651B2 (ja) ナビゲーションアプリケーションプログラミングインターフェース
CN107229461B (zh) 将导航服务整合为软件应用的一部分的方法以及计算设备
US10061625B2 (en) Navigation application programming interface to accommodate multiple waypoint routing
EP3494468B1 (en) Multi-platform mapping api
US10254120B2 (en) API for obtaining geographic location data
US10393539B2 (en) API for obtaining geographic location data
KR102040566B1 (ko) 명확한 픽업 장소를 제공하는 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체
KR102555924B1 (ko) 증강현실 뷰를 사용하는 경로 안내 방법 및 장치
US20180017403A1 (en) Navigation API for Linking Software Applications
US20180266839A1 (en) Process and system in which the user can provide additional criteria to select for the most preferable routes through Google Maps

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant