CN104335248A - 非静态3d地图视图 - Google Patents

非静态3d地图视图 Download PDF

Info

Publication number
CN104335248A
CN104335248A CN201380028115.5A CN201380028115A CN104335248A CN 104335248 A CN104335248 A CN 104335248A CN 201380028115 A CN201380028115 A CN 201380028115A CN 104335248 A CN104335248 A CN 104335248A
Authority
CN
China
Prior art keywords
map
view
group
animate
mapping 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.)
Granted
Application number
CN201380028115.5A
Other languages
English (en)
Other versions
CN104335248B (zh
Inventor
P·S·佩蒙特
E·A·M·亚德勒斯
C·布鲁门伯格
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN104335248A publication Critical patent/CN104335248A/zh
Application granted granted Critical
Publication of CN104335248B publication Critical patent/CN104335248B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • 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/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • G01C21/32Structuring or formatting of map data
    • 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/3605Destination input or retrieval
    • G01C21/3611Destination input or retrieval using character input or menus, e.g. menus of POIs
    • 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/3605Destination input or retrieval
    • G01C21/3617Destination input or retrieval using user history, behaviour, conditions or preferences, e.g. predicted or inferred from previous use or current movement
    • 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/3626Details of the output of route guidance instructions
    • G01C21/3635Guidance using 3D or perspective road maps
    • G01C21/3638Guidance using 3D or perspective road maps including 3D objects and buildings
    • 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/367Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
    • 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/3673Labelling using text of road map data items, e.g. road names, POI names
    • 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/3679Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities
    • G01C21/3682Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities output of POI information on a road map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • G09B29/006Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
    • G09B29/007Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S345/00Computer graphics processing and selective visual display systems
    • Y10S345/949Animation processing method
    • Y10S345/956Language driven animation

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Educational Technology (AREA)
  • Mathematical Physics (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Social Psychology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Ecology (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一些实施例,这些实施例提供用于生成三维(3D)地图的视图的地图绘制应用。该地图绘制应用包括用于为3D地图的一部分识别3D地图数据的地理数据模块。3D地图数据包括(1)3D地图的部分表示的现实世界的一部分的相机捕获图像(CCI),(2)3D地图的所述部分中被指定为利用CCI进行纹理化的第一组地图要素,和(3)3D地图的所述部分中被指定为利用非CCI进行纹理化的第二组地图要素。该地图绘制应用还包括渲染引擎,该渲染引擎用于通过为3D地图中的若干地图要素生成效应来渲染3D地图的视图,以便使若干地图要素在3D地图的视图中以动画方式呈现。

Description

非静态3D地图视图
背景技术
现今有很多基于地图的应用是为多种不同设备(例如台式计算机、膝上型电脑、平板设备、智能电话、手持式全球定位系统(GPS)接收器等)以及出于各种不同的目的(例如导航、浏览、运动等)而设计的。这些应用中的大部分应用基于地图数据来生成地图的显示,该地图数据描述街道、公路、兴趣点等在地图中的相对位置。
一些基于地图的应用提供不同类型的地图视图并且允许用户为应用选择一种视图以用于显示地图。这种类型的视图的实例包括地图视图、卫星视图、混合视图等。对于一些或所有不同类型的地图视图,许多基于地图的应用提供了二维(2D)查看模式、三维(3D)查看模式或这两种查看模式。
发明内容
本发明的一些实施例提供了一种新颖的地图绘制应用(mappingapplication),当地图绘制应用在卫星查看模式中渲染3D视图时,会以动画方式呈现地图的三维(3D)视图。在一些实施例中,当地图绘制应用处于卫星查看模式中时,地图绘制应用使用相机捕获图像(CCI)来渲染地图的3D视图。
一些实施例的地图绘制应用在地图的3D视图中以动画方式呈现不同定义类型的地图要素和/或构建体(例如水体、海岸线、建筑物、树叶等)。一些实施例的地图绘制应用以不同形式以动画方式呈现一些或所有不同定义类型的地图要素和/或构建体。例如,在一些实施例中,地图绘制应用通过使用用于渲染水体和建筑物的不同着色器以不同形式来以动画方式呈现水体和建筑物。
在一些实施例中,地图绘制应用基于在地图绘制应用正在操作的设备处所接收的不同类型的输入(例如触摸输入、手势输入、音频输入、运动输入等)以不同形式来以动画方式呈现定义类型的地图要素和/或构建体。例如,一些实施例的地图绘制应用基于触摸输入以不同于当地图绘制应用基于音频输入、运动输入等以动画方式呈现水体时的方式来以动画方式呈现水体。
上述发明内容旨在用作对本发明的一些实施例的简单介绍。其并非意味着对在本文档中的所公开的所有具有创造性的主题进行介绍或概述。随后的具体实施方式以及在具体实施方式中所参照的附图将进一步描述发明内容中所述的实施例以及其他实施例。因此,为了理解该文档所描述的所有实施例,需要全面查看发明内容、具体实施方式和附图。此外,要求保护的主题不限于发明内容、具体实施方式以及附图中的示例性细节,而是由所附权利要求所限定,这是因为要求保护的主题能够以其他特定形式体现而不脱离本主题的实质。
附图说明
在所附的权利要求中阐述了本发明的新颖特征。然而,出于解释的目的,在以下附图中阐释了本发明的若干实施例。
图1概念性地示出了执行一些实施例的地图绘制应用的设备,该地图绘制应用提供动画化的3D卫星地图视图。
图2概念性地示出了基于触摸输入在3D卫星地图视图中以动画方式呈现水的一些实施例的地图绘制应用的实例。
图3概念性地示出了基于手势输入在3D卫星地图视图中以动画方式呈现水的一些实施例的地图绘制应用的实例。
图4概念性地示出了基于运动输入在3D卫星地图视图中以动画方式呈现水的一些实施例的地图绘制应用的实例。
图5概念性地示出了基于音频输入在3D卫星地图视图中以动画方式呈现水的一些实施例的地图绘制应用的实例。
图6概念性地示出了在3D卫星地图视图中以动画方式呈现树叶的一些实施例的地图绘制应用的实例。
图7概念性地示出了在3D卫星地图视图中以动画方式呈现在建筑物的表面的水的反射并在3D卫星地图视图中以动画方式呈现海岸线的一些实施例的地图绘制应用的实例。
图8概念性地示出了一些实施例的系统的软件架构。
图9概念性地示出了以动画方式呈现3D卫星地图视图的一些实施例的过程。
图10概念性地示出了一些实施例的地图绘制应用的状态图。
图11概念性地示出了由一些实施例的地图绘制应用所执行的以便渲染用于在客户端设备处显示的地图的视图的处理流水线。
图12概念性地示出了根据本发明的一些实施例管理3D卫星地图视图中的动画化的水和建筑物的渲染的渲染控制器。
图13概念性地示出了根据本发明的一些实施例为动画化的3D卫星地图视图渲染建筑物的渲染引擎。
图14概念性地示出了根据本发明的一些实施例为动画化的3D卫星地图视图渲染水的图13中所示的渲染引擎。
图15概念性地示出了根据本发明的一些实施例为动画化的3D卫星地图视图渲染海岸线的图13中所示的渲染引擎。
图16概念性地示出了根据本发明的一些实施例为动画化的3D卫星地图视图渲染树叶的图13中所示的渲染引擎。
图17是移动计算设备的架构的实例。
图18概念性地示出了实现本发明的一些实施例所利用的电子系统的实例。
图19是根据一些实施例的地图服务操作环境。
具体实施方式
在本发明的以下具体实施方式中,提出并描述了本发明的许多细节、实例和实施例。然而,对于本领域的普通技术人员来说将清楚和显而易见的是,本发明并不限于所示出的实施例并且本发明可在没有一些所讨论的具体细节和实例的情况下被实施。
本发明的一些实施例提供了一种新颖的地图绘制应用,当地图绘制应用当处于卫星查看模式中的同时渲染3D视图时,会以动画方式呈现地图的三维(3D)视图。在一些实施例中,当地图绘制应用处于卫星查看模式中时,地图绘制应用使用CCI来渲染地图的3D视图。
一些实施例的地图绘制应用在地图的3D视图中以动画方式呈现不同定义类型的地图要素和/或构建体(例如水体、海岸线、建筑物、树叶等)。一些实施例的地图绘制应用以不同形式以动画方式呈现一些或所有不同定义类型的地图要素和/或构建体。例如,在一些实施例中,地图绘制应用通过使用用于渲染水体和建筑物的不同着色器来以不同形式以动画方式呈现水体和建筑物。
图1概念性地示出了执行一些实施例的地图绘制应用的设备100,该地图绘制应用提供动画化的3D卫星地图视图特征。具体地,图1示出了与地图绘制应用交互的四个不同阶段105-120。
第一阶段105示出了设备100的图形用户界面(GUI)175,该图形用户界面包括任务栏区域125中和GUI 175的页面上的若干应用的若干可选的用户界面(UI)项目(例如图标)。在该阶段105在页面上所显示的可选的UI项目之一是用于调用地图绘制应用的可选的UI项目130。如第一阶段105中所示,用户通过在UI项目130的位置处与设备的显示屏触摸接触来选择UI项目130以便打开地图绘制应用。
第二阶段110示出了打开地图绘制应用之后的设备100。如该阶段中所示,地图绘制应用正在显示地图的视图(也称为地图视图),包括两条交叉道路、两座建筑物以及道路和建筑物后方的水体。地图绘制应用还正在显示一组浮置控件。在该实例中,地图绘制应用在“标准”查看模式中开始,该模式在下文中进行描述。
如图所示,该组浮置控件包括位置控件145、3D控件150和页面卷曲控件155。位置控件145用于过渡到包括设备100的当前位置的地图视图。例如,当选择位置控件145时,一些实施例的地图绘制应用过渡到设备100的当前位置大致位于地图视图的中心(例如,设备100的显示屏的中心)的地图视图。在一些实施例中,当设备100正在移动时,地图绘制应用保持这样的地图视图。一些实施例的地图绘制应用还识别设备100当前指向的方向。在一些实施例中,地图绘制应用使用设备100从GPS卫星接收的全球定位系统(GPS)信号来识别设备100的位置。替代地或结合地,地图绘制应用使用其他方法(例如小区塔三角测量)来计算设备100的当前位置。
3D控件150是用于启用和禁用允许在三维(3D)中沿地图浏览地图或路线的特征的控件。在一些实施例中,地图绘制应用提供3D控件150以便在地图的二维(2D)视图和地图的3D视图之间快速切换。3D控件150还充当(1)地图的当前视图为3D视图的指示器,以及(2)针对给定的地图视图该3D透视图为可用时的指示器(例如,当将地图视图缩小到超过定义的阈值缩放水平时,3D视图可能不可用)。在一些实施例中,地图绘制应用提供3D控件150的对应于这些指示中一些的不同外观。例如,在一些实施例中,当地图的3D视图不可用时,地图绘制应用将3D控件150中的“3D”呈现为显灰色,当3D视图可用但地图处于2D视图中时显黑色,当地图处于3D视图中时显蓝色。当地图绘制应用处于卫星查看模式且地图的3D视图可用时(例如,当地图视图的缩放水平大于定义的阈值缩放水平时),一些实施例的地图绘制应用呈现3D控件150的第四外观(例如,建筑物图像或形状,而不是“3D”字符)。如第二阶段110中所示,启用3D特征(例如,通过选择3D控件150),如在该实例中通过突出显示3D控件150所指出的那样。如此,地图绘制应用就呈现出地图的3D视图。
页面卷曲控件155是允许应用使屏幕上控件的数量最小化的控件,其方式是在可通过选择页面卷曲控件155而进行访问的辅助UI屏幕中放置某些较少使用的选项。通过这种方式,页面卷曲控件155允许地图绘制应用显示地图的更多内容,同时提供不唐突的方式来访问由其他组控件所提供的更多功能。
在一些实施例中,页面卷曲控件155永久显示于地图绘制应用提供的至少一些地图视图上。例如,在一些实施例中,当地图绘制应用处于地图浏览模式、位置搜索模式或路线识别模式中时,地图绘制应用永久显示页面卷曲控件155。一些实施例的地图绘制应用在认为额外功能与当前任务不适合时,不在地图视图中提供页面卷曲控件155。例如,在一些实施例中,当地图绘制应用处于路线导航模式中时,地图绘制应用不呈现页面卷曲控件155。
页面卷曲控件155指示概念性地位于当前视图“后方”或“下方”的另一组控件的位置。当选择页面卷曲控件155时,地图绘制应用呈现“剥离”当前视图的动画以显示示出另一组控件的另一视图。第三阶段115示出了在用户选择(或选择并拖动)页面卷曲控件155且地图绘制应用呈现此类动画之后的地图绘制应用。尽管图1示出了通过选择页面卷曲控件155来呈现另一组控件,但一些实施例的地图绘制应用使用不同的技术来呈现另一组控件。例如,在一些实施例中,当地图绘制应用接收到设备的显示屏上的手势输入(例如,轻扫手势)时,地图绘制应用呈现(例如,通过向设备的显示屏上滑动另一组控件)另一组控件。
如这一阶段所示,一旦地图绘制应用“剥离”第二阶段110中所示的页面,地图绘制应用将呈现若干控件。在选择页面卷曲控件155之后一些实施例的地图绘制应用呈现的控件之间是一组查看模式控件,该组查看模式控件包括用于激活“标准”查看模式的标准查看模式控件160、用于激活混合查看模式的混合查看模式控件165,以及用于激活卫星查看模式的卫星查看模式控件170。
当地图绘制应用处于卫星查看模式中时,一些实施例的地图绘制应用使用CCI来渲染地图视图。在一些实施例中,CCI是由人和/或机器通过操作实际相机(与用于渲染3D模型的视图的虚拟相机截然相反)所捕获的现实世界的图像。CCI包括由卫星上的实际相机所捕获的图像、飞越所捕获的图像(例如,由飞机、航天飞机、直升机、气球和/或用于航空摄影的任何其他设备上的实际相机所捕获的图像)、驶过所捕获的图像(例如,由汽车、卡车、摩托车、公共汽车、自行车、火车和/或在陆上进行操作的任何其他类型的交通工具上的实际相机所捕获的图像)等。在一些实施例中将CCI称为现实世界所捕获的图像。一些实施例的地图绘制应用通过将CCI纹理映射到地图、地图要素和/或地图构建体来渲染卫星地图视图。
在一些实施例中,地图服务基于从现实世界所收集的地理数据来生成表示现实世界的地图的3D模型。地图的3D模型的一些或所有3D基元(例如点、线、多边形、面等)包括映射到现实世界中的对应位置的定位数据。在一些实施例中,当捕获设备(例如实际相机)捕获CCI时,捕获设备还记录捕获设备的地点(例如GPS数据)和位置。
基于用于捕获特定CCI的捕获设备的地点和位置的信息,一些实施例的地图服务识别地图的3D模型中的与特定CCI中的像素和/或像素组相关联的位置。在一些实施例中,地图服务然后基于所识别的位置将特定CCI映射到地图的3D模型。在一些实施例中,将此类映射称为纹理映射。在一些实施例中,地图服务操纵(例如旋转、平移、缩放等)特定CCI以更好地将特定CCI中的要素与地图的3D模型中的对应要素对准。
在一些实施例中,地图绘制应用通过访问(例如经由互联网)上述地图服务并检索表示地图绘制应用从其渲染地图视图的地图的3D模型的一部分的数据(例如,作为卫星地图图块而被存储)使用利用CCI进行纹理化的地图的3D模型来渲染地图视图。在一些实施例中,数据包括表示3D模型的该部分中的地图要素和/或地图构建体的多边形以及地图绘制应用纹理映射到多边形的对应CCI。在一些实施例中,将此类渲染称为在CCI上使用的立体图渲染。在一些实施例中,当地图绘制应用处于卫星查看模式中且在渲染在本专利申请中描述的3D卫星地图视图时,地图绘制应用渲染地图的3D模型的此类地图视图。在名称为“3D Streets”的PCT专利申请PCT/EP2011/054155中描述了利用CCI来生成3D地图的细节。。PCT专利申请PCT/EP2011/054155以引用方式并入本文。
当地图绘制应用处于“标准”查看模式中时,一些实施例的地图绘制应用使用非CCI(例如,用户生成的纹理/图像、机器生成的纹理/图像等)来渲染地图视图。换句话讲,一些此类实施例的地图绘制应用渲染“标准”地图视图而不使用任何CCI。
此外,第三阶段115示出用户正在激活卫星查看模式。具体地,用户通过选择(例如使用手指轻按)卫星查看模式控件170来激活卫星查看模式,如通过突出显示卫星查看模式控件170所示。当地图绘制应用接收到卫星查看模式控件170的选择时,一些实施例的地图绘制应用从在标准查看模式中渲染地图过渡到在卫星查看模式中渲染地图。
第四阶段120示出了在激活卫星查看模式之后显示地图视图的地图绘制应用。如上所述,对于一些实施例的卫星查看模式,将CCI纹理映射到地图、地图要素和/或地图构建体。如此,这一阶段中的建筑物被示为带有窗户和有车道划线的道路。
在一些实施例中,地图绘制应用的动画化的3D卫星地图视图特征在地图视图中以动画方式呈现不同定义类型的地图要素和/或构建体(例如,水体、海岸线、建筑物、树叶等)。地图绘制应用的不同实施例以动画方式呈现任意数量的不同定义类型的地图要素。对于该实例,地图绘制应用通过生成(例如使用用于以动画方式呈现静止水的着色器)水中的纹波的动画来以动画方式呈现被识别为水体(例如海洋、湖泊、河流、水库、海港等)的地图要素。由概念性地表示水中的纹波的水体中的短曲线来示出第四阶段120中的动画。
在本专利申请中所描述的多个实例和实施例示出地图绘制应用的GUI具有图1中所示的一组UI要素和控件,不同组的UI要素和/或控件,或者出于解释和简便的目的没有任何要素和/或控件。本领域的普通技术人员将理解,一些实施例的地图绘制应用GUI可包括用于地图绘制应用的不同形态(例如,地图浏览模式、位置搜索模式、路线识别模式、路线导航模式等)的额外的和/或不同的UI要素和/或控件。例如,当处于地图浏览模式中时,一些实施例的地图绘制应用包括图1中所示的UI要素和控件以及位于设备的显示屏的顶部附近的顶栏,其包括用于请求从起始位置和结束位置沿地图的路线的方向控件、用于在地图中搜索特定地图项目(例如街道、企业、兴趣点等)的位置的搜索字段、用于对地图要素和路线的位置添加书签的书签控件等。
此外,本专利申请中所描述的多个实例和实施例示出了地图浏览模式中的地图绘制应用。在一些实施例中,地图绘制应用包括用于与地图进行交互的若干不同形态(例如,位置搜索模式、路线识别模式、路线导航模式)。一些实施例的应用包括新颖的用户界面(UI)设计,通过使用浮置在内容顶部的最小组的屏幕上控件针对其不同形态的每种形态无缝且连贯地整合该控件以便显示尽可能多的内容。此外,该群组针对当前任务进行调整,当用户在不同形态之间(例如,在浏览、搜索、路由和导航之间)移动时,以动画方式调节其内容。这具有自适应属性的常用要素使得地图绘制应用能够针对不同任务进行优化,同时当正在那些任务之间移动时保持一致的外观和交互模型。
在下面的部分中描述了本发明的若干更详细的实施例。第I部分描述了根据本发明的一些实施例针对动画化的3D卫星地图视图特征的实例使用情况的细节。然后第II部分描述针对一些实施例的动画化的3D卫星地图视图特征的图像处理的细节。接下来,第III部分描述实现本发明的一些实施例所利用的实例电子系统。最后,第IV部分描述本发明的一些实施例在其中进行操作的地图服务操作环境。
I.动画化的3D卫星地图视图的实例使用情况
如上所述,当地图绘制应用处于卫星查看模式中时,一些实施例的地图绘制应用提供在3D卫星地图视图中以动画方式呈现不同定义类型的地图要素和/或构建体的特征。优选地或结合在3D卫星地图视图中以动画方式呈现不同定义类型的地图要素和/或构建体,一些实施例的地图绘制应用基于在地图绘制应用在其上正在操作的设备处所接收的不同类型的输入(例如触摸输入、手势输入、音频输入、运动输入等)来以不同形式以动画方式呈现定义类型的地图要素和/或构建体。
A.水的动画
图2概念性地示出了基于触摸输入在3D卫星地图视图中以动画方式呈现水的一些实施例的地图绘制应用的实例。具体地,图2示出了响应于触摸输入以动画方式呈现水体的四个不同阶段205-220的一些实施例的地图绘制应用的GUI 200。
第一阶段205类似于图1中所示的第四阶段120,不同的是出于解释和简便的目的,未示出由在概念上表示水中的纹波的水体中的短曲线所示出的水体的动画。即,图2的第一阶段205示出了3D卫星地图视图,该3D卫星地图视图包括两条交叉道路、两座建筑物以及道路和建筑物后方的水体。
第二阶段210示出了用户选择水体上的位置。在该实例中,用户通过使用手指轻按地图绘制应用在其上正在操作的设备的触摸屏来选择水体的位置。
第三阶段215示出了用户选择水体位置之后的GUI 200。当地图绘制应用接收到水体的选择时,用于该实例的地图绘制应用(例如,使用以动画方式呈现水波的着色器)生成在由用户所选择的水体的位置处或附近发源的水波的动画。如图所示,在第二阶段210中在由用户所选择的水体位置处或附近示出了若干水波225。
第四阶段220示出了第三阶段215中所示水波动画的累进。对于该实例,地图绘制应用通过以动画方式呈现水波而继续以动画方式呈现第三阶段215中所示出的水波使得水波从由用户所选择的水体位置传播开来。
尽管图2示出了基于单次触摸输入在3D卫星地图视图中以动画方式呈现水的实例,但本领域的普通技术人员将认识到,一些实施例的地图绘制应用针对多次触摸输入而生成水波效应的动画。此外,在一些实施例中,地图绘制应用基于不同类型的触摸输入而生成水波效应和/或其他效应的动画。例如,用户可使用手指来触摸并保持水,同时使用另一个手指来触摸并移动通过水以在水中生成水波效应和/或波浪效应。
图3概念性地示出了基于手势输入在3D卫星地图视图中以动画方式呈现水的一些实施例的地图绘制应用的实例。具体地,图3示出了在响应于手势输入以动画方式呈现水体的四个不同阶段305-320的一些实施例的地图绘制应用的GUI 200。
第一阶段305类似于图1中所示的第四阶段120,不同的是出于解释和简便的目的,未示出由在概念上表示水中的纹波的水体中的短曲线所示出的水体的动画。如此,图3的第一阶段305示出了3D卫星地图视图,该3D卫星地图视图包括两条交叉道路、两座建筑物以及道路和建筑物后方的水体。
第二阶段310示出了用户在地图上执行平移操作。如图所示,在该实例中,用户通过使用手指来触摸地图绘制应用在其上正在操作的设备的触摸屏并沿触摸屏向触摸屏的左侧拖动手指以便向右平移地图,从而对地图进行平移。
第三阶段315示出了当用户在地图上接近完成平移操作时的GUI200。在这一阶段315,用户向右平移地图,因为两条道路和两座建筑物被示为比在第二阶段310中所示的道路和建筑物更向左。
第四阶段320示出了用户在地图上完成平移操作之后的GUI 200。在该实例中,用户通过将手指提升离开设备的触摸屏来完成平移操作。在一些实施例中,当地图绘制应用接收到完成平移操作时,地图绘制应用生成(例如,使用以动画方式呈现水波的着色器)看起来是由地图的平移所导致的水体中的波浪的动画。对于该实例,地图绘制应用生成看起来像是在水体中从右向左滚动的波浪。在第四阶段320中由概念性地表示翻滚波浪的水体中的长曲线示出了此类波浪。
尽管图3示出了基于特定手势输入在3D卫星地图视图中以动画方式呈现水的实例,但本领域的普通技术人员将认识到一些实施例的地图绘制应用针对不同类型的手势输入生成水波效应的动画。例如,在一些实施例中,地图绘制应用响应于用于减小查看地图的缩放水平的捏拉手势、用于增大查看地图的缩放水平的展开手势等来生成水波效应的动画。此外,一些实施例的地图绘制应用基于为执行额外和/或不同类型的地图浏览操作而定义的手势(例如旋转、倾斜、缩放等)来在3D卫星地图视图中以动画方式呈现水。
图4概念性地示出了基于运动输入在3D卫星地图视图中以动画方式呈现水的一些实施例的地图绘制应用的实例。具体地,图4示出了在响应于运动输入而以动画方式呈现水体的三个不同阶段405-415处,显示于地图绘制应用在其上正在操作的设备400上的一些实施例的地图绘制应用的GUI 200。
第一阶段405类似于图1中所示的第四阶段120,不同的是出于解释和简便的目的,未示出由在概念上表示水中的纹波的水体中的短曲线所示出的水体的动画。因此,第一阶段405示出了3D卫星地图视图,该3D卫星地图视图包括两条交叉道路、两座建筑物以及道路和建筑物后方水体。
第二阶段410示出了用户正在移动地图绘制应用在其上正在操作的设备400。如图所示,在该实例中,用户通过使用手指轻按设备400的右侧来移动设备400。
第三阶段415示出了用户已轻按设备400之后的GUI 200。在一些实施例中,当地图绘制应用检测到设备400的移动时(例如,使用设备400的运动传感器,诸如加速度计或陀螺仪),地图绘制应用生成(例如,使用用于以动画方式呈现水波的着色器)看起来是由设备400的移动所导致的水体中的波浪的动画。在该实例中,地图绘制应用生成看起来像是在水体中从右向左滚动的波浪的动画。在第三阶段415中由概念性地表示翻滚波浪的水体中的长曲线示出了这些波浪。
图5概念性地示出了基于音频输入在3D卫星地图视图中以动画方式呈现水的一些实施例的地图绘制应用的实例。具体地,图5示出了在响应于音频输入以动画方式呈现水体的三个不同阶段505-515处,显示于地图绘制应用在其上正在操作的设备500上的一些实施例的地图绘制应用的GUI 200。如图所示,设备500包括用于感测声音的麦克风520。
第一阶段505类似于图1中所示的第四阶段120,不同的是出于解释和简便的目的,未示出由在概念上表示水中的纹波的水体中的短曲线所示出的水体的动画。因此,图5的第一阶段505示出了3D卫星地图视图,该3D卫星地图视图包括两条交叉道路、两座建筑物以及道路和建筑物后方的水体。
第二阶段510示出了用户为麦克风520提供音频输入。如图所示,在该实例中,用户通过向麦克风520讲话而为麦克风520提供音频输入,该音频输入由向麦克风520传出的声波来表示。
第三阶段515示出了用户已为设备500的麦克风520提供音频输入之后的GUI 200。在一些实施例中,当地图绘制应用通过麦克风520检测到声音时,地图绘制应用生成(例如,使用以动画方式呈现水波的着色器)看起来由声音所导致的水体中的波浪的动画。对于该实例,地图绘制应用生成看起来像是在远离麦克风520的方向上在远离岸边的水体中滚动的波浪的动画。在第三阶段515中由概念性地表示翻滚波浪的水体中的长曲线示出这些波浪。
上述附图示出了基于从一些实施例的地图绘制应用在其上正在操作的设备上的一个麦克风检测到的声音在3D卫星地图视图中以动画方式呈现水的实例。本领域的普通技术人员将理解,一些实施例的设备可包括用于检测声音的多个麦克风。在一些实施例中,操作于此类设备上的地图绘制应用基于由不同麦克风检测到的声音来生成波浪效应的相同的或不同的动画。
B.树叶的动画
上述参考图1-5描述的实例示出了在3D卫星地图视图中以动画方式呈现水。图6概念性地示出了在3D卫星地图视图中生成树叶的动画的一些实施例的地图绘制应用的实例。
具体地,图6示出了在3D卫星地图视图中以动画方式呈现树叶的两个不同阶段605-610处,显示于地图绘制应用在其上正在操作的设备500上的一些实施例的地图绘制应用的GUI 600。
第一阶段605示出了显示地图的视图的地图绘制应用的GUI 600。在该实例中,地图视图处于3D卫星查看模式中。即,地图绘制应用处于卫星查看模式中并且地图的视图是3D查看模式,该3D查看模式是可用的(例如,地图视图的缩放水平大于地图的3D视图可用时的定义阈值缩放水平)并被启用。如图所示,3D卫星地图视图包括弯曲的道路和道路右侧的若干棵树。
第二阶段610示出了用户已提供输入以使地图绘制应用在3D卫星地图视图中生成(例如,使用用于以动画方式呈现树叶的着色器)摇动树木的动画之后的GUI 600。地图绘制应用的不同实施例基于不同类型的输入生成摇动树木的动画。例如,在一些实施例中,地图绘制应用基于上文参考图2-图5所述的任何不同类型的输入而生成摇动树木的动画。
尽管图6示出了基于不同类型输入在3D卫星地图视图中以动画方式呈现树叶的一个实例,但本领域的普通技术人员将认识到,一些实施例的地图绘制应用基于不同类型的输入生成树叶的不同动画。优选地或结合基于输入生成树叶的动画,一些实施例的地图绘制应用生成树叶的动画而无需类似于上文参考图1所述的实例的任何输入。
C.其他地图要素/构建体的动画
如上所述,一些实施例的地图绘制应用的动画化的3D卫星地图视图特征在3D卫星地图视图中生成不同定义类型的地图要素和/或构建体的动画。图7概念性地示出了在3D卫星地图视图中以动画方式呈现在建筑物的表面的水的反射并在3D卫星地图视图中以动画方式呈现海岸线的一些实施例的地图绘制应用的实例。具体地,图7示出了显示于地图绘制应用在其上正在操作的设备400上的一些实施例的地图绘制应用的GUI 700。
如图所示,GUI 700示出了包括水体和建筑物705和710的地图的视图。图7类似于上述参考图1所述的第四阶段120之处在于在该实例中地图绘制应用通过生成(例如,使用以动画方式呈现静止水的着色器)水中的纹波的动画来以动画方式呈现被识别为水体的地图要素。图7中的水的动画由概念性地表示水中的纹波的水体中的短曲线类似地示出。图7中所示的水体包括沿邻接陆地的水体边缘的海岸线715。对于该实例,地图绘制应用生成(例如,使用用于以动画方式呈现沿海岸线的波浪的着色器)沿海岸线715向陆地翻滚的波浪的动画。由沿海岸线715的几条虚线表示海岸线715的动画。
在该实例中,建筑物705的表面具有高反射属性(例如,玻璃表面、镜面等),且建筑物710的表面具有低反射属性(例如,砖块表面、混凝土表面等)。如此,该实例中的地图绘制应用生成(例如使用以动画方式呈现建筑物表面上的反射的着色器并将水体和海岸线715作为光源处理)水体中的纹波的反射的动画以及沿建筑物705和710的表面的海岸线715的翻滚的波浪的动画。由于建筑物705的表面的反射属性高于建筑物710表面的反射属性,因此从建筑物705的表面反射的动画大于从建筑物710的表面反射的动画。在该实例中,从建筑物705的反射比从建筑物710的反射更暗以便指示从建筑物705的反射大于从建筑物710的反射。
上述附图示出了在3D卫星地图视图中以动画方式呈现不同类型的地图要素和/或构建体的若干实例。本领域的普通技术人员将认识到,不同实施例的地图绘制应用以动画方式呈现任意数量的额外和/或不同定义类型的地图要素和/或构建体。例如,在一些实施例中,地图绘制应用针对不同定义类型的水体(例如,深水、浅水、海洋、湖泊、河流、水库、海港等)来生成动画。此外,一些实施例的地图绘制应用基于不同条件(例如,基于无输入、不同类型的输入,诸如上文参考图3-图5描述的输入等)针对特定定义类型的地图要素和/或构建体来生成不同的动画。
不同实施例的地图绘制应用使用不同的技术针对不同定义类型的地图要素和/或构建体来生成动画。在一些实施例中,地图绘制应用使用技术以(1)移动表示地图要素的多边形的顶点和/或(2)遮挡多边形的顶点以便以动画方式呈现地图要素。
在一些实施例中,当地图绘制应用通过移动多边形的顶点来生成动画时,地图绘制应用使用着色器(例如顶点着色器)来移动多边形的顶点,这继而又以动画方式呈现映射到多边形的纹理。在一些实施例中使用此类着色器来生成水波(例如上文参考图2所述的水波)、摇动的树木和/或树叶(例如,上文参考图6所述的摇动树木)等。
一些实施例的地图绘制应用基于内插法来移动多边形的顶点。例如,在一些实施例中,地图绘制应用垂直地内插表示树木和/或树叶的多边形顶点以便生成摇动的树木和/或树叶。当使用内插法来移动多边形的顶点时,一些实施例的地图绘制应用使用定义的运动范围来内插顶点以限制顶点的运动以便使执行此类操作的伪影和计算机资源最小化。
为了使用顶点移动技术来生成不同的动画,一些实施例的地图绘制应用以不同形式移动多边形的顶点。例如,在一些实施例中,地图绘制应用通过在垂直方向上(例如向上、向下)移动表示水体的多边形是顶点来生成水体中的水波。当地图绘制应用响应于平移操作来生成水体中的水波时,地图绘制应用在垂直方向和水平方向上(例如向左、向右、向上、向下)移动表示水体的多边形的顶点。
当由内部多边形和外部多边形形成地图要素和/或构建体时,一些实施例的地图绘制应用内插内部多边形的顶点而不内插外部多边形的顶点。例如,在一些实施例中,当地图绘制应用通过移动表示水体的多边形的顶点而以动画方式呈现水体时,地图绘制应用内插除沿邻接陆地的水体周边的多边形之外的所有多边形的顶点。使用树木作为另一个实例,一些实施例的地图绘制应用内插除形成邻接陆地的树木底部的多边形之外所有表示树木的多边形的顶点。
对于顶点着色技术而言,一些实施例的地图绘制应用通过修改(例如,使用纹理着色器)表示地图要素和/或构建体的多边形顶点的彩色属性来以动画方式呈现地图要素和/或构建体。例如,在一些实施例中,地图绘制应用修改表示水体的多边形的顶点的颜色属性以生成水波(例如,图1、图3-图5和图7中所示的水波)。
在一些实施例中,地图绘制应用使用顶点移动技术和顶点着色技术来生成动画。例如,一些实施例的地图绘制应用响应于平移操作通过移动(例如向左、向右、向上、向下)表示水体的多边形的顶点并修改多边形的顶点的颜色属性来生成水体中的水波(例如,上文参考图3所述的水波)。
II.图像处理
在一些实施例中,上文描述的本发明的实例和实施例被实现为运行于特定机器(诸如计算机、手持设备或平板计算设备)上的软件,或存储在机器可读介质中。图8概念性地示出了一些实施例的地图绘制应用800的一种软件架构。在一些实施例中,地图绘制应用800是用于浏览地图、在地图中搜索位置、在地图中识别路线、在地图中导航路线等的独立应用(例如,由Apple Inc.提供的)。
一些实施例的地图绘制应用800被整合到另一个应用中,而其他实施例的地图绘制应用800可实现于操作系统(例如,由Apple Inc.提供的)之内。此外,在一些实施例中,地图绘制应用800被提供作为基于服务器的解决方案的一部分。在一些这样的实施例中,经由瘦客户端提供地图绘制应用800。即,地图绘制应用800运行于服务器上,而用户经由远离服务器的独立的机器来与地图绘制应用800进行交互。在其他这样的实施例中,将地图绘制应用800提供为胖客户端。即,地图绘制应用800从服务器分配到客户机并且在客户机上运行。
如图所示,地图绘制应用800包括地理服务模块805、图像处理器810和输入识别模块815。地图绘制应用800还包括地理服务数据存储装置825、渲染数据存储装置830和渲染地图视图存储装置835。
在一些实施例中,地理服务数据存储装置825存储地理数据(也称为地理数据)。一些实施例的地理数据包括表示现实世界中的对象(例如道路、建筑物、陆地覆盖、树叶和/或植被、水道等)的数据。表示现实世界中对象的数据在一些实施例中包括矢量数据(例如点、线、多边形等)、栅格数据(例如CCI)或矢量和栅格数据两者的组合。渲染数据存储装置830存储用于渲染地图视图的数据。在一些实施例中,渲染数据包括纹理数据、颜色数据、阴影数据、着色器数据和样式表数据,这些数据指定用于渲染地图视图中的不同地图要素和/或构建体的渲染参数(例如,纹理、颜色、阴影、着色器等)。渲染地图视图存储装置835存储已渲染的地图的视图。
在一些实施例中,存储装置825-835实现于一个物理存储装置中,而在其他实施例中,存储装置825-835实现于独立的物理存储装置上。此外,在一些实施例中,跨越若干物理存储装置来实现部分或全部的存储装置825-835。
地理服务模块805负责检索地理数据以用于图像处理器810渲染地图视图。在一些实施例中,地理服务模块805被实现为一组服务,该组服务从图像处理器810接收针对特定组地理数据(例如,针对地图区域的地理数据)的请求。当地理服务模块805从图像处理器810接收到此类请求时,一些实施例的地理服务模块805从用于提供地图信息和其他与地图相关的数据的地图服务820(例如经由网络,诸如互联网)、用于存储已缓存的地理数据的本地高速缓存、用于存储地理数据的本地存储装置或上述地理数据源的任意组合检索所请求的一组地理数据。在一些实施例中可使用额外和/或不同的地理数据源。在一些实施例中,地理服务模块805向图像处理器810传递所请求的一组地理数据,而在其他实施例中,地理服务模块805在地理服务数据存储装置825中存储所请求的一组地理数据以用于图像处理器810随后进行访问。
图像处理器810处理对地图视图的渲染以用于在地图绘制应用800在其上操作的设备的显示屏上进行显示。在一些实施例中,图像处理器810基于从输入识别模块815所接收的信息(例如输入信息,诸如触摸输入、手势输入、运动输入、音频输入等)来渲染地图视图。基于来自输入识别模块815的信息,图像处理器810从地理服务模块805请求地理数据以用于渲染地图视图。一些实施例的图像处理器810(1)基于所请求的地理数据来生成虚拟地图,(2)使用渲染引擎来渲染由虚拟相机所识别的虚拟地图的视图。一旦渲染了地图视图,一些实施例的图像处理器810会在渲染地图视图存储装置835中存储地图视图以用于地图绘制应用800访问并在设备的显示屏上进行显示。
输入识别模块815识别从输入设备驱动程序(图8中未示出)所接收的输入数据的类型并对该输入数据进行解释,该输入设备驱动程序诸如触摸屏设备驱动程序、音频设备驱动程序、运动设备驱动程序等,它们是在设备上运行的操作系统的一部分。在一些实施例中,输入设备驱动程序将来自输入设备和/或输入传感器的信号转换成提供至输入识别模块815的输入数据。
尽管很多特征被描述为由一个模块执行(例如地理服务模块805、图像处理器810等),但本领域的普通技术人员将会认识到可将功能分到多个模块中。类似地,在一些实施例中被描述为由多个不同模块执行的功能可由单个模块执行(例如,地理服务模块810可以是图像处理器810的一部分)。
图9概念性地示出了以动画方式呈现3D卫星地图视图的一些实施例的过程900。在一些实施例中,当地图绘制应用渲染地图视图时(例如,当地图绘制应用处于地图浏览模式、位置搜索模式、路线识别模式、路线导航模式等中时),地图绘制应用(例如,上文参考图8所述的图像处理器810)执行过程900以用于在地图绘制应用在其上正在操作的设备上进行显示。
过程900从接收(在905处)对地图视图的请求开始。接下来,过程900确定(在910处)所请求的是否是针对地图的3D卫星地图视图。在一些实施例中,当(1)地图绘制应用处于卫星查看模式(例如通过选择图1中所示的卫星查看模式控件170来激活卫星查看模式),以及(2)地图绘制应用处于3D查看模式(例如,在所请求的地图视图的缩放水平大于定义的阈值缩放水平且通过选择图1中所示的3D控件150来激活3D查看模式时)时,所请求的是针对3D卫星地图视图。
当过程900确定所请求的不是针对地图的3D卫星地图视图时,过程900渲染(在950处)所请求查看模式中的地图的视图。然后过程900结束。
当过程900确定请求的是针对地图的3D卫星地图视图时,过程900识别(在915处)用于3D卫星地图视图的一组地图图块。在一些实施例中,过程900通过访问用于提供地图信息和其他与地图相关的数据的地图服务、用于存储已缓存的地理数据的本地高速缓存、用于存储地理数据的本地存储装置或上述地图图块源的任意组合来识别该组地图图块。
过程900然后编译(在920处)该组地图图块以生成一组网元并编译一组着色器。在一些实施例中,过程900编译的该组着色器包括针对过程900通过编译该组地图图块生成的网元类型而指定的着色器。例如,一些实施例的过程900在该组生成的网元包括水网元时,编译一组着色器以用于以动画方式呈现水(例如,用于以动画方式呈现静止水的着色器、用于以动画方式呈现水纹的着色器、用于以动画方式呈现水波的着色器等);在该组所生成的网元包括建筑物网元时,编译用于以动画方式呈现建筑物表面的一组着色器(例如,用于以动画方式呈现建筑物表面上的反射的着色器);在该组所生成的网元包括海岸线网元时,编译用于以动画方式呈现海岸线的一组着色器(例如,用于以动画方式呈现沿海岸线的波浪的着色器);在该组所生成的网元包括树叶网元时,编译用于以动画方式呈现树叶的一组着色器(例如,用于以动画方式呈现静止树叶的着色器;用于以动画方式呈现摇动树叶的着色器等);等等。在一些情况下,该组着色器的一个或多个着色器已被编译,因此,不需要被编译。
在编译地图图块和任何必要的着色器之后,过程900(在925处)识别该组所生成的网元中的网元。接下来,过程900确定(在930处)所识别的网元是否是针对以动画方式呈现而定义的网元类型。如上所述,地图绘制应用的动画化的3D卫星地图视图特征在3D卫星地图视图中以动画方式呈现不同定义类型的地图要素和/或构建体。当过程900确定所识别的网元不是针对以动画方式呈现而定义的网元类型时,过程900利用针对网元指定(例如,在样式表中指定)的纹理来渲染(在935处)所识别的网元并且不利用任何着色器。过程900然后继续进行到955。
当过程900确定所识别的网元是针对以动画方式呈现而定义的网元类型时,过程900确定(在940处)所请求是地图视图的缩放水平(也称为细节水平)是否大于阈值缩放水平(例如,缩放水平15、缩放水平18、缩放水平20等)。当过程900确定所请求的地图视图的缩放水平不大于阈值缩放水平时,过程900利用针对网元指定(例如在样式表中指定)的纹理来渲染(在935处)所识别的网元并且不利用任何着色器。过程900然后继续进行到955。
当过程900确定所请求的地图视图的缩放水平大于阈值缩放水平时,过程900利用针对网元指定(例如在样式表中指定)的纹理和针对网元指定的着色器来渲染(在945处)所识别的网元。过程900然后继续进行到955。
最后,过程900确定(在955处)在该组所生成的网元中是否留下任何网元待渲染。当过程900确定有留下的网元待渲染时,过程900返回925以继续渲染该组所生成网元中的任何剩余的网元。否则,过程900结束。
图10概念性地示出了一些实施例的地图绘制应用的状态图1000。如图所示,在地图绘制应用1000基于不同类型的输入在3D卫星地图视图中渲染定义类型的地图要素和/或构建体时,状态图1000包括地图绘制应用1000的状态1005-1035。
在状态1005处,地图绘制应用渲染非卫星地图视图以用于在地图绘制应用1000在其上进行操作的设备上进行显示。在一些实施例中,非卫星地图视图是未使用任何CCI来渲染的地图视图。当地图绘制应用处于路线导航模式或激活非卫星查看模式(例如,通过选择图1中所示的标准查看模式控件160)时,一些实施例的地图绘制应用1000进入状态1005。当处于状态1005中时,当激活卫星查看模式时(例如,通过选择图1中所示的卫星查看模式控件170),地图绘制应用1000过渡到状态1010。
在状态1010处,地图绘制应用1000渲染卫星地图视图以用于在地图绘制应用1000在其上正在操作的设备上进行显示。在一些实施例中,卫星地图视图是通过将CCI纹理映射到地图而渲染的地图视图。当处于状态1010中时,当3D查看模式可用(例如,地图视图的缩放水平大于地图的3D视图可用时的定义阈值缩放水平)且被启用(例如,通过选择图1中所示的3D控件150)时,地图绘制应用1000过渡到状态1015。
在状态1015中,地图绘制应用1000渲染3D卫星地图视图以用于在地图绘制应用1000在其上正在操作的设备上进行显示。在一些实施例中,地图绘制应用在3D卫星地图视图中以动画方式呈现定义类型的地图要素和/或构建体。例如,一些实施例的地图绘制应用1000以类似于上文参考图1所述实例的方式生成水体中的纹波的动画,并以类似于上文参考图7所述的方式生成沿海岸线的波浪的动画和建筑物上的反射的动画。当处于状态1015中时,当地图绘制应用1000接收到任何类型输入时,地图绘制应用1000过渡到状态1020。
在状态1020中,地图绘制应用1000在不同类型的输入之间进行区分并将这些类型的输入转换成不同的3D卫星地图视图渲染操作。在一些实施例中,地图绘制应用1000接收由地图绘制应用1000在其上正在操作的设备的操作系统所转换的输入并识别从操作系统所接收的输入的类型。当处于状态1020中时,地图绘制应用1000基于所识别的输入类型过渡到不同状态。在该实例中,当地图绘制应用1000接收到触摸输入时,地图绘制应用1000过渡到状态1025,当地图绘制应用1000接收到音频输入时,过渡到状态1030,当地图绘制应用1000接收到运动输入时,过渡到状态1035。
当地图绘制应用1000过渡到状态1025时,地图绘制应用1000利用基于触摸输入的着色器在3D卫星地图视图中渲染定义类型的网元。在一些实施例中,地图绘制应用1000基于不同类型的触摸输入以不同形式渲染定义类型的网元。例如,当地图绘制应用1000接收到用于选择水中的位置的轻按输入时,地图绘制应用1000使用类似于上文参考图2所述的实例的用于以动画方式呈现水波的着色器来渲染水,并使用类似于上文参考图6所述的实例的用于以动画方式呈现树叶的着色器来渲染树叶。又如,当地图绘制应用1000接收到用于平移地图的触摸和拖动输入时,地图绘制应用1000使用类似于上文参考图3所述的实例的用于以动画方式呈现水波的着色器来渲染水,并使用类似于上文参考图6所述的实例的用于以动画方式呈现树叶的着色器来渲染树叶。
在地图绘制应用1000继续接收触摸输入的同时,地图绘制应用1000保持在状态1025中,并继续利用针对触摸输入指定的着色器来渲染定义类型的网元。当地图绘制应用1000不再接收触摸输入时,地图绘制应用1000完成利用着色器渲染定义类型的网元并返回到状态1015。
在一些实施例中,当地图绘制应用1000正在接收输入时,以及当地图绘制应用1000不再接收输入并正在完成渲染时,地图绘制应用1000以不同形式利用着色器来渲染定义类型的网元。例如,当地图绘制应用1000停止接收用于平移地图的触摸和拖动输入时,一些实施例的地图绘制应用1000渲染平移操作的减速。当地图的减速停止时,一些此类实施例的地图绘制应用1000以看起来由地图平移停止所导致的方式以动画方式呈现水的移动和树叶摇动。
在地图绘制应用1000过渡到状态1030时,地图绘制应用1000利用基于音频输入的着色器在3D卫星地图视图中渲染定义类型的网元。例如,当地图绘制应用1000接收到音频输入时,地图绘制应用1000使用类似于上文参考图5所述的实例的用于以动画方式呈现水波的着色器来渲染水,并使用类似于上文参考图6所述的实例的用于以动画方式呈现树叶的着色器来渲染树叶。
当地图绘制应用1000继续接收音频输入的同时,地图绘制应用1000保持在状态1030中并继续利用针对音频输入指定的着色器来渲染定义类型的网元。当地图绘制应用1000不再接收音频输入时,地图绘制应用1000完成利用着色器渲染定义类型的网元并返回到状态1015。
当地图绘制应用1000过渡到状态1035时,地图绘制应用1000利用基于地图绘制应用1000在其上正在操作的设备的运动的运动输入的着色器在3D卫星地图视图中渲染定义类型的网元。例如,当地图绘制应用1000接收到运动输入时,地图绘制应用1000使用类似于上文参考图4所述的实例的用于以动画方式呈现水波的着色器来渲染水,并使用类似于上文参考图6所述的实例的用于以动画方式呈现树叶的着色器来渲染树叶。
当地图绘制应用1000继续接收运动输入的同时,地图绘制应用1000保持在状态1035中并继续利用针对运动输入指定的着色器来渲染定义类型的网元。当地图绘制应用1000不再接收运动输入时,地图绘制应用1000完成利用着色器渲染定义类型的网元并返回到状态1015。
图11概念性地示出了由一些实施例的地图绘制应用所执行的处理流水线1100以便渲染地图视图以用于在客户端设备处(例如,在客户端设备的显示屏上)进行显示。如图所示,处理流水线1100包括地理服务模块1101和图像处理器1102。在一些实施例中,地理服务模块1101和图像处理器1102实现图8中所示的对应地理服务模块805和图像处理器810。
地理服务模块1101包括请求器1105、组片解码器1110、组片处理器1150、一组网元构建器1115、组片提供器1120、虚拟相机1188和渲染引擎1125。
一些实施例的组片处理器1150从网元构建器1115接收对地图图块的请求并在转发请求之前执行复用操作。如下所述,网元构建器1115识别构建其相应网元所需的现有地图图块(它们存储在地图服务1103服务器上或存储在执行处理流水线1100的设备上的高速缓存中)。在一些实施例中,地图图块被参照为四叉树的节点。当多个网元构建器请求同一组片时,组片处理器充当复用器。当网元构建器请求组片时,在一些实施例中,组片处理器1150在其队列中存储这些组片。在特定时间段之后或在已请求特定数量的组片之后,组片处理器1150刷新该队列并向组片解码器1110发送组片列表。
组片解码器1110从组片处理器1150接收复用的组片列表1135并处理解压缩的组片1145使其返回到组片处理器1150。在一些实施例中,组片解码器1110首先检查一个或多个本地高速缓存以确定其是否具有在地图绘制应用在其上操作的设备处存储的所请求的组片。在一些实施例中,地理服务模块1101包括存储在非易失性存储器(例如磁盘、闪存存储器等)上的第一组片高速缓存以及存储在易失性存储器(例如随机存取存储器)中的第二组片高速缓存。当组片解码器1110发现高速缓存之一中的组片时,它向组片处理器1150发回这些组片(用于返回到一个或多个请求网元构建器1115)。
当组片解码器1110在其高速缓存中没有组片时,它向请求器1105发送对剩余组片的请求。当接收到压缩格式的这些地图图块1140时,组片解码器对所接收的组片解压缩以生成解压缩组片1145。在一些实施例中,在如上所述生成地图图块之后,地图服务1103还使用编码技术(例如,Lempel-Ziv-Markov链算法(LZMA))来压缩组片。不同的实施例使用不同的编码技术。组片解码器1110向组片处理器1150返回这些解压缩的组片1145,并且在一些情况下,还将它们存储在组片高速缓存之一或两者中。
在一些实施例中,请求器1105从组片解码器1110(其继而从组片处理器1150接收请求)接收对地图图块的请求。在一些实施例中,这些地图图块存储在服务器(例如,用户设备连接到的地图服务1103的服务器)上。请求器发送(从组片解码器1110所接收的)组片列表1136,该组片列表识别地图服务1103所需的组片(并且在组片高速缓存中不可用)。在一些实施例中,请求器利用操作设备的网络连接(例如,Wi-Fi连接、GSM连接等)以通过互联网来联系地图服务1103,从而检索所需的地图图块。当从地图服务1103接收组片(处于压缩形式)时,请求器1105向组片解码器返回压缩的组片1140。
在一些实施例中,请求器1105(或组片处理器1150,或流水线的不同部分)在与初始所请求的组片覆盖相同地理区域的额外缩放水平下识别组片,并将这些组片添加到请求列表1136,使得在不久的将来如果需要的话将有组片可用。此外,一些实施例针对附近的地理区域以相同(或不同缩放水平)自动请求组片,以便在用户平移地图的情况下有组片可用。在一些实施例中,请求器1105、组片解码器1110和组片处理器1150充当处理流水线的独立部分,其中网元构建器1115作为此部分的“客户端”。
由组片提供器1120实例化一些实施例的网元构建器1115(也称为组片源)以便构建不同层的虚拟地图图块。根据地图绘制应用所显示的地图的类型,组片提供器1120可实例化不同数量和不同类型的网元构建器1115。例如,对于卫星查看地图,组片提供器1120可仅实例化一个网元构建器1115,因为一些实施例的卫星地图图块不包含多层数据。在一些实施例中,卫星地图图块包括将CCI(例如由卫星、航天飞机、飞机、直升飞机等拍摄的图像)用作纹理的地图服务1103处所生成的已构建网元。然而,在一些实施例中,可实例化额外的网元构建器以用于生成标签,以当在混合查看模式中渲染地图视图时而叠加在CCI上。对于2D或3D渲染的矢量地图(即,非CCI地图),一些实施例实例化独立的网元构建器1115以为陆地覆盖多边形数据(例如停车场、水体等)、道路、兴趣点标志、点标签(例如用于停车场的标签等)、道路标签、交通(如果显示交通的话)、建筑物、栅格数据(用于特定缩放水平的特定对象),以及其他层数据构建网元,从而并入地图中。
一些实施例的网元构建器1115从组片提供器1120接收“空的”虚拟地图图块1160并向组片提供器1120返回“构建的”虚拟地图图块1165。即,组片提供器1120向网元构建器1115中的每个网元构建器发送一个或多个虚拟地图图块1160。虚拟地图图块1160中的每个网元构建器都表示世界上要绘制网元的区域。当接收到这样的虚拟地图图块1160时,网元构建器1115识别地图服务1103所需的地图图块,并将其列表发送到组片处理器1150。
当从组片处理器1150接收回组片时,网元构建器使用组片中存储的矢量数据来为由虚拟地图图块所描述的区域构建多边形网元。在一些实施例中,网元构建器1115使用若干不同的功能来构建网元。这些功能包括网元发生器1116、三角仪1117、阴影发生器1118和纹理解码器1119。在一些实施例中,这些功能(和额外的网元构建功能)可用于每个网元构建器,其中不同的网元构建器1115使用不同的功能。例如,负责建筑物层的网元构建器可使用网元发生器1116和三角仪1117。此外,可有若干不同类型的阴影发生器可用于网元构建器1115,该阴影发生器包括用于创建动态阴影(随着地图旋转而变化)的第一阴影发生器,以及用于创建栅格图像阴影的第二阴影发生器。
在一些实施例中,网元发生器1116使用组片矢量数据来生成顶点的网元。三角仪1117从网元生成三角形以简化最终的渲染。阴影发生器1118向网元添加阴影(例如,通过利用向渲染器指示绘制阴影或绘制多暗的阴影的值来标记顶点和/或多边形)。纹理解码器1119对纹理信息(例如来自样式表)进行解码,并将纹理信息应用于网元。在不同的实施例中,纹理信息可以表示颜色、图案等,以在渲染时添加到被编码成网元的多边形。
在一些实施例中,可基于样式表数据1155来确定纹理信息。此外,一些实施例还使用该样式表数据1155确定阴影、三角测量和或网元构造数据。使用样式表驱动的渲染能够简单地修改地图输出的很多方面,因为可通过样式表的微小修改来对纹理、颜色等做出改变。因此,可在工作中动态生成纹理。样式表驱动的渲染的实例益处是便于在不同缩放水平或地理区域针对特定类型的对象使用不同的纹理。例如,在低缩放水平(较少细节)下查看时,一些实施例可能为停车场涂上简单的淡绿色。另一方面,当用户放大到更高缩放水平(更多细节)时,样式表指示向停车场区域应用图案(例如,树叶图案)。类似地,可向建筑物、水体、沥青、市区陆地覆盖等添加更高缩放水平的图案。可将这种信息编码到样式表中,然后网元构建器只是基于组片的缩放水平将适当的纹理信息添加到组片网元。
通过标记道路(例如,标记为市区、郊区或农村),地图服务1103能够使得客户端应用针对那些道路附近的陆地覆盖区域使用不同的纹理。此外,可由服务器基于指示陆地覆盖区域所覆盖的区域的种类的度量来更新陆地覆盖区域标签。例如,一些实施例(在地图服务1103一端)确定该区域之内(例如,基于访问地图服务1103的设备的数量)的移动设备的密度并为陆地覆盖生成标签。由客户端设备存储的样式表(在一些实施例中,其可从地图服务1103更新)然后指示如何绘制这些陆地覆盖区域。类似地,不同的样式可用于渲染不同区域的方面(例如,对于陆地覆盖,沙漠、森林、岩石等;对于不同状态的标签使用不同的颜色;或其他这样的区分)。
每个网元构建器1115将其虚拟地图图块1165返回到组片提供器1120,其中组片提供器的网元层已被填充。组片提供器1120从渲染控制器1175接收表示要显示的地图视图(即,从虚拟相机1180可看到的体积)的特定视图(即,体积或视见平截头体)。在一些实施例中,组片提供器执行任何剔除操作(例如,去除过远的表面区域、去除将完全在其他对象后方的对象,等等),然后向网元构建器1115发送虚拟地图图块1160。
在一些实施例中,组片提供器1120在不同的时间(例如,由于完成更多和更少复杂网元需要不同的处理时间,在从组片处理器1150接收必要地图图块之前经过不同的时间,等等)处从不同的网元构建器接收构建的虚拟地图图块1165。一旦虚拟地图图块的所有层已经返回,一些实施例的组片提供器1120将这些层放在一起并向渲染控制器1175释放数据以用于渲染。
在一些实施例中,组片提供器1120可能在网元构建器已返回其数据之前已接收到要构建网元的新相机体积。例如,当用户快速平移或缩放地图时,由网元构建器返回的数据可能已过时。在一些实施例中,组片提供器会丢弃构建的虚拟地图图块层或将它们存储在存储器中。在不同的实施例中,是否丢弃构建的虚拟地图图块取决于是否可能很快需要构建的组片(例如,用户将虚拟相机移动了多少,是否正在运行导航使得应用不太可能显示更旧的数据)以及当前使用中的存储器量。
虚拟相机1180为流水线1100生成体积或表面以进行渲染,并将此信息发送到渲染控制器1175。基于将要渲染地图所源自的具体位置和取向(即,用户“查看”地图所源自的3D空间点),虚拟相机识别视场以实际向组片提供器1120发送。在一些实施例中,当地图绘制应用正在渲染3D透视图以用于导航时,基于用户设备的运动根据每隔一定时间生成新的虚拟相机位置和取向的算法来确定虚拟相机的视场。
在一些实施例中,渲染控制器1175负责管理组片提供器1120、虚拟相机1180和渲染引擎1125。在一些实施例中,实际上可实例化多个组片提供器并且渲染控制器1175将若干虚拟地图图块(例如地图图块和建筑组片)放在一起以创建被移交给渲染引擎1125的场景。
渲染引擎1125负责基于从虚拟相机发送的网元组片1165生成绘图以输出到显示设备。如图所示,一些实施例的渲染引擎1125具有若干子过程。在一些实施例中,每个不同的要素是由不同的子过程渲染的,其中渲染引擎1125处理不同层对象的闭合(例如,在不同的建筑物上方或后方放置标签,在陆地覆盖的上方生成道路等)。图11示出了的水渲染过程1126、建筑物渲染过程1127和树叶渲染过程1128。额外过程的实例包括道路渲染过程、标签渲染过程、栅格交通渲染过程、栅格道路渲染过程、卫星渲染过程、多边形渲染过程、背景栅格渲染过程等。
每种渲染过程都包括一组渲染参数;被示出为水参数1139、建筑物参数1137和树叶参数1138。在一些实施例中,这种数据包括渲染水体、建筑物表面和树叶的方式的信息(例如,着色器信息、要使用的纹理等)。
在一些实施例中,这些组的渲染参数至少部分地由渲染引擎准备操作1170生成。除了其他操作之外,渲染引擎准备操作1170包括着色器编译器1171和纹理加载器1172。着色器编译器1171编译渲染引擎将使用的着色器。例如,当渲染引擎将渲染3D卫星地图视图时着色器编译器1171编译用于在3D卫星地图视图中以动画方式呈现定义类型的网元的着色器。纹理加载器1172加载纹理信息(例如,至渲染参数中)。例如,当渲染引擎将渲染3D卫星地图视图时纹理加载器1172为在3D卫星地图视图中以动画方式呈现定义类型的网元的着色器加载纹理。在一些实施例中,这种纹理信息可以来自样式表数据1155。
现在将描述一些实施例中的渲染流水线1100的操作。基于在特定缩放水平下查看特定地图区域的用户输入,虚拟相机1180指定查看地图区域所源自的位置和取向,并向渲染控制器1175发送这一视见平截头体或体积。渲染控制器1175实例化一个或多个组片提供器。尽管该图中示出了一个组片提供器1120,但一些实施例允许立刻实例化多个组片提供器。例如,一些实施例为建筑物组片和地图图块实例化独立的组片提供器。
组片提供器1120执行生成空虚拟地图图块所必要的任何剔除操作,空虚拟地图图块识别需要构建的网元的地图区域的区域,并向针对所绘地图的不同层(例如道路、陆地覆盖、POI标签等)为实例化的网元构建器1115发送空虚拟地图图块1160。网元构建器1115使用识别地图服务1103服务器上可用的不同组片的从地图服务1103所接收的清单(即,作为四叉树的节点)。网元构建器1115从组片处理器1150请求特定地图图块,组片处理器1150去除任何重复的请求并向组片解码器1110发送组片列表1135。
组片解码器1110确定是否在组片高速缓存(非易失性存储装置高速缓存或易失性存储装置高速缓存)中存储所请求的组片,并向组片处理器1150返回任何此类组片以用于分发到请求网元构建器1115。对于未已在本地存储的任何组片,组片解码器1110向请求器1105发送请求,该请求器1105向远程地图服务1103服务器发送组片列表1136(组片列表1135的消减版本)。请求器1105从地图服务1103接收压缩形式1140的所请求地图图块并转发到组片解码器1110。组片解码器1110对这些组片进行解压缩(例如解码),将它们存储在其一个或多个高速缓存中,并向组片处理器1150发送解压缩的组片1145以用于返回到网元构建器1115。
一旦特定网元构建器1115接收到其地图图块,其便开始使用存储在地图图块中的矢量数据以为从组片提供器1120发送的虚拟地图图块构建网元。在为其地图层构建网元之后,网元构建器1115将构建的虚拟地图图块1165发送回到组片提供器1120。组片提供器1120一直等到其已从各个网元构建器1115接收到所有虚拟地图图块,然后将这些组片层叠在一起并向渲染控制器1175发送完成的虚拟地图图块。渲染控制器1175将从其所有组片提供器返回的组片(例如,虚拟地图图块和虚拟建筑物组片)缝合在一起并将这一场景发送到渲染引擎1125。渲染引擎1125使用地图图块中的信息来绘制用于显示的场景。
图12概念性地示出了根据本发明的一些实施例管理3D卫星地图视图中的动画化的水和建筑物的渲染的渲染控制器1200。在一些实施例中,渲染控制器1200类似于上文参考图11所述的渲染控制器。在该实例中,虚拟相机1225识别地图区域的3D视图并向渲染控制器1200提供3D视图。
当渲染控制器1200从虚拟相机1225接收到3D地图视图以进行渲染时,渲染控制器1200实例化组片提供器1205。组片提供器1205实例化一组水网元构建器1210和一组卫星查看网元构建器1215以用于为3D场景1265构建虚拟地图图块。该组水网元构建器1210请求用于3D场景1265的矢量图块,该3D场景1265包括用于3D场景1265中的水网元(和其他定义类型的地图要素和/或构建体的网元)的多边形数据。该组卫星查看网元构建器1215请求包括3D场景1265的网元和CCI的卫星地图图块。在一些实施例中,渲染控制器1200为构建用于3D场景12645的虚拟地图图块所需的每个不同类型的组片实例化组片提供器。在该实例中,一些此类实施例的渲染控制器1200实例化用于卫星地图图块的组片提供器和用于矢量图块的组片提供器。
一旦渲染控制器1200从组片提供器1205接收到这些虚拟组片,渲染控制器1200就将它们放在一起以形成3D场景1265并向渲染引擎1230提供3D场景1265以用于基于由虚拟相机1225所识别的3D视图来渲染3D场景1265的3D卫星地图视图。
为了在3D卫星地图视图中以动画方式呈现水和建筑物,渲染控制器1200指定渲染引擎1230用于在3D场景1265中渲染水网元和建筑物网元的着色器和纹理。渲染控制器1200基于从输入识别模块1220所接收的不同输入信息(例如,触摸输入信息、音频输入信息、运动输入信息等)来指定不同的着色器和/或纹理。在一些实施例中,输入识别模块1220类似于上文参考图8描述的输入识别模块。在一些实施例中,渲染控制器1200基于从输入识别模块1220所接收的一组不同的输入来指定用于以动画方式呈现定义类型的地图要素或构建体的同一着色器。例如,一些此类实施例的渲染控制器1200基于手势输入、音频输入和运动输入来指定用于以动画方式呈现水波以生成水的动画的着色器。
渲染引擎1230使用用于在3D卫星地图视图中渲染不同的地图要素和/或构建体的不同子过程来渲染3D场景1265的3D卫星地图视图。在该实例中,水渲染过程1235使用水着色器和水纹理来渲染3D卫星地图视图中的水体并且建筑物渲染过程1240使用建筑物着色器和建筑物纹理来渲染3D卫星地图视图中的建筑物。尽管渲染过程1235和1240被示出为与渲染引擎1230独立,但一些实施例的渲染过程1235和1240实际上是渲染引擎1230的一部分。
图13概念性地示出了根据本发明的一些实施例为动画化的3D卫星地图视图渲染建筑物的渲染引擎1300。在一些实施例中,渲染引擎1300实现了上文参考图11和图12所述的渲染引擎。
如图所示,用于处理渲染地图视图的场景渲染管理器1310接收3D场景1305以用于渲染3D卫星地图视图。为了渲染3D场景1305的3D卫星地图视图,场景渲染管理器1310管理3D场景中网元的渲染,并在一旦渲染网元后就生成所渲染3D场景1305的3D卫星地图视图。然后场景渲染管理器1310在渲染地图视图存储装置1335中存储3D卫星地图视图以用于在渲染引擎1300在其上操作的设备显示屏上进行显示。
如图13中所示,场景渲染管理器1310识别3D场景1305中的网元1315并将其传递到网元识别器1320以用于识别网元的网元类型。在该实例中,网元识别器1320将网元1315识别为建筑物网元1325并将其传递到建筑物网元渲染过程1330以用于渲染建筑物网元。建筑物网元渲染过程1330使用针对渲染建筑物网元1325所指定的用于以动画方式呈现建筑物网元1325的建筑物着色器(例如,用于以动画方式呈现建筑物网元表面上的反射的着色器)和纹理(例如,CCI、用户或机器生成的纹理,和/或其他类型的纹理)来渲染建筑物网元1325,并随后将所渲染的建筑物网元1325返回到场景渲染管理器1310。
在一些实施例中,建筑物着色器基于建筑物网元表面的法线来渲染建筑物网元。例如,一些实施例的建筑物着色器使用建筑物网元表面的法线来渲染建筑物表面上的反射和/或折射(例如,图7中所示的建筑物705和710上的反射)。在一些实施例中,建筑物着色器使用全局照明技术来渲染建筑物表面上的这些附近反射和折射。对于建筑物的特定表面,一些这样的实施例的建筑物着色器在渲染建筑物的特定表面上的反射和/或折射时,考虑了光源(例如,图7中所示的水体和海岸线715)以及从场景中的其他反射表面反射的光线。
图14概念性地示出了根据本发明的一些实施例为动画化的3D卫星地图视图渲染水的渲染引擎1300。在该实例中,场景渲染管理器1310正在渲染3D场景1305以便生成3D场景1305的3D卫星地图视图。
如图14中所示,场景渲染管理器1310识别3D场景1305中的网元1415并将其传递到网元识别器1320。在该实例中,网元识别器1320将网元1415识别为水网元1425并将其传递到水网元渲染过程1430以用于渲染水网元。水网元渲染过程1430使用针对渲染水网元1425所指定的用于以动画方式呈现水网元1425的水着色器(例如,用于以动画方式呈现静止水的着色器、用于以动画方式呈现水波的着色器、用于以动画方式呈现水纹的着色器等)和纹理(例如,CCI、用户或机器生成的纹理和/或其他类型的纹理)来渲染水网元1425,然后将所渲染的水网元1425返回到场景渲染管理器1310。在一些实施例中,当使用水着色器来渲染水网元1425时,水着色器忽略水网元1425的法线。用于以动画方式呈现静止水(例如,图1中所示的动画化的水)的一些实施例的水着色器是使用水纹理以动画方式呈现静止水的纹理着色器。
图15概念性地示出了根据本发明的一些实施例为动画化的3D卫星地图视图渲染海岸线的渲染引擎1300。在该实例中,场景渲染管理器1310正在渲染3D场景1305以便生成3D场景1305的3D卫星地图视图。
如图15中所示,场景渲染管理器1310识别3D场景1305中的网元1515并将其传递到网元识别器1320。在该实例中,网元识别器1320将网元1515识别为海岸线网元1525并将其传递到海岸线网元渲染过程1530以用于渲染海岸线网元。海岸线网元渲染过程1530使用针对渲染海岸线网元1525所指定的用于以动画方式呈现海岸线网元1525的海岸线着色器(例如,用于以动画方式呈现沿海岸线网元的波浪的着色器)和纹理(例如,CCI、用户或机器生成的纹理、和/或其他类型的纹理)来渲染海岸线网元1525,然后将所渲染的海岸线网元1525返回到场景渲染管理器1310。在一些实施例中,当使用海岸线着色器来渲染海岸线网元1525时,海岸线着色器忽略海岸线网元1525的法线。
图16概念性地示出了根据本发明的一些实施例为动画化的3D卫星地图视图渲染树叶的渲染引擎1300。在该实例中,场景渲染管理器1310正在渲染3D场景1305以便生成3D场景1305的3D卫星地图视图。
如图16中所示,场景渲染管理器1310识别3D场景1305中的网元1615并将其传递到网元识别器1320。在该实例中,网元识别器1320将网元1615识别为树叶网元1625并将其传递到树叶网元渲染过程1630以用于渲染树叶网元。树叶网元渲染过程1630使用针对渲染树叶网元1625所指定的用于以动画方式呈现树叶网元1625的树叶着色器(例如,用于以动画方式呈现静止树叶的着色器、用于以动画方式呈现摇动树叶的着色器等)和纹理(例如,CCI、用户或机器生成的纹理、和/或其他类型的纹理)来渲染树叶网元1625,然后将渲染的树叶网元1625返回到场景渲染管理器1310。在一些实施例中,当使用树叶着色器来渲染树叶网元1625时,树叶着色器忽略树叶网元1625的法线。一些实施例的树叶着色器是使用树叶纹理以动画方式呈现静止树叶的纹理着色器。在一些实施例中,用于以动画方式呈现静止水的着色器还用于以动画方式呈现静止树叶。
III.电子系统
上文所述的特征和应用中的许多可被实现为被指定为在计算机可读存储介质(也称为计算机可读介质)上记录的指令集的软件过程。当这些指令由一个或多个计算或一个或多个处理单元(例如,一个或多个处理器、处理器的内核或者其他处理单元)执行时,它们使得一个或多个处理单元执行指令中所指示的动作。计算机可读介质的实例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)等。计算机可读介质不包括无线地传送或通过有线连接的载波和电子信号。
在本说明书中,术语“软件”旨在包括驻留在只读存储器中的固件或者存储在磁性存储装置中的应用,所述固件或应用可被读取到存储器中以用于由处理器进行处理。另外,在一些实施例中,可在保留不同的软件发明的同时,将多个软件发明实现为更大程序的子部分。在一些实施例中,还可将多个软件发明实现为单独的程序。最后,共同实施这里所述的软件发明的单独程序的任何组合均在本发明的范围之内。在一些实施例中,当被安装以在一个或多个电子系统上进行操作时,软件程序定义执行和施行软件程序的操作的一个或多个特定机器具体实施。
A.移动设备
一些实施例的地图绘制应用在移动设备上进行操作,该移动设备诸如智能电话(例如)和平板电脑(例如)。图17是此类移动计算设备的架构1700的一个实例。移动计算设备的实例包括智能电话、平板电脑、膝上型电脑等。如图所示,移动计算设备1700包括一个或多个处理单元1705、存储器接口1710以及外围设备接口1715。
外围设备接口1715耦接至各种传感器和子系统,该子系统包括相机子系统1720、一个或多个无线通信子系统1725、音频子系统1730、I/O子系统1735等。外围设备接口1715实现处理单元1705与各种外围设备之间的通信。例如,取向传感器1745(例如,陀螺仪)和加速度传感器1750(例如,加速计)耦接至外围设备接口1715以有利于取向和加速功能。
相机子系统1720耦接至一个或多个光学传感器1740(例如,电荷耦合设备(CCD)光学传感器、互补金属氧化物半导体(CMOS)光学传感器等)。与光学传感器1740耦接的相机子系统1720有利于相机功能,诸如图像和/或视频数据捕获。无线通信子系统1725用于促进通信功能。在一些实施例中,无线通信子系统1725包括射频接收器和发射器以及光学接收器和发射器(图17中未示出)。一些实施例的这些接收器和发射器被实现为在一个或多个通信网络之上进行操作,通信网络诸如GSM网络、Wi-Fi网络、蓝牙网络等。音频子系统1730耦接至扬声器以输出音频(例如,以输出语音导航指令)。另外,音频子系统1730耦接至麦克风以促进支持语音的功能,诸如语音识别(例如,用于搜索)、数字记录等。
I/O子系统1735涉及输入/输出外围设备(诸如显示器、触摸屏等)与处理单元1705的数据总线之间通过外围设备接口1715的传输。I/O子系统1735包括触摸屏控制器1755和其他输入控制器1760以有利于实现输入/输出外围设备与处理单元1705的数据总线之间的传输。如图所示,触摸屏控制器1755耦接至触摸屏1765。触摸屏控制器1755使用任何多点触感技术来检测触摸屏1765上的接触和移动。其他输入控制器1760耦接至其他输入/控制设备,诸如一个或多个按钮。一些实施例包括近触感屏和对应的控制器,该对应的控制器代替触摸交互或除了触摸交互之外可检测近触摸交互。
存储器接口1710耦接至存储器1770。在一些实施例中,存储器1770包括易失性存储器(例如,高速随机存取存储器)、非易失性存储器(例如,闪存存储器)、易失性存储器和非易失性存储器的组合,和/或任何其他类型的存储器。如图17中所示,存储器1770存储操作系统(OS)1772。OS 1772包括用于处理基础系统服务和用于执行硬件相关任务的指令。
存储器1770还包括有利于与一个或多个另外的设备进行通信的通信指令1774;有利于图形用户界面处理的图形用户界面指令1776;有利于与图像相关的处理和功能的图像处理指令1778;有利于与输入相关的(例如,触摸输入)过程和功能的输入处理指令1780;有利于与音频相关的处理和功能的音频处理指令1782;以及有利于与相机相关的处理和功能的相机指令1784。上述指令仅是示例性的并且在一些实施例中存储器1770包括另外的和/或其他的指令。例如,用于智能手机的存储器可包括有利于与手机相关的处理和功能的电话指令。此外,存储器可包括用于地图绘制应用以及其他应用的指令。以上所识别的指令无需实现为独立的软件程序或模块。可在包括在一个或多个信号处理和/或专用集成电路中的硬件和/或软件中,实现移动计算设备的各种功能。
虽然图17中示出的组件被示为单独组件,但是本领域的普通技术人员将认识到,两个或更多个组件可整合到一个或多个集成电路中。此外,两个或更多个组件可由一条或多条通信总线或信号线耦接在一起。另外,虽然许多功能已描述为由一个组件来执行,但是本领域的普通技术人员将认识到,相对于图17所述的功能可分离到两个或更多个集成电路中。
B.计算机系统
图18概念性地示出了实现本发明的一些实施例所利用的电子系统1800的另一个实例。电子系统1800可以为计算机(例如,台式计算机、个人计算机、平板电脑等)、电话、PDA或任何其他种类的电子或计算设备。此类电子系统包括各种类型的计算机可读介质以及用于各种其他类型的计算机可读介质的接口。电子系统1800包括总线1805、一个或多个处理单元1810、图形处理单元(GPU)1815、系统存储器1820、网络1825、只读存储器1830、永久性存储设备1835、输入设备1840以及输出设备1845。
总线1805总体表示可通信地连接电子系统1800的许多内部设备的所有系统、外围设备以及芯片组总线。例如,总线1805可通信地将一个或多个处理单元1810与只读存储器1830、GPU 1815、系统存储器1820以及永久性存储设备1835连接。
一个或多个处理单元1810从这些各种存储器单元检索要执行的指令和要处理的数据以执行本发明的过程。在不同实施例中,一个或多个处理单元可为单处理器或者多核处理器。一些指令被传递至GPU 1815并由该GPU执行。GPU 1815可卸载各种计算指令,或补偿由一个或多个处理单元1810所提供的图像处理。在一些实施例中,可使用CoreImage的内核着色语言来提供此类功能。
只读存储器(ROM)1830存储一个或多个处理单元1810和电子系统的其他模块所需的静态数据和指令。另一方面,永久性存储设备1835是读写存储器设备。此设备是即使当电子系统1800关闭时也存储指令和数据的非易失性存储器单元。本发明的一些实施例将海量存储设备(诸如磁盘或光盘及其对应的磁盘驱动器、集成闪存存储器)用作永久性存储设备1835。
其他实施例将可移除存储设备(诸如软盘、闪存存储器设备等及其对应的驱动器)用作永久性存储设备。与永久性存储设备1835一样,系统存储器1820是读写存储器设备。然而,与存储设备1835不同的是,系统存储器1820是易失性读写存储器,诸如随机存取存储器。系统存储器1820存储处理器在运行时所需的指令和数据中的一些。在一些实施例中,本发明的过程存储在系统存储器1820、永久性存储设备1835和/或只读存储器1830中。一个或多个处理单元1810从这些各种存储器单元检索要执行的指令和要处理的数据以执行一些实施例的过程。
总线1805还连接至输入设备1840和输出设备1845。输入设备1840使得用户能够将信息传递至电子系统并且选择要传递至电子系统的命令。输入设备1840包括字母数字键盘和指向设备(也称为“光标控制设备”)、相机(例如网络相机)、麦克风或用于接收语音命令的类似设备等。输出设备1845显示由电子系统所生成的图像或者其他输出数据。输出设备1845包括打印机和显示设备(诸如阴极射线管(CRT)或液晶显示器(LCD)),以及扬声器或类似的音频输出设备。一些实施例包括充当输入设备和输出设备两者的设备,诸如触摸屏。
最后,如图18中所示,总线1805还通过网络适配器(未示出)将电子系统1800耦接至网络1825。这样,计算机可以是计算机网络(诸如局域网(“LAN”)、广域网(“WAN”)或内联网)的一部分,或者可以是网络的网络(诸如互联网)的一部分。电子系统1800的任何或所有组件均可与本发明一起使用。
一些实施例包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子组件,诸如微处理器、存储装置以及存储器。此类计算机可读介质的一些实例包括RAM、ROM、只读光盘(CD-ROM)、可擦写光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如DVD-ROM、双层DVD-ROM)、各种可擦写/可重写DVD(例如DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如SD卡,mini-SD卡、micro-SD卡等)、磁性和/或固态硬盘驱动器、只读和可擦写盘、超密度光盘、任何其他光学或磁性介质以及软盘。计算机可读介质可存储计算机程序,该计算机程序可由至少一个处理单元来执行并且包括用于执行各种操作的指令集。计算机程序或者计算机代码的实例包括机器代码诸如由编译器所产生的机器代码,以及包括可由计算机、电子组件或微处理器使用解译器执行的更高级别代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但一些实施例由一个或多个集成电路来执行,该一个或多个集成电路诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施例中,此类集成电路执行存储在电路自身上的指令。此外,一些实施例执行存储在可编程逻辑设备(PLD)、ROM或RAM设备中的软件。
如本说明书以及本专利申请的任何权利要求所用,术语“计算机”、“服务器”、“处理器”及“存储器”均是指电子或其他技术设备。这些术语排除人或者人的群组。出于本说明书的目的,术语显示或正在显示意指在电子设备上进行显示。如本说明书以及本专利申请的任何权利要求所用,术语“计算机可读介质”以及“机器可读介质”完全限于以可由计算机读取的形式存储信息的可触摸的有形物体。这些术语排除任何无线信号、有线下载信号以及任何其他短暂信号。
IV.地图服务环境
各种实施例可工作于地图服务操作环境中。图19示出了根据一些实施例的地图服务操作环境。地图服务1930(也称为地图服务)可为通过各种通信方法和协议与地图服务1930进行通信的一个或多个客户端设备1902a-1902c提供地图服务。一些实施例中的地图服务1930提供地图信息和其他与地图相关的数据,诸如二维地图图像数据(例如,利用CCI的道路的鸟瞰图)、三维地图图像数据(例如,具有三维特征,诸如建筑物的可横穿地图)、路线和方向计算(例如,用于行人的两点间的行走路线计算或方向)、实时导航数据(例如,二维或三维的转弯视觉导航数据)、定位数据(例如,客户端设备当前所在位置)和其他地理数据(例如,无线网络覆盖、天气、交通信息或附近的兴趣点)。在各种实施例中,地图服务数据可包括针对不同国家或地区的定位标签。可利用定位标签来在客户端设备上以不同语言呈现地图标签(例如,街道名称、城市名称、兴趣点)。客户端设备1902a-1902c可通过获得地图服务数据来利用这些地图服务。客户端设备1902a-1902c可实施各种技术以处理地图服务数据。客户端设备1902a-1902c然后可向各种实体提供地图服务,该各种实体包括但不限于用户、内部软件或硬件模块,和/或客户端设备1902a-1902c之外的其他系统或设备。
在一些实施例中,地图服务是由分布式计算系统中的一个或多个节点来实现的。可为每个节点分配地图服务的一个或多个服务或组件。可为一些节点分配同一地图服务或地图服务的组件。在一些实施例中,负载均衡节点分配对地图服务之内的其他节点的访问或请求。在一些实施例中,地图服务被实现为单个系统,诸如单个服务器。服务器之内的不同模块或硬件设备可实现由地图服务所提供的各种服务的一个或多个服务。
在一些实施例中,地图服务通过生成各种格式的地图服务数据来提供地图服务。在一些实施例中,一种格式的地图服务数据是地图图像数据。地图图像数据向客户端设备提供图像数据使得客户端设备可处理图像数据(例如,将图像数据渲染和/或显示为二维或三维地图)。地图图像数据,无论是二维还是三维,都可指定一个或多个地图图块。地图图块可以是较大地图图像的一部分。将地图的地图图块组装在一起来生成原始地图。组片可从地图图像数据、路由或导航数据或任何其他地图服务数据生成。在一些实施例中,地图图块是基于栅格的地图图块,其中组片尺寸是大于和小于常用256像素乘256像素组片范围内的任何尺寸。可在任意数量的标准数字图像表示中编码基于栅格的地图图块,该标准数字图像表示包括但不限于位图(.bmp)、图形交换格式(.gif)、联合图像专家组(.jpg、.jpeg等)、便携式网络图形(.png)或标签图像文件格式(.GIFf)。在一些实施例中,地图图块是基于矢量的地图图块,使用矢量图进行编码,该矢量图包括但不限于可缩放矢量图(.svg)或图纸文件(.drw)。一些实施例还包括具有矢量数据和栅格数据的组合的组片。与地图图块相关的元数据或其他信息也可包括在地图图块中或与地图图块一起向客户端设备提供更多地图服务数据。在各种实施例中,对地图图块进行编码以利用各种标准和/或协议进行传输,在以下实例中描述了其中一些。
在各种实施例中,可根据缩放水平从不同分辨率的图像数据构造地图图块。例如,对于低缩放水平(例如,世界或全球视图),地图或图像数据的分辨率不必相对于高缩放水平的分辨率(例如城市或道路水平)高。例如,在全球视图中,可能不需要渲染道路水平伪影,因为在很多情况下,这样的对象小到可忽略不计。
在一些实施例中,地图服务执行各种技术以在编码组片以用于传输之前分析地图图块。这种分析可为客户端设备和地图服务两者优化地图服务性能。在一些实施例中,根据基于矢量的图形技术分析地图图块的复杂性,并利用复合层和非复合层构造地图图块。也可分析地图图块以用于可渲染为图像纹理并依靠图像掩码进行构造的常见的图像数据或图案。在一些实施例中,地图图块中基于栅格的图像数据包含特定的掩码值,其与一个或多个纹理相关联。一些实施例还分析地图图块以用于可能与包含样式标识符的特定地图样式相关联的指定特征。
在一些实施例中,其他地图服务依靠与地图图块分离的各种数据格式来生成地图服务数据。例如,提供位置数据的地图服务可利用符合位置服务协议的数据格式,该位置服务协议诸如但不限于无线电资源位置服务协议(RRLP)、用于码分多址(CDMA)的TIA 801、无线电资源控制(RRC)位置协议或LTE定位协议(LPP)。实施例还可从客户端设备接收或请求识别设备能力或属性(例如,硬件规格或操作系统版本)或通信能力(例如,由无线信号强度或有线或无线网络类型所确定的设备通信带宽)的数据。
地图服务可从内部或外部源获得地图服务数据。例如,可从外部服务或内部系统、存储设备或节点获得地图图像数据中使用的CCI。其他实例可包括但不限于GPS辅助服务器、无线网络覆盖数据库、企业或个人名录、天气数据、政府信息(例如结构更新或道路名称变更)或交通报告。地图服务的一些实施例可更新地图服务数据(例如无线网络覆盖)以用于分析来自客户端设备的进一步的请求。
地图服务的各种实施例响应于客户端设备对地图服务的请求。这些请求可能是对特定地图或地图一部分的请求。一些实施例将针对地图的请求格式化成对特定地图图块的请求。在一些实施例中,请求还为地图服务提供起始位置(或当前位置)和用于路线计算的目的地位置。客户端设备还可请求地图服务渲染信息,诸如地图纹理或样式表。在至少一些实施例中,请求还是实施转弯导航的一系列请求之一。对其他地理数据的请求可包括但不限于当前位置、无线网络覆盖、天气、交通信息或附近的兴趣点。
在一些实施例中,地图服务分析客户端设备请求以优化设备或地图服务操作。例如,地图服务可识别客户端设备的位置在不良通信(例如,弱无线信号)的区域中,并发送更多地图服务数据以在失去通信的事件中供应客户端设备,或者发送指令以利用不同的客户端硬件(例如,取向传感器)或软件(例如,利用无线定位服务或代替基于GPS的服务的Wi-Fi定位)。在另一个实例中,地图服务可分析客户端设备对基于矢量的地图图像数据的请求并确定基于栅格的地图数据根据图像的复杂性更好地优化地图图像数据。其他地图服务的实施例可对客户端设备请求执行类似分析,如此上述实例并非旨在进行限制。
客户端设备(例如,客户端设备1902a-1902c)的各种实施例实现于不同的便携式多功能设备类型上。客户端设备1902a-1902c通过各种通信方法和协议来利用地图服务1930。在一些实施例中,客户端设备1902a-1902c从地图服务1930获得地图服务数据。客户端设备1902a-1902c请求或接收地图服务数据。然后客户端设备1902a-1902c处理地图服务数据(例如,渲染和/或显示数据)并可以向设备上的另一软件或硬件模块或外部设备或系统发送数据。
根据一些实施例,客户端设备实施技术以渲染和/或显示地图。可以各种格式请求或接收这些地图,诸如上述地图图块。客户端设备可在二维或三维视图中渲染地图。客户端设备的一些实施例显示所渲染的地图并允许用户、系统或设备提供输入以操纵地图中的虚拟相机,根据虚拟相机的位置、取向和视场改变地图显示。各种形式和输入设备被实现为操纵虚拟相机。在一些实施例中,触摸输入通过特定的单个或组合手势(例如触摸并保持或滑动)来操纵虚拟相机。其他实施例允许操纵设备的物理位置以操纵虚拟相机。例如,客户端设备可从其当前位置向上倾斜以操纵虚拟相机向上旋转。在另一个实例中,客户端设备可从其当前位置向前倾斜以向前移动虚拟相机。可实现至客户端设备的其他输入设备,包括但不限于听觉输入(例如口头语言)、物理键盘、鼠标和/或操纵杆。
一些实施例向虚拟相机操纵提供了各种视觉反馈,诸如当从二维地图视图过渡到三维地图视图时,显示可能的虚拟相机操纵的动画。一些实施例还允许输入以选择地图特征或对象(例如建筑物)并突出显示该对象,产生维持三维空间的虚拟相机的感知的模糊效应。
在一些实施例中,客户端设备实现导航系统(例如,转弯导航)。导航系统提供可向用户显示的方向或路线信息客户端设备的一些实施例从地图服务请求方向或路线计算。客户端设备可从地图服务接收地图图像数据和路线数据。在一些实施例中,客户端设备实现转弯导航系统,该转弯导航系统基于从地图服务和/或其他位置系统诸如全球定位卫星(GPS)系统所接收的位置信息和路线信息来提供实时路线和方向信息。客户端设备可显示反映客户端设备当前位置的地图图像数据并实时更新地图图像数据。导航系统可提供听觉或视觉方向以追随特定路线。
实施虚拟相机以根据一些实施例来操纵导航地图数据。客户端设备的一些实施例允许设备调节虚拟相机的显示取向以向路线目的地偏置。一些实施例还允许虚拟相机进行导航转弯,从而模拟虚拟相机的惯性运动。
客户端设备实施各种技术以利用来自地图服务的地图服务数据。一些实施例实施一些技术以优化二维和三维地图图像数据的渲染。在一些实施例中,客户端设备在本地存储渲染信息。例如,客户端存储样式表,该样式表为包含样式标识符的图像数据提供渲染方向。在另一个实例中,可存储公共图像纹理以减小从地图服务所传输的地图图像数据的量。不同实施例中的客户端设备实施各种建模技术以渲染二维和三维地图图像数据,其实例包括但不限于:从二维建筑物覆盖占有面积数据生成三维建筑物;对二维和三维地图对象建模以确定客户端设备通信环境;生成模型以确定是否从特定虚拟相机位置观察地图标签;以及生成模型以在地图图像数据之间平滑过渡。在一些实施例中,客户端设备还利用特定技术对地图服务数据进行排序或优先化。例如,客户端设备检测虚拟相机的运动或速度,如果其超过特定阈值,则加载更低细节的图像数据并针对特定区域进行渲染。其他实例包括:将基于矢量的曲线渲染成一系列点,利用地图服务为不良通信的区域预加载地图图像数据,基于显示缩放水平来调整纹理,或根据复杂性来渲染地图图像数据。
在一些实施例中,客户端设备利用从地图图块分离的各种数据格式进行通信。例如,一些客户端设备实施辅助性全球定位卫星(A-GPS)并与利用符合位置服务协议的数据格式的位置服务进行通信,位置服务协议诸如但不限于无线电资源位置服务协议(RRLP)、用于码分多址(CDMA)的TIA 801、无线电资源控制(RRC)位置协议或LTE定位协议(LPP)。客户端设备也可直接接收GPS信号。无论有还是没有来自地图服务的请求,实施例还可发送识别客户端设备能力或属性(例如,硬件规格或操作系统版本)或通信能力(例如,由无线信号强度或有线或无线网络类型所确定的设备通信带宽)的数据。
图19示出了用于地图服务1930和客户端设备1902a-1902c的操作环境1900的一种可能实施例。在一些实施例中,设备1902a、1902b和1902c通过一个或多个有线或无线网络1910进行通信。例如,无线网络1910诸如蜂窝网络可通过使用网关1914来与广域网(WAN)1920诸如互联网进行通信。在一些实施例中,网关1914提供面向分组的移动数据服务,诸如通用分组无线服务(GPRS),或允许无线网络向其他网络诸如广域网1920传输数据的其他移动数据服务。同样,接入设备1912(例如IEEE802.11g无线接入设备)向WAN 1920提供通信接入。设备1902a和1902b可以是能够与地图服务进行通信的任何便携式电子或计算设备。设备1902c可以是能够与地图服务进行通信的任何非便携式电子或计算设备。
在一些实施例中,语音和数据通信都是通过无线网络1910和接入设备1912建立的。例如,设备1902a可通过无线网络1910、网关1914及WAN1920(例如,使用传输控制协议/互联网协议(TCP/IP)或用户数据报协议(UDP))来拨打和接收电话呼叫(例如,使用互联网协议语音技术(VoIP)协议)、发送和接收电子邮件消息(例如,使用简单邮件传输协议(SMTP)或邮局协议3(POP3)),以及检索电子文档和/或数据流,诸如网页、照片和视频。同样,在一些实施例中,设备1902b和1902c可通过接入设备1912及WAN 1920来拨打和接收电话呼叫、发送和接收电子邮件消息,以及检索电子文档。在各种实施例中,任何图示的客户端设备都可利用根据一种或多种安全协议所建立的永久连接来与地图服务1930和/或一个或多个其他服务1950进行通信,安全协议诸如是安全套接字层(SSL)协议或传输层安全(TLS)协议。
设备1902a和1902b还可通过其他方式建立通信。例如,无线设备1902a可通过无线网络1910与其他无线设备(例如,其他设备1902b、移动电话等)进行通信。同样,设备1902a和1902b能够通过使用一个或多个通信子系统诸如来自Bluetooth Special Interest Group,Inc.of Kirkland,Washington的通信来建立对等通信1940(例如,个人区域网)。设备1902c也可以、与设备1902a或1902b(未示出)建立对等通信。也可实现其他通信协议和拓扑结构。设备1902a和1902b也可从GPS卫星1960接收全球定位卫星(GPS)信号。
设备1902a、1902b和1902c能够通过一个或多个有线和/或无线网络1910或1912来与地图服务1930进行通信。例如,地图服务1930能够向渲染设备1902a、1902b和1902c提供地图服务数据。地图服务1930也可与其他服务1950进行通信以获得数据,从而实施地图服务。地图服务1930和其他服务1950也可从GPS卫星1960接收GPS信号。
在各种实施例中,地图服务1930和/或一个或多个其他服务1950被配置为处理来自任何客户端设备的搜索请求。搜索请求可包括但不限于对公司、地址、住宅位置、兴趣点或或它们的某种组的查询。地图服务1930和/或一个或多个其他服务1950可被配置为返回与多种参数相关的结果,该参数包括但不限于输入到地址栏或其他文本输入字段中的位置(包括缩写和/或其他缩略符号)、当前的地图视图(例如,用户可能正在查看多功能设备上的一个位置,同时在另一个位置驻留)、用户的当前位置(例如,在当前地图视图不包括搜索结果的情况下)和当前路线(如果有的话)。在各种实施例中,这些参数可基于不同的优先权权重来影响搜索结果的组成(和/或搜索结果的排序)。在各种实施例中,返回的搜索结果可以是基于特定标准来选择的结果的子集,该特定标准包括但不限于已请求的搜索结果的次数(例如,特定兴趣点)、与搜索结果相关联的质量的测量(例如,最高的用户或编辑评论等级),和/或对搜索结果的评论量(例如,已评论或评价的搜索结果的次数)。
在各种实施例中,地图服务1930和/或一个或多个其他服务1950被配置为提供在客户端设备上诸如在地图绘制应用内显示的自动完成的搜索结果。例如,自动完成的搜索结果可使用户在多功能设备上输入一个或多个搜索关键字时填充屏幕的一部分。在一些情况下,该特征可节省用户时间,因为可在用户输入完整的搜索查询之前显示期望的搜索结果。在各种实施例中,自动完成搜索结果可以是客户端在客户端设备上发现的搜索结果(例如书签或联系人)、由地图服务1930和/或一个或多个其他服务1950在别处(例如从互联网)发现的搜索结果和/或它们的一些组合。像命令的情况那样,可由用户经由语音或通过键入来输入任何搜索查询。多功能设备可以被配置为在本文所述的任何地图显示器内以图形方式显示搜索结果。例如,大头针或其他图形指示符可将搜索结果的位置指定为兴趣点。在各种实施例中,响应于用户选择这些兴趣点之一(例如,触摸选择,诸如轻按),多功能设备被配置为显示关于所选择的兴趣点的额外信息,这些额外信息包括但不限于评价、评论或评论摘录、营业时间、店铺状态(例如,开始营业、永久关闭等),和/或兴趣点的店面图像。在各种实施例中,可在响应于用户选择兴趣点而显示的图形信息卡上显示任何这种信息。
在各种实施例中,地图服务1930和/或一个或多个其他服务1950提供一种或多种反馈机制以从客户端设备1902a-1902c接收反馈。例如,客户端设备可向地图服务1930和/或一个或多个其他服务1950提供对搜索结果的反馈(例如,指定评价、评论、公司暂时或永久关闭、错误等的反馈);可使用这种反馈更新关于兴趣点的信息以便在未来提供更准确或更新的搜索结果。在一些实施例中,地图服务1930和/或一个或多个其他服务1950可向客户端设备提供测试信息(例如A/B测试)以确定哪些搜索结果最佳。例如,客户端设备可在随机时段上接收并向用户呈现两个搜索结果并且允许用户指示最好的结果。客户端设备可向地图服务1930和/或一个或多个其他服务1950报告测试结果以基于所选的测试技术来改善未来的搜索结果,所选的测试技术诸如是A/B测试技术,在该A/B测试技术其中将基线对照样本与多种单一变量测试样本进行比较以便改善结果。
虽然已参考许多特定细节描述了本发明,但本领域的普通技术人员将认识到,可在不脱离本发明的实质的情况下以其他特定形式来体现本发明。此外,图9概念性地示出了一个过程。该过程的特定操作可不以所示出和描述的确切顺序来执行。可不在一个连续系列的操作中执行该特定操作,并且可在不同实施例中执行不同的特定操作。此外,该过程可使用若干子过程来实施,或者作为更大宏过程的一部分而实施。因此,本领域的普通技术人员将理解,本发明不受前述示例性细节的限制,而是将由所附权利要求来限定。
权利要求书(按照条约第19条的修改)
1.一种非暂态机器可读介质,所述非暂态机器可读介质存储用于生成三维(3D)地图的视图的地图绘制应用,所述地图绘制应用包括:
地理数据模块,所述地理数据模块用于识别针对3D地图的一部分的3D地图数据,所述3D地图数据包括(1)所述3D地图的所述部分表示的现实世界的一部分的相机捕获图像(CCI)、(2)所述3D地图的所述部分中被指定利用CCI进行纹理化的第一组地图要素、和(3)所述3D地图的的所述部分中被指定利用非CCI进行纹理化的第二组地图要素;以及
渲染引擎,所述渲染引擎用于通过针对多个地图要素生成效果以便使所述多个地图要素在所述3D地图的视图中以动画方式呈现来渲染所述3D地图的所述视图,所述多个地图要素包括来自所述第一组地图要素中的地图要素和来自所述第二组地图要素中的地图要素,其中所述以动画方式呈现包括使所述多个地图要素的纹理以动画方式呈现,而无需改变针对其渲染所述纹理的所述地图要素的位置。
2.根据权利要求1所述的非暂态机器可读介质,其中所述3D地图数据还包括一组矢量图块,所述一组矢量图块包括针对所述3D地图的所述部分中的所述一组地图要素的多边形数据。
3.根据权利要求1所述的非暂态机器可读介质,其中所述渲染引擎通过将所述CCI纹理映射到所述3D地图的所述部分中的所述第一组地图要素来渲染所述3D地图的所述视图。
4.根据权利要求1所述的非暂态机器可读介质,其中所述渲染引擎通过将着色器应用至所述3D地图的所述部分中的所述多个地图要素来以动画方式呈现所述3D地图的所述部分中的所述多个地图要素。
5.根据权利要求4所述的非暂态机器可读介质,其中所述着色器为纹理着色器。
6.根据权利要求1所述的非暂态机器可读介质,其中所述地理数据模块通过访问提供地图数据的地图服务来识别所述3D地图数据。
7.根据权利要求1所述的非暂态机器可读介质,其中所述第二组地图要素表示一组水体。
8.根据权利要求1所述的非暂态机器可读介质,其中所述地图绘制应用还包括用于接收输入并识别所接收的输入的类型的输入识别模块。
9.根据权利要求8所述的非暂态机器可读介质,其中所述渲染引擎基于所接收的输入的所识别的类型来渲染所述3D地图的所述视图。
10.根据权利要求9所述的非暂态机器可读介质,其中所述渲染引擎通过基于所接收的输入的不同类型将不同的着色器应用至所述3D地图的所述部分中的所述一组地图要素来以动画方式呈现所述3D地图的所述部分中的所述一组地图要素。
11.根据权利要求1所述的非暂态机器可读介质,其中被指定利用CCI进行纹理化的所述第一组地图要素中的至少一个地图要素定位在被指定利用非CCI进行纹理化的所述第二组地图要素中的至少两个地图要素之间。
12.根据权利要求1所述的非暂态机器可读介质,其中被指定利用非CCI进行纹理化的所述第二组地图要素中的至少一个地图要素定位在被指定为利用CCI进行纹理化的所述第一组地图要素中的至少两个地图要素之间。
13.一种非暂态机器可读介质,所述非暂态机器可读介质存储用于由至少一个处理单元在设备上执行的地图绘制应用,所述地图绘制应用包括用于以下操作的指令集:
显示第一可选择用户界面(UI)控件,当所述第一可选择用户界面控件被激活时,指示所述地图绘制应用渲染三维(3D)地图的视图;
显示第二可选择UI控件,当所述第二可选择UI控件被激活时,指示所述地图绘制应用渲染所述3D地图的视图,所述3D地图的视图包括利用所述3D地图表示的现实世界的相机捕获图像(CCI)所指定的第一组地图要素,和利用非CCI所指定的第二组地图要素;以及
当所述第一UI控件和所述第二UI控件被激活时,通过(1)将所述CCI纹理映射到所述3D地图中的第一组地图要素以及(2)移动所述3D地图中的所述第一组地图要素的顶点来渲染所述3D地图的视图,以便使所述第一组地图要素在所述3D地图的所渲染的视图中以动画方式呈现,其中所述第二组地图要素中的所述要素中的至少一个要素定位在所述第一组地图要素中的所述要素中的至少两个要素之间。
14.根据权利要求13所述的非暂态机器可读介质,其中所述设备包括输入传感器,其中所述地图绘制应用还包括用于通过所述输入传感器来接收输入的指令集,其中用于渲染所述3D地图的视图的所述指令集包括用于基于所述输入来移动所述第一组地图要素的所述顶点的指令集。
15.根据权利要求13所述的非暂态机器可读介质,其中用于通过移动所述第一组地图要素的所述顶点来渲染所述3D地图的视图的所述指令集包括用于通过将着色器应用至所述一组地图要素的所述顶点来渲染所述3D地图的视图的指令集。
16.根据权利要求13所述的非暂态机器可读介质,其中所述输入传感器为音频传感器。
17.根据权利要求13所述的非暂态机器可读介质,其中所述输入传感器为运动传感器。
18.根据权利要求13所述的非暂态机器可读介质,其中所述输入传感器为触摸传感器。
19.对于地图绘制应用,一种生成地图的视图的方法,所述方法包括:
接收请求以基于所述地图的三维(3D)视图表示的现实世界的相机捕获图像(CCI)来渲染所述地图的所述3D视图;
在渲染所述3D视图所源自的所述地图的一部分中识别表示所述地图中的一组地图要素的一组网元;以及
通过将非CCI纹理映射到所述一组网元并将一组着色器应用至所述网元来渲染所述地图的所述3D视图以便以动画方式呈现所述一组地图要素,使得所述一组地图要素在所述地图的所述3D视图中以动画方式呈现。
20.根据权利要求19所述的方法,其中所述一组地图要素包括一组水体。
21.根据权利要求20所述的方法,其中所述一组着色器通过忽略所述一组网元中表示所述一组水体的多边形的表面法线来以动画方式呈现所述一组水体。
22.根据权利要求19所述的方法,其中所述一组地图要素包括一组建筑物。
23.根据权利要求22所述的方法,其中所述一组着色器基于所述一组网元中表示所述一组建筑物的多边形的表面法线来以动画方式呈现所述一组建筑物。
24.一种设备,包括:
显示屏;
至少一个处理单元;和
存储装置,所述存储装置存储地图绘制程序,所述地图绘制程序当被所述处理单元执行时,生成三维(3D)地图的视图,所述地图绘制程序包括用于以下操作的指令集:
识别针对3D地图的一部分的3D地图数据,所述3D地图数据包括(1)所述3D地图的所述部分表示的现实世界的一部分的相机捕获图像(CCI),(2)所述3D地图中的被指定为利用CCI进行纹理化的所述部分中的第一组地图要素,和(3)所述3D地图中的被指定为利用非CCI进行纹理化的所述部分中的第二组地图要素;以及
通过生成多个地图要素针对效果以便使所述多个地图要素在所述3D地图的所述视图中以动画方式呈现来渲染所述3D地图的视图,所述多个地图要素包括来自所述第一组地图要素中的地图要素和来自所述第二组地图要素中的地图要素,其中所述以动画方式呈现包括使所述多个地图要素的纹理以动画方式呈现,而无需改变针对其渲染所述纹理的所述地图要素的位置。
25.根据权利要求24所述的设备,其中所述3D地图数据还包括一组矢量图块,所述矢量图块包括针对所述3D地图的所述部分中的所述一组地图要素的多边形数据。
26.根据权利要求25所述的设备,其中用于渲染所述3D地图的所述视图的所述指令集包括用于将所述CCI纹理映射到所述3D地图的所述部分中的所述第一组地图要素的指令集。
27.根据权利要求24所述的设备,其中用于以动画方式呈现所述3D地图的所述部分中的所述多个地图要素的指令集包括用于将着色器应用至所述3D地图的所述部分中的所述一组地图要素的指令集。
28.根据权利要求27所述的设备,其中所述着色器为纹理着色器。
29.根据权利要求24所述的设备,其中用于识别所述3D地图数据的所述指令集包括用于访问提供地图数据的地图服务的指令集。
30.根据权利要求24所述的设备,其中所述第二组地图要素表示一组水体。
31.根据权利要求24所述的设备,还包括输入传感器,其中所述地图绘制程序还包括用于从所述输入传感器接收输入并识别所接收的输入的类型的指令集。
32.根据权利要求29所述的设备,其中用于渲染所述3D地图的所述视图的所述指令集包括用于基于所接收的输入的所识别的类型来渲染所述3D地图的所述视图的指令集。
33.根据权利要求32所述的设备,其中用于以动画方式呈现所述3D地图的所述部分中的所述多个地图要素的指令集包括用于基于所接收的输入的不同类型将不同着色器应用至所述3D地图的所述部分中的所述多个地图要素的指令集。

Claims (33)

1.一种非暂态机器可读介质,所述非暂态机器可读介质存储用于生成三维(3D)地图的视图的地图绘制应用,所述地图绘制应用包括:
地理数据模块,所述地理数据模块用于识别针对3D地图的一部分的3D地图数据,所述3D地图数据包括(1)所述3D地图的所述部分表示的现实世界的一部分的相机捕获图像(CCI)、(2)所述3D地图的所述部分中被指定利用CCI进行纹理化的第一组地图要素、和(3)所述3D地图的所述部分中被指定利用非CCI进行纹理化的第二组地图要素;以及
渲染引擎,所述渲染引擎用于通过针对所述3D地图中的多个地图要素生成效果以便使所述多个地图要素在所述3D地图的视图中以动画方式呈现来渲染所述3D地图的所述视图。
2.根据权利要求1所述的非暂态机器可读介质,其中所述3D地图数据还包括一组矢量图块,所述一组矢量图块包括针对所述3D地图的所述部分中的所述一组地图要素的多边形数据。
3.根据权利要求1所述的非暂态机器可读介质,其中所述图像处理引擎通过将所述CCI纹理映射到所述3D地图的所述部分来渲染所述3D地图的所述视图。
4.根据权利要求1所述的非暂态机器可读介质,其中所述图像处理引擎通过将着色器应用至所述3D地图的所述部分中的所述一组地图要素来以动画方式呈现所述3D地图的所述部分中的所述一组地图要素。
5.根据权利要求4所述的非暂态机器可读介质,其中所述着色器为纹理着色器。
6.根据权利要求1所述的非暂态机器可读介质,其中所述地理数据模块通过访问提供地图数据的地图服务来识别所述3D地图数据。
7.根据权利要求1所述的非暂态机器可读介质,其中所述一组地图要素表示一组水体。
8.根据权利要求1所述的非暂态机器可读介质,其中所述地图绘制应用还包括用于接收输入并识别所接收的输入的类型的输入识别模块。
9.根据权利要求8所述的非暂态机器可读介质,其中所述图像处理引擎基于所接收的输入的被识别的类型来渲染所述3D地图的所述视图。
10.根据权利要求9所述的非暂态机器可读介质,其中所述图像处理引擎通过基于所接收的输入的不同类型将不同的着色器应用至所述3D地图的所述部分中的所述一组地图要素来以动画方式呈现所述3D地图的所述部分中的所述一组地图要素。
11.根据权利要求1所述的非暂态机器可读介质,其中所述多个地图要素包括被指定利用CCI进行纹理化的所述第一组地图要素。
12.根据权利要求1所述的非暂态机器可读介质,其中所述多个地图要素包括所述3D地图的所述部分中被指定利用非CCI进行纹理化的所述第二组地图要素。
13.一种非暂态机器可读介质,所述非暂态机器可读介质存储用于由至少一个处理单元在设备上执行的地图绘制应用,所述地图绘制应用包括用于以下操作的指令集:
显示第一可选择用户界面(UI)控件,当所述第一可选择用户界面控件被激活时,指示所述地图绘制应用渲染三维(3D)地图的视图;
显示第二可选择UI控件,当所述第二可选择UI控件被激活时,指示所述地图绘制应用对利用所述3D地图表示的现实世界的相机捕获图像(CCI)所指定的所述3D地图的视图进行渲染;以及
当所述第一UI控件和所述第二UI控件被激活时,
通过(1)将所述CCI纹理映射到所述3D地图中的一组地图要素以及(2)移动所述3D地图中的所述一组地图要素的顶点来渲染所述3D地图的视图,以便使所述一组地图要素在所述3D地图的所渲染的视图中以动画方式呈现。
14.根据权利要求13所述的非暂态机器可读介质,其中所述设备包括输入传感器,其中所述地图绘制应用还包括用于通过所述输入传感器来接收输入的指令集,其中用于渲染所述3D地图的视图的所述指令集包括用于基于所述输入来移动所述一组地图要素的所述顶点的指令集。
15.根据权利要求14所述的非暂态机器可读介质,
其中用于通过移动所述一组地图要素的所述顶点来渲染所述3D地图的视图的所述指令集包括用于通过将着色器应用至所述一组地图要素的所述顶点来渲染所述3D地图的视图的指令集。
16.根据权利要求14所述的非暂态机器可读介质,其中所述输入传感器为音频传感器。
17.根据权利要求14所述的非暂态机器可读介质,其中所述输入传感器为运动传感器。
18.根据权利要求14所述的非暂态机器可读介质,其中所述输入传感器为触摸传感器。
19.一种用于地图绘制应用的生成地图的视图的方法,所述方法包括:
接收请求以基于所述地图的三维(3D)视图表示的现实世界的相机捕获图像(CCI)来渲染所述地图的所述3D视图;
在渲染所述3D视图所源自的所述地图的一部分中识别表示所述地图中的一组地图要素的一组网元;以及
通过将非CCI纹理映射到所述一组网元并将一组着色器应用至所述网元来渲染所述地图的所述3D视图以便以动画方式呈现所述一组地图要素,使得所述一组地图要素在所述地图的所述3D视图中以动画方式呈现。
20.根据权利要求19所述的方法,其中所述一组地图要素包括一组水体。
21.根据权利要求20所述的方法,其中所述一组着色器通过忽略所述一组网元中表示所述一组水体的多边形的表面法线来以动画方式呈现所述一组水体。
22.根据权利要求19所述的方法,其中所述一组地图要素包括一组建筑物。
23.根据权利要求22所述的方法,其中所述一组着色器基于所述一组网元中表示所述一组建筑物的多边形的表面法线来以动画方式呈现所述一组建筑物。
24.一种设备,包括:
显示屏;
至少一个处理单元;和
存储装置,所述存储装置存储地图绘制程序,所述地图绘制程序当被所述处理单元执行时,生成三维(3D)地图的视图,所述地图绘制程序包括用于以下操作的指令集:
识别针对3D地图的一部分的3D地图数据,所述3D地图数据包括(1)所述3D地图的所述部分表示的现实世界的一部分的相机捕获图像(CCI)、(2)所述3D地图的所述部分中被指定利用CCI进行纹理化的第一组地图要素、和(3)所述3D地图的所述部分中被指定利用非CCI进行纹理化的第二组地图要素;以及
通过针对所述3D地图中的多个地图要素生成效果以便使所述多个地图要素在所述3D地图的视图中以动画方式呈现来渲染所述3D地图的所述视图。
25.根据权利要求24所述的设备,其中所述3D地图数据还包括一组矢量图块,所述矢量图块包括针对所述3D地图的所述部分中的所述一组地图要素的多边形数据。
26.根据权利要求25所述的设备,其中用于渲染所述3D地图的所述视图的所述指令集包括用于将所述CCI纹理映射到所述3D地图的所述部分的指令集。
27.根据权利要求24所述的设备,其中用于以动画方式呈现所述3D地图的所述部分中的所述一组地图要素的所述指令集包括用于将着色器应用至所述3D地图的所述部分中的所述一组地图要素的指令集。
28.根据权利要求27所述的设备,其中所述着色器为纹理着色器。
29.根据权利要求24所述的设备,其中用于识别所述3D地图数据的所述指令集包括用于访问提供地图数据的地图服务的指令集。
30.根据权利要求24所述的设备,其中所述一组地图要素表示一组水体。
31.根据权利要求24所述的设备,还包括输入传感器,其中所述地图绘制程序还包括用于从所述输入传感器接收输入并识别所接收的输入的类型的指令集。
32.根据权利要求29所述的设备,其中用于渲染所述3D地图的所述视图的所述指令集包括用于基于所接收的输入的被识别的类型来渲染所述3D地图的所述视图的指令集。
33.根据权利要求32所述的设备,其中用于以动画方式呈现所述3D地图的所述部分中的所述一组地图要素的所述指令集包括用于基于所接收的输入的不同类型将不同着色器应用至所述3D地图的所述部分中的所述一组地图要素的指令集。
CN201380028115.5A 2012-06-06 2013-05-31 非静态3d地图视图 Active CN104335248B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261656043P 2012-06-06 2012-06-06
US201261656032P 2012-06-06 2012-06-06
US61/656,032 2012-06-06
US61/656,043 2012-06-06
US13/783,201 2013-03-01
US13/783,201 US9147286B2 (en) 2012-06-06 2013-03-01 Non-static 3D map views
PCT/US2013/043803 WO2013184534A2 (en) 2012-06-06 2013-05-31 Non-static 3d map views

Publications (2)

Publication Number Publication Date
CN104335248A true CN104335248A (zh) 2015-02-04
CN104335248B CN104335248B (zh) 2018-01-12

Family

ID=48833044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380028115.5A Active CN104335248B (zh) 2012-06-06 2013-05-31 非静态3d地图视图

Country Status (5)

Country Link
US (2) US9147286B2 (zh)
EP (1) EP2859533A2 (zh)
KR (1) KR101707095B1 (zh)
CN (1) CN104335248B (zh)
WO (1) WO2013184534A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649453A (zh) * 2016-09-22 2017-05-10 上海市数字证书认证中心有限公司 一种企业信用查询与展示的方法及系统
CN107038744A (zh) * 2016-02-01 2017-08-11 想象技术有限公司 截锥体渲染
CN109146954A (zh) * 2017-06-19 2019-01-04 苹果公司 用于与所显示的地图进行交互的增强现实界面
CN109937414A (zh) * 2016-11-04 2019-06-25 鹰图公司 用于web地图图块服务的特征管理
CN110909089A (zh) * 2018-09-17 2020-03-24 上海擎感智能科技有限公司 一种地图显示方法、装置、电子终端及介质
CN111724488A (zh) * 2019-06-25 2020-09-29 腾讯科技(深圳)有限公司 地图场景绘制方法、装置、可读存储介质和计算机设备
US11393174B2 (en) 2017-09-29 2022-07-19 Apple Inc. Cooperative augmented reality map interface

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9123178B2 (en) * 2012-02-10 2015-09-01 Google Inc. Updating map tiles
US9202311B2 (en) * 2012-02-10 2015-12-01 Google Inc. Accessing map tiles
US9482296B2 (en) 2012-06-05 2016-11-01 Apple Inc. Rendering road signs during navigation
US8965696B2 (en) 2012-06-05 2015-02-24 Apple Inc. Providing navigation instructions while operating navigation application in background
US9111380B2 (en) 2012-06-05 2015-08-18 Apple Inc. Rendering maps
US10156455B2 (en) 2012-06-05 2018-12-18 Apple Inc. Context-aware voice guidance
US9886794B2 (en) 2012-06-05 2018-02-06 Apple Inc. Problem reporting in maps
US9418672B2 (en) 2012-06-05 2016-08-16 Apple Inc. Navigation application with adaptive instruction text
US9147286B2 (en) 2012-06-06 2015-09-29 Apple Inc. Non-static 3D map views
US10082949B2 (en) * 2013-01-17 2018-09-25 Samsung Electronics Co., Ltd. Apparatus and method for application peel
CN103116444B (zh) * 2013-02-07 2016-05-11 腾讯科技(深圳)有限公司 电子地图控制方法及电子地图装置
US9341478B1 (en) * 2013-02-26 2016-05-17 Rockwell Collins, Inc. Surface information display inhibiting system, device, and method
US20150198738A1 (en) * 2013-08-20 2015-07-16 Raghav Gupta Virtual meterologist based on weather forecasting system and method
US20150285952A1 (en) * 2013-08-20 2015-10-08 GeoTerrestrial, Inc. dba WeatherSphere Weather forecasting system and method
US10027753B2 (en) * 2013-10-15 2018-07-17 Microsoft Technology Licensing, Llc Cloud service hosting on client device
RU2014117561A (ru) * 2014-04-30 2015-11-10 Общество С Ограниченной Ответственностью "Яндекс" Система (варианты ) и способ ( варианты ) отображения анимации карты
CN105635707A (zh) * 2014-11-06 2016-06-01 福州瑞芯微电子股份有限公司 一种图像生成方法和装置
US10373343B1 (en) * 2015-05-28 2019-08-06 Certainteed Corporation System for visualization of a building material
EP4134626A1 (en) * 2017-06-02 2023-02-15 Apple Inc. Venues map application and system
KR102053659B1 (ko) * 2017-09-13 2019-12-09 (주)다비오 기계학습과 이미지 프로세싱을 이용한 지도 제작 장치
EP3547165B1 (en) * 2018-03-26 2023-06-07 Rosemount Aerospace Limited Image tile request service
US10489954B1 (en) * 2018-05-23 2019-11-26 Mapbox, Inc. Efficient duplicate label handling
US11195324B1 (en) 2018-08-14 2021-12-07 Certainteed Llc Systems and methods for visualization of building structures
US11244499B2 (en) 2018-11-12 2022-02-08 Nintendo Co., Ltd. Information processing apparatus, non-transitory computer-readable storage medium storing information processing program, information processing system, and information processing method
CN111524446B (zh) * 2019-02-01 2021-11-12 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及可读存储介质
US11048376B2 (en) * 2019-05-15 2021-06-29 Microsoft Technology Licensing, Llc Text editing system for 3D environment
US11164395B2 (en) 2019-05-15 2021-11-02 Microsoft Technology Licensing, Llc Structure switching in a three-dimensional environment
US11287947B2 (en) 2019-05-15 2022-03-29 Microsoft Technology Licensing, Llc Contextual input in a three-dimensional environment
US11042961B2 (en) * 2019-06-17 2021-06-22 Risk Management Solutions, Inc. Spatial processing for map geometry simplification
CN113134235A (zh) * 2020-01-17 2021-07-20 腾讯科技(深圳)有限公司 地图元素添加方法、装置、终端及存储介质
TWI764635B (zh) * 2021-03-22 2022-05-11 江俊昇 具被遮蔽區域地面模型建立之方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030137515A1 (en) * 2002-01-22 2003-07-24 3Dme Inc. Apparatus and method for efficient animation of believable speaking 3D characters in real time
WO2006028067A1 (ja) * 2004-09-07 2006-03-16 Cad Center Corp. 三次元地図配信サーバ装置、クライアント端末装置および三次元地図配信システム
CN101109648A (zh) * 2007-08-22 2008-01-23 广东瑞图万方科技有限公司 导航电子地图生成方法
US20080198158A1 (en) * 2007-02-16 2008-08-21 Hitachi, Ltd. 3D map display system, 3D map display method and display program
DE102007030226A1 (de) * 2007-06-29 2009-01-08 Robert Bosch Gmbh Kameragestütztes Navigationssystem und Verfahren zu seinem Betrieb
US20110130949A1 (en) * 2009-12-01 2011-06-02 Nokia Corporation Method and apparatus for transforming three-dimensional map objects to present navigation information

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69130549T2 (de) 1990-06-11 1999-05-27 Hitachi Ltd Vorrichtung zur Erzeugung eines Objektbewegungsweges
JP3745802B2 (ja) * 1995-10-13 2006-02-15 株式会社日立製作所 画像生成/表示装置
JPH09292830A (ja) 1996-04-25 1997-11-11 Hitachi Ltd 電子地図表示方法及び電子地図表示装置
JP4104670B2 (ja) 1997-05-09 2008-06-18 株式会社ザナヴィ・インフォマティクス 地図表示装置
DE69836383T2 (de) * 1997-08-29 2007-10-11 Kabushiki Kaisha Sega Doing Business As Sega Corp. Bildverarbeitungssystem und -verfahren
US6496189B1 (en) 1997-09-29 2002-12-17 Skyline Software Systems Ltd. Remote landscape display and pilot training
US6163269A (en) 1998-05-05 2000-12-19 Magellan Dis, Inc. Navigation system with anti-alias map display
US20030158786A1 (en) 1999-02-26 2003-08-21 Skyline Software Systems, Inc. Sending three-dimensional images over a network
WO2003044720A1 (en) * 2001-11-15 2003-05-30 Nintendo Software Technology Corporation System and method of simulating and imaging realistic water surface
JP2004271901A (ja) 2003-03-07 2004-09-30 Matsushita Electric Ind Co Ltd 地図表示装置
JP4138574B2 (ja) 2003-05-21 2008-08-27 株式会社日立製作所 カーナビゲーション装置
JP2006514302A (ja) 2003-07-16 2006-04-27 ハーマン ベッカー オートモーティブ システムズ ゲーエムベーハー ナビゲーション装置への特定経路情報の伝送
US7373244B2 (en) 2004-04-20 2008-05-13 Keith Kreft Information mapping approaches
JP4319156B2 (ja) * 2005-03-02 2009-08-26 任天堂株式会社 情報処理プログラムおよび情報処理装置
US7765055B2 (en) 2005-04-18 2010-07-27 Traffic.Com, Inc. Data-driven traffic views with the view based on a user-selected object of interest
US10198521B2 (en) 2005-06-27 2019-02-05 Google Llc Processing ambiguous search requests in a geographic information system
JP4647514B2 (ja) 2006-02-17 2011-03-09 株式会社日立ソリューションズ 航空画像処理装置および航空画像処理方法
KR100821503B1 (ko) 2006-11-08 2008-04-14 팅크웨어(주) 차량 항법 시스템에서의 동적 디스플레이 모드 변경 방법및 그 장치
US8411087B2 (en) * 2008-02-28 2013-04-02 Microsoft Corporation Non-linear beam tracing for computer graphics
US8237791B2 (en) * 2008-03-19 2012-08-07 Microsoft Corporation Visualizing camera feeds on a map
KR101085390B1 (ko) 2008-04-30 2011-11-21 주식회사 코아로직 3d 네비게이션을 위한 영상표현 방법, 장치 및 그 장치를포함한 모바일 장치
US8311287B2 (en) 2008-09-25 2012-11-13 Microsoft Corporation Validation and correction of map data using oblique images
US8493408B2 (en) 2008-11-19 2013-07-23 Apple Inc. Techniques for manipulating panoramas
US8335675B1 (en) * 2009-02-27 2012-12-18 Adobe Systems Incorporated Realistic real-time simulation of natural media paints
US8933960B2 (en) * 2009-08-14 2015-01-13 Apple Inc. Image alteration techniques
US9466127B2 (en) * 2010-09-30 2016-10-11 Apple Inc. Image alteration techniques
US8970592B1 (en) * 2011-04-19 2015-03-03 Lucasfilm Entertainment Company LLC Simulating an arbitrary number of particles
US8675049B2 (en) 2011-06-09 2014-03-18 Microsoft Corporation Navigation model to render centered objects using images
JP5724110B2 (ja) * 2011-07-07 2015-05-27 株式会社日立製作所 経路作成システム、経路作成方法及びプログラム
US8890863B1 (en) * 2011-08-12 2014-11-18 Google Inc. Automatic method for photo texturing geolocated 3-D models from geolocated imagery
US8774470B1 (en) * 2012-04-03 2014-07-08 Google Inc. Processing a satellite image of a region to determine a terrain boundary included therein
US9147286B2 (en) * 2012-06-06 2015-09-29 Apple Inc. Non-static 3D map views
KR102109054B1 (ko) * 2013-04-26 2020-05-28 삼성전자주식회사 애니메이션 효과를 제공하는 사용자 단말 장치 및 그 디스플레이 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030137515A1 (en) * 2002-01-22 2003-07-24 3Dme Inc. Apparatus and method for efficient animation of believable speaking 3D characters in real time
WO2006028067A1 (ja) * 2004-09-07 2006-03-16 Cad Center Corp. 三次元地図配信サーバ装置、クライアント端末装置および三次元地図配信システム
US20080198158A1 (en) * 2007-02-16 2008-08-21 Hitachi, Ltd. 3D map display system, 3D map display method and display program
DE102007030226A1 (de) * 2007-06-29 2009-01-08 Robert Bosch Gmbh Kameragestütztes Navigationssystem und Verfahren zu seinem Betrieb
CN101109648A (zh) * 2007-08-22 2008-01-23 广东瑞图万方科技有限公司 导航电子地图生成方法
US20110130949A1 (en) * 2009-12-01 2011-06-02 Nokia Corporation Method and apparatus for transforming three-dimensional map objects to present navigation information

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038744A (zh) * 2016-02-01 2017-08-11 想象技术有限公司 截锥体渲染
CN107038744B (zh) * 2016-02-01 2023-08-08 想象技术有限公司 图形处理系统、图形处理方法、非暂时性计算机可读存储介质
US11587290B2 (en) 2016-02-01 2023-02-21 Imagination Technologies Limited Frustum rendering in computer graphics
CN106649453A (zh) * 2016-09-22 2017-05-10 上海市数字证书认证中心有限公司 一种企业信用查询与展示的方法及系统
CN109937414B (zh) * 2016-11-04 2022-12-13 鹰图公司 通过web地图图块服务来确保特征的更新显示的方法和介质
CN109937414A (zh) * 2016-11-04 2019-06-25 鹰图公司 用于web地图图块服务的特征管理
CN109146954B (zh) * 2017-06-19 2022-08-30 苹果公司 用于与所显示的地图进行交互的增强现实界面
CN109146954A (zh) * 2017-06-19 2019-01-04 苹果公司 用于与所显示的地图进行交互的增强现实界面
US11393174B2 (en) 2017-09-29 2022-07-19 Apple Inc. Cooperative augmented reality map interface
US11922588B2 (en) 2017-09-29 2024-03-05 Apple Inc. Cooperative augmented reality map interface
CN110909089A (zh) * 2018-09-17 2020-03-24 上海擎感智能科技有限公司 一种地图显示方法、装置、电子终端及介质
CN111724488A (zh) * 2019-06-25 2020-09-29 腾讯科技(深圳)有限公司 地图场景绘制方法、装置、可读存储介质和计算机设备
CN111724488B (zh) * 2019-06-25 2022-09-09 腾讯科技(深圳)有限公司 地图场景绘制方法、装置、可读存储介质和计算机设备

Also Published As

Publication number Publication date
US20160055669A1 (en) 2016-02-25
US9147286B2 (en) 2015-09-29
EP2859533A2 (en) 2015-04-15
WO2013184534A4 (en) 2014-03-13
US20130328871A1 (en) 2013-12-12
KR101707095B1 (ko) 2017-02-15
WO2013184534A3 (en) 2014-01-30
WO2013184534A2 (en) 2013-12-12
AU2013271880A1 (en) 2014-12-18
CN104335248B (zh) 2018-01-12
KR20150007324A (ko) 2015-01-20

Similar Documents

Publication Publication Date Title
CN104335248A (zh) 非静态3d地图视图
US11410382B2 (en) Representing traffic along a route
US20230245413A1 (en) Intelligently placing labels
AU2016203177B2 (en) Navigation application
US10318104B2 (en) Navigation application with adaptive instruction text
US9235906B2 (en) Scalable processing for associating geometries with map tiles
US9418466B2 (en) Geospatial representation of data-less map areas
US9146125B2 (en) Navigation application with adaptive display of graphical directional indicators
US8880336B2 (en) 3D navigation
US10019850B2 (en) Adjusting location indicator in 3D maps
US20140071119A1 (en) Displaying 3D Objects in a 3D Map Presentation
AU2013271880B2 (en) Non-static 3D map views
Bartie Advances in visibility modelling in urban environments to support location based services
EP4235634A2 (en) Navigation application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant