背景技术:
互联网促进全球用户之间的信息交换和交易。这种信息交换使得数据提供者能够将数据提供至各种用户。互联网上所提供的信息的示例是交互式地图,该交互式地图使得用户能够搜索和查看特定地区的地图。由于这些地图用户界面可以包括大量信息并且可以通过使用许多不同的脚本、画布、和图形来生成,所以对地图进行渲染可能占用大量资源并且需要一些时间来在客户端设备处进行渲染。
技术实现要素:
本说明书描述了与降低在传送和呈现地图用户界面中的时延有关的技术。
一般而言,本说明书所描述的主题的一个创新方面可以实施为方法,该方法包括以下动作:从客户端设备接收对呈现交互式地图用户界面的请求,该交互式地图用户界面描绘(i)特定地理区域和(ii)与特定区域的多个不同子区域的在线账户有关的数据;由一个或者多个服务器使用地图服务对特定区域的地图进行渲染,该渲染包括生成特定区域的画布并且加载用于生成地图的多个编程元素和图形元素;由一个或者多个服务器基于渲染的地图来生成表示渲染的地图的图像的图像文件;至少基于图像所描绘的视觉边界来检测在图像内的一个或者多个子区域;为图像内的每个不同的子区域指派不同的视觉特性;生成电子索引,该电子索引将图像内的每个位置映射到包括该位置的对应子区域;以及由一个或者多个服务器配置客户端设备的用户界面以:(i)呈现图像,其中不同子区域中的每个不同子区域根据与该不同子区域相对应的不同视觉特性来呈现;以及(ii)当客户端设备检测到与图像的至少一个给定子区域的用户交互时,呈现与该给定子区域有关的账户数据。该方面的其它实施例包括被配置为执行编码在计算机存储设备上的该方法的动作的对应的系统、装置、和计算机程序。
这些实施例和其它实施例均可以可选地包括以下特征中的一个或者多个。在一些方面中,每个子区域的视觉特性包括指派给子区域并且被呈现在图像中的子区域内的特定颜色。
图像文件可以通过使用比生成画布所需的计算资源少的计算资源来进行渲染。一些方面可以包括:通过使用压缩技术来减小图像文件的数据大小,该压缩技术包括:为图像的每个子区域指派特定红、绿、蓝(rgb)颜色,该图像的子区域以特定红、绿、蓝(rgb)颜色来呈现;以及在所述图像文件中针对每个特定子区域存储子区域的rgb颜色和指定特定子区域在图像内的位置的数据。
一些方面可以包括:在一个或者多个服务器处从客户端设备接收指定对图像内的特定位置的选择的数据。响应于选择,可以生成经更新的图像,该经更新的图像描绘与选择的位置相对应的特定子区域的地图。该生成可以包括通过使用地图服务对特定子区域的地图进行渲染以及生成渲染的地图的图像。可以将表示经更新的图像的图像文件提供至客户端设备。一些方面可以包括:从客户端设备接收指定在选择时图像的缩放级别的数据。基于缩放级别来确定选择的粒度级别。可以基于选择的粒度级别来确定与选择的位置相对应的特定子区域。
在一些方面中,图像文件包括便携式网络图形(png)文件格式。一些方面可以包括:由一个或者多个服务器响应于请求并且在接收到对一个或者多个附加图像文件的请求之前将一个或者多个附加图像文件提供至客户端设备,所述一个或多个附加图像文件各自表示所述子区域中的至少一个子区域的地图。
本说明书所描述的主题的特定实施例可以被实现从而达到以下优点中的一个或者多个。通过将具有索引的压缩图像文件提供至可以响应于用户交互而呈现的数据而不是通过将脚本、画布、图形、文档对象模型(dom)元素和其它数据加载到客户端设备,来降低在客户端设备处提供和呈现交互式地图用户界面中的时延。例如,通过互联网提供图像文件(例如,压缩图像文件)所需的联网资源量可能大大少于提供用于在客户端设备处生成地图的脚本、画布和dom元素所需的联网资源量。
类似地,由于客户端设备的处理器不必加载脚本或者dom元素或者生成画布,所以可以通过使用压缩图像文件来减少对客户端设备的计算资源的需求。另外,可以通过使用图像文件来减少用于呈现交互式地图用户界面的客户端设备的内存量(例如,ram),这会释放内存以供其它应用并且提高客户端设备处理数据的速度。通过为地图图像的每个整体子区域指派特定颜色,可以减小(例如,压缩)存储图像的图像文件的大小,导致设备之间的传输时间更快并且用于传送图像文件的所消耗网络带宽更少。因此,实施例可以解决与交互式地图数据的传递和显示相关联的问题。
本说明书所描述的主题的一个或者多个实施例的细节在附图和下面的描述中阐述。本主题的其它特征、方面、和优点将根据说明书、附图、和权利要求书而变得显而易见。
附图说明
图1是数据管理系统提供交互式地图用户界面的环境。
图2是示例交互式地图用户界面的屏幕截图。
图3是提供交互式地图用户界面的示例过程的流程图。
图4是压缩图像文件的示例过程的流程图。
在各个附图中,相似的附图标记和名称指示相似的元件。
具体实施方式
系统可以降低在提供和呈现交互式地图用户界面中的时延。例如,系统可以生成由地图服务生成的地图的图像。该图像可以描绘特定区域及其子区域的地图。系统也可以生成电子索引,该电子索引将图像内的位置(例如,图像的x-y坐标)映射到图像的子区域并且将电子索引和图像提供至客户端设备。电子索引也可以将子区域映射到子区域的数据。以这种方式,例如,当用户通过悬停在与子区域相对应的位置上或者选择该位置来与在与特定子区域相对应的位置处的地图的图像交互时,可以按照交互式方式向用户呈现该子区域的数据。
例如,通过互联网将图像提供至客户端设备可能比在客户端设备处使用地图服务来生成地图需要更少的计算资源和网络资源。这也提高了向用户呈现地图用户界面的速度。通过压缩图像,可以进一步减少计算资源和将资源联网的量,并且进一步提高速度。在一些实施方式中,可以通过为图像的每个子区域指派特定颜色来压缩图像。例如,可以将整个子区域描绘成指派给子区域的特定颜色,而不是描绘成道路、地形等的不同颜色。以这种方式,可以减小图像文件的大小,允许网络上的传输更快和通过网络传输图像的网络带宽更少。例如,因为给定子区域的所有地区是相同的颜色,所以仅仅需要发送针对表示子区域的图像的整个地区的单一颜色代码(例如,rgb值),而不是发送针对子区域的多个不同部分的不同颜色代码。另外,客户端设备可以通过使用压缩图像渲染技术——例如由图形处理单元(gpu)实现——来更快速地呈现压缩图像。
为了进一步降低在呈现交互式用户界面中的时延,可以在请求地图之前提供地图的附加图像。如果用户请求地图,则可以将附加地图图像存储在客户端设备处——例如在高速缓存中,使得更快速地呈现地图。例如,在用户选择了更详细的视图的子区域中的一个的情况下,系统可以提供响应于该请求而生成的图像中所描绘的每个子区域的更详细的地图。
图1是数据管理系统110提供交互式地图用户界面的示例环境100。例如,响应于从客户端设备接收到的请求,数据管理系统110可以将交互式地图用户界面提供至客户端设备,例如,客户端设备150。数据管理系统110可以通过数据通信网络130发送交互式地图用户界面,数据通信网络13例如局域网(lan)、广域网(wan)、移动通信网络、互联网、或者其组合。网络130可以包括服务器、集线器、路由器、交换机、接口设备、传输介质、以及使得设备能够将数据发送至其它设备并且从其它设备接收数据的其它联网组件。
客户端设备150是电子设备,该电子设备能够通过网络130来请求和接收电子资源和其它数据。示例客户端设备150包括个人计算机、移动通信设备(例如,智能电话、平板计算设备、和/或智能手表)、以及可以通过网络130发送和接收数据的其它设备。客户端设备150通常包括促进通过网络130发送和接收数据的用户应用,诸如web浏览器。web浏览器可以使得用户能够与文本、图像、视频、音乐、和通常位于网站处的网页上的其它信息交互。
客户端设备150可以包括其它应用,例如,为特定类型的设备或者为特定平台开发的本原应用(nativeapplication)。例如,客户端设备150包括地图查看器155,该地图查看器155向客户端设备150的用户呈现交互式地图用户界面157。地图查看器150可以实现在web浏览器、本原应用、或者另一种类型的应用程序中。
交互式地图用户界面157呈现特定区域的地图。例如,交互式地图用户界面157可以呈现由从客户端设备150接收到的请求指定的特定区域的地图。交互式地图用户界面157也可以呈现与包括在地图中的特定区域和/或该区域的子区域有关的数据。如下面所描述的,呈现的数据可以包括与客户端设备150的用户被授权访问的在线账户有关的账户数据。该数据可以响应于与地图的用户交互来呈现。例如,如果客户端设备150的用户将光标或者其它指针悬停在与特定子区域相对应的位置上,则可以向用户呈现该子区域的数据。在图2中图示了示例交互式地图用户界面并且在下面更详细地描述了该示例交互式地图用户界面。
数据管理系统110可以管理用户和/或组织的数据并且提供该数据以用于呈现给用户,例如,在数据管理系统110所生成的用户界面中。例如,数据管理系统110可以管理多个不同账户持有者的多个不同账户的在线账户数据。在特定示例中,数据管理系统110可以管理多个不同组织的内容递送账户数据。下面所描述的系统和技术也可以应用于各种其它类型的数据。
账户管理系统110所管理的账户数据可以包括与账户有关的任何数据,诸如内容项的效能数据(例如,闪现(impression)、点进率、转化率等)、账户持有者的预算信息、和/或内容项分发准则。每个账户持有者的账户数据存储在账户数据存储设备115中,该账户数据存储设备115可以包括位于一个或者多个数据中心中的多个数据存储设备。每个账户持有者的账户数据可以单独地并且安全地被存储,使得不会将一个账户持有者的账户数据提供至不同账户持有者的用户。
账户数据的至少一部分可以与用于识别数据的对应地理位置的数据存储在一起。例如,内容递送活动的数据可以包括指定以下的数据:内容项的闪现次数、对内容项的选择次数、由内容项的呈现造成的转化次数、和/或其它适当的活动数据。每个事件(例如,闪现、选择、转化等)的数据可以包括事件发生的地理位置的名称。例如,如果内容项被呈现在位于西雅图的客户端设备上,则闪现的数据可以指示发生在西雅图的闪现。以这种方式,可以基于位置来过滤数据并且可以确定与每个位置相关联的度量。
数据管理系统10包括一个或者多个前端服务器111、数据选择器113、和地图用户界面生成器120。数据选择器113和地图用户界面生成器120也可以实现在一个或者多个服务器中。例如,前端服务器111、数据选择器113、和地图用户界面生成器120可以实现在位于一个或者多个位置(例如,数据中心)中的一个或者多个服务器中。前端服务器111、数据选择器113、和地图用户界面生成器120可以例如通过网络来在彼此之间传输数据。
前端服务器111从客户端设备接收对数据的请求并且将请求的数据提供至客户端设备。前端服务器111可以充当客户端设备与数据选择器113和地图用户界面生成器120之间的接口。例如,前端服务器111可以将对数据的请求转发至数据选择器113。进而,数据选择器113可以从账户数据存储设备115获得适当的数据并且将该数据提供至前端服务器111。然后,前端服务器111可以将数据提供至提交该请求的客户端设备。
前端服务器111也可以确定接收到的请求是否正在请求地图用户界面。例如,该请求可以指定其正在请求描绘了特定区域的账户数据的地图用户界面。在另一示例中,客户端设备的用户可以按照触发对另一地图用户界面的请求的方式来与地图用户界面交互。例如,用户可以放大或者缩小地图用户界面以查看不同区域或者子区域的更详细的视图。在该示例中,该请求可以指定要包括在地图用户界面中的区域。
如果前端服务器111确定请求正在请求地图用户界面,则前端服务器111可以向地图用户界面生成器120请求地图用户界面。地图用户界面生成器120可以针对请求的区域生成交互式地图用户界面并且将该交互式地图用户界面提供至前端服务器111。进而,前端服务器111将交互式地图用户界面提供至客户端设备。
在一些实施方式中,数据选择器113可以确定是否将地图用户界面提供至客户端设备150。例如,数据选择器113可以基于正被提供至客户端设备150的数据来确定是否提供地图用户界面。如果数据包括特点于多个不同地理位置的数据,则数据选择器113可以确定要提供地图用户界面。例如,针对多个不同地理位置中的每一个,数据可以包括在内容项已经在该地理位置中被提供时的该内容项的转化率。在该示例中,数据选择器113可以确定要提供地图用户界面,该地图用户界面在其位于地图上的适当位置处呈现转化率。
地图用户界面生成器120生成交互式地图用户界面,该交互式地图用户界面呈现地图中所描绘的地理位置的数据。例如,地图用户界面生成器120可以生成交互式地图用户界面,该交互式地图用户界面描绘了由从客户端设备接收到的请求指定的特定区域的地图。地图用户界面生成器120所生成的交互式地图用户界面可以包括更复杂的地图的图像和与该图像所描绘的地理位置相对应的数据索引。以这种方式,与通过使用从地图服务获得的代码(例如脚本)、dom元素、和其它数据在客户端设备150处生成地图相比较,可以降低在对客户端设备150处的交互式地图用户界面进行渲染中的时延。另外,可以减少对用于对交互式地图用户界面进行渲染的客户端设备150的计算资源的需求,从而提高客户端设备150的效能。
地图用户界面生成器120包括一个或者多个地图渲染服务器121。地图渲染服务器121可以使用地图服务122和地图客户端123来对地理区域的地图进行渲染。地图服务122可以包括web地图服务,该web地图服务响应于对地图的请求而将地图或者地图的部分提供至地图客户端123。例如,地图服务122可以基于对特定区域的地图的请求来选择地图图块(tile)、覆盖层、和其它地图数据以提供至地图客户端123。地图服务122可以从地图数据存储设备124选择地图图块、覆盖层、和其它地图数据。
地图客户端123可以从地图服务122请求地图,组织从地图服务接收到的地图数据,并且对地图进行渲染。在一些实施方式中,地图客户端123使用多个脚本来生成地图画布、在该画布上组织地图图块,将覆盖层布置在该地图图块上,将其它地图数据定位在地图上,并且对地图进行渲染,例如,在显示器处或者在存储器中。为了对地图进行渲染,地图客户端123也可以加载脚本用来对地图进行渲染的多个dom元素。
地图客户端123可以与地图服务122交互以对例如客户端设备150的客户端设备所请求的地图进行渲染。通过对处于地图渲染服务器121处而不是处于客户端设备150处的地图进行渲染,当地图渲染服务器具有用来对地图进行渲染的更强大并且更多数目的计算资源时,可以更快速地对地图进行渲染。另外,地图客户端123可以在没有通过互联网提交请求的情况下与地图服务122交互,进一步减少对地图进行渲染所需的时间量。
地图用户界面生成器120还包括地图图像文件生成器125、索引生成器128、和文件压缩器129。地图图像文件生成器125可以生成由地图客户端123渲染的地图的图像并且生成表示该图像的图像文件。例如,地图图像文件生成器125可以捕获渲染的地图的屏幕截图并且生成表示捕获的图像的图像文件。图像文件可以是便携式网络图形(png)文件、图形交换格式(gif)文件、联合图像专家组(jpeg)文件、或者另一适当类型的图像文件。
地图图像文件生成器125包括边界检测器126和视觉特性选择器127。边界检测器126可以检测在地图图像文件生成器125所生成的地图的图像内的视觉边界。例如,图像可以描绘包括由边界限定的子区域的特定区域。在特定示例中,区域可以是美国并且子区域可以是各个州。边界检测器126可以使用例如边缘检测的边界检测技术来检测子区域之间的边界。
在一些实施方式中,边界检测器126也可以基于边界和/或基于指定图像所描绘的区域的数据来识别图像所描绘的子区域。例如,通过了解图像内的区域和子区域,边界检测器126可以确定图像的哪些有边界区域与每个子区域相对应。边界检测器126可以通过比较由图像中的边界限定的形状和每个子区域的已知形状来确定子区域。
视觉特性选择器127可以选择视觉特性以与地图的图像中所描绘的每个子区域相关联。例如,视觉特性可以是颜色(例如,基于rgb颜色模型或者红色、绿色、蓝色、alpha(rgba颜色模型))、加明暗、加影线、颜色强度、或者一些其它适当的视觉特性。在一些实施方式中,视觉特性选择器127基于每个子区域的数据来选择每个子区域的视觉特性。例如,当内容项被呈现在位于子区域中的客户端设备处时,可以生成交互性地图用户界面以呈现内容项的效能。在该示例中,视觉特性选择器127可以基于每个子区域的效能指标来选择每个子区域的视觉特性。内容项具有更好效能的子区域可以以比内容项具有较差效能的子区域更亮的颜色来呈现。
在另一示例中,虽然颜色的明暗或者亮度是基于子区域的数据来变化的,但是可以以相同的颜色来描绘每个子区域。例如,可以以颜色蓝色描绘每个子区域。视觉特性选择器127可以基于每个子区域的数据来为每个子区域选择蓝色的亮度或者明暗。在又一示例中,可以随机地或者伪随机地选择每个子区域的视觉特性以区分不同子区域。
索引生成器128可以生成电子索引,该电子索引将图像内的位置映射到该图像中所描绘的子区域。例如,电子索引可以将图像的每个x-y坐标映射到其对应子区域。电子索引也可以将每个子区域的数据映射到地图的图像所描绘的子区域。例如,索引生成器128可以从数据选择器113获得子区域的数据。在一些实施方式中,电子索引将子区域的数据映射到指派给子区域的唯一视觉特性(例如,唯一rgb或者rgba值)。以这种方式,当用户与在子区域处——例如在子区域的x-y坐标中的一个坐标处的图像或者唯一视觉特性交互时,子区域的数据可以从索引中获得并且被呈现给用户。
文件压缩器129可以压缩表示地图的图像的图像文件,以用于通过网络130的更快速的传递以及向客户端设备150的用户的更快速的渲染。在一些实施方式中,文件压缩器129通过使用为图像中描绘的每个子区域选择的唯一视觉特性来压缩图像文件。例如,每个子区域的唯一视觉特性可以是指派给每个子区域的唯一颜色。在该示例中,文件压缩器129可以通过将该子区域的唯一颜色指派给每个特定子区域的图像区来压缩图像文件。以这种方式,图像文件仅仅只需针对每个子区域存储与该子区域相对应的x-y坐标和该子区域的rgb颜色值。客户端设备150的应用(例如,web浏览器)可以使用每个子区域的x-y坐标和每个子区域的唯一rgb颜色来对客户端设备150处的地图的图像进行渲染。
文件压缩器129将压缩的图像文件和由索引生成器128生成的电子索引提供至前端服务器。进而,前端服务器将图像文件和索引提供至客户端设备150。然后,客户端设备150的地图查看器155可以对由交互式地图用户界面中的图像文件表示的地图的图像进行渲染。
前端服务器111也可以将代码、例程、或者脚本提供至客户端设备150,该客户端设备150使得客户端设备150响应于与地图的图像的某些用户交互来执行某些操作。例如,响应于用户将指针(例如,鼠标光标)悬停在与特定子区域相对应的图像的位置上,脚本可以使得客户端设备150访问电子索引以获得和呈现与特定子区域有关的数据。例如,如果用户将指针悬停在特定子区域上,则客户端设备150可以从电子索引获得特定子区域的数据并且将该数据呈现给客户端设备150的用户。客户端设备150可以基于用户交互相对于地图的图像的位置来识别要获得其数据的子区域。例如,客户端设备150可以在悬停事件(例如,指针保持在相同位置中至少阈值时间量)期间检测指针的x-y坐标并且从与检测到的x-y坐标相对应的电子索引中获得数据。在另一示例中,客户端设备150可以确定悬停事件期间在指针的位置处的图像的颜色并且从与该颜色相对应的电子索引中获得数据。
在一些实施方式中,地图用户界面生成器120生成地图的两个图像。第一图像可以是由地图渲染服务器渲染的地图的图像。例如,第一图像可以描绘具有任何道路、水体、地形类型的颜色等的所渲染的地图。第二图像可以是针对特定子区域具有特定rgb颜色的图像。在该示例中,第二图像可以是第一图像上的覆盖层,但是对客户端设备150的用户不可见。作为替代,第二图像可以用于将用户交互的位置映射到图像中所描绘的子区域,如上所述。以这种方式,呈现给用户的地图可能看起来与通常由地图服务122提供的地图相同,同时仍然实现了渲染速度和网络带宽消耗的改进。
在一些实施方式中,地图用户界面生成器120生成地图的附加图像和索引,并且响应于对交互式地图用户界面的请求而将附加图像和索引中的每一个提供至客户端设备150。例如,请求可以指定包括多个子区域的特定区域。在该示例中,地图用户界面生成器120可以生成每个子区域的地图的图像和每个子区域的电子索引。特定子区域的图像可以描绘特定子区域的子区域。类似地,特定子区域的电子索引可以包括特定子区域的每个子区域的数据。
地图用户界面生成器120可以将附加图像和电子索引与响应于请求生成的原始图像一起或者在原始图像已经被传送至客户端设备150之后传送至客户端设备150。客户端设备150可以将附加图像和电子索引存储在客户端设备150的高速缓存中。客户端设备150可以响应于与包括原始图像(或者另一图像)的交互式地图用户界面的用户交互来呈现附加图像。例如,用户可以选择原始图像所描绘的特定子区域。作为响应,客户端设备150可以从高速缓存中获得选择的子区域的图像并且在没有从数据管理系统110请求新的交互式地图用户界面的情况下呈现该图像。以这种方式,可以对子区域的详细地图进行更加快速的渲染并且可以减少网络流量。
图2是示例交互式地图用户界面210的屏幕截图200。在该示例中,交互式地图用户界面210被呈现在web浏览器中。在一些实施方式中,交互式地图用户界面210由另一应用程序呈现,例如本原应用。
示例交互式地图用户界面210包括特定区域的地图的图像220。在该示例中,地图的图像220描绘了若干东南部州。每个州是东南部区域的子区域。虽然未在图2中示出,但是每个州可以包括特定于该州的视觉特性。例如,视觉特性可以是颜色(例如,基于rgb颜色模型)、加明暗、加影线、颜色强度、或者区别于不同州的一些其它适当的视觉特性。在特定示例中,乔治亚(georgia)州可以是绿色的,而阿拉巴马(alabama)州可以是蓝色的。在另一示例中,每个州可以是相同的基础颜色。然而,每个州可以是该颜色的不同强度、明暗、或者亮度。例如,每个州可以是不同明暗的蓝色。
每个州的视觉特性可以基于与每个州相对应的数据。例如,交互式地图用户界面210可以针对每个州呈现由于呈现该州中的特定内容项而造成的转化次数。在该示例中,每个州的区以相同的颜色来呈现,其中,该颜色的明暗基于每个州的转化次数。例如,具有最多转化的州可以是最暗的,而具有最少转化的州可以是最亮的。
每个州的数据可以被存储在将数据和视觉特性映射到每个州的电子索引中。当用户例如通过将光标悬停在州上或者选择该州来与该州交互时,可以呈现该州的数据。例如,光标230悬停在乔治亚州上。作为响应,正在覆盖层240中呈现由于正在位于乔治亚州的设备上呈现内容项而发生的内容项的转化次数。在图像220上呈现覆盖层240。具体地,在图像220中的乔治亚州上呈现覆盖层240。
在一些实施方式中,第一种类型的用户交互可以使得数据呈现在图像220上,并且第二种类型的用户交互可以使得不同地图呈现在交互式地图用户界面210中。例如,在某个州上的悬停可以使得该州的数据呈现在该州上的覆盖层中。另外,例如通过点击该州来对该州进行的选择可以使得该州的详细地图被呈现。例如,如果选择了乔治亚州,则可以呈现描绘了乔治亚的子区域的乔治亚的地图。州视图的子区域可以是县、城市、电话区号、zip编码、或者分割较大区域的其它方式。
在一些实施方式中,选择的粒度级别可以基于在选择了该州时交互式地图用户界面的缩放级别。例如,如果缩放级别大于阈值——例如大于100%,则选择可以被视为属于在与发生选择的图像中的位置相对应的州内的县、城市、邮政编码、或者区号。在该示例中,可以将交互式地图用户界面210更新为呈现选择的县、城市、邮政编码、或者区号的地图的图像。如果缩放级别小于阈值——例如小于100%,则选择可以被视为是整个州。在该示例中,可以将交互式地图用户界面210更新为呈现选择的州的地图的图像。
在一些实施方式中,对州的选择(或者另一种类型的用户交互)使得用户界面被呈现,这使得用户能够输入或者修改数据。例如,对州的选择可以使得覆盖层被呈现,这使得用户能够修改或者输入对内容项的竞价,选择针对其来分发内容项的关键词,或者输入另一适当的参数。输入至覆盖层的数据可以应用于选择的州。例如,如果用户在选择乔治亚之后修改竞价,则该竞价可以用于确定是否将内容项呈现在位于乔治亚的客户端设备上。
在一些实施方式中,在正在为特定活动呈现州(或者其它子区域)时对该州的选择导致活动的有效状态与无效状态之间的切换。例如,如果州对于活动是无效的(例如,活动的内容项不适格被提供至位于州中的客户端设备),则对州的选择可以将州的状态切换为活动的有效状态(例如,内容项适格被提供至位于该州中的客户端设备)。在该示例中,响应于选择,客户端设备会将指定州已经针对活动被切换的数据提供至数据管理系统110。作为响应,数据管理系统110可以基于州状态的变化来更新活动的分发准则。
图3是提供交互式地图用户界面的示例过程300的流程图。过程300的操作可以例如由诸如图1的数据管理系统110的一个或者多个数据处理装置实现。过程300也可以由存储在计算机存储介质上的指令实现,其中,数据处理装置对指令的执行使得数据处理装置执行过程300的操作。
接收对呈现交互式地图用户界面的请求(302)。例如,客户端设备可以提交对描绘了特定地理区域的交互式地图用户界面的请求。该请求也可以指定与客户端设备的用户想要查看的特定地理区域有关的数据。例如,请求可以指定南美洲的地理位置和在将内容项呈现在位于南美洲的设备处时特定内容项的选择数据。
通过使用地图服务对特定区域的地图进行渲染(304)。例如,如上所述,地图客户端可以与地图服务交互以生成地图画布、在画布上组织地图图块、将覆盖层定位在地图图块上、将其它地图数据定位在地图上、以及对地图进行渲染,例如,在显示器处或者在存储器中。渲染可以包括生成特定区域的画布并且加载用于生成地图的编程元素(例如,脚本)和图形元素(例如,地图图块、覆盖层等)。
生成表示渲染的地图的图像的图像文件(306)。例如,可以通过截取正在呈现渲染的地图的显示器的屏幕截图来捕获渲染的地图的图像。然后,可以生成表示捕获的图像的图像文件。图像文件可以是png、gif、jpeg、或者其它适当的图像文件格式。
检测图像内的一个或者多个子区域(308)。例如,可以通过使用边界检测技术来检测图像内的边界。然后,可以将边界之间的形状与特定地理区域的已知子区域的形状进行比较来识别子区域。
将不同的视觉特性指派给每个子区域(310)。例如,可以将不同颜色指派给每个子区域。颜色可以基于rgb模型或者另一适当的计算机可读颜色模型。在另一示例中,视觉特性可以是不同的加明暗、加影线、颜色强度、或者一些其它适当的视觉特性。
生成电子索引(312)。电子索引可以将图像内的每个位置映射到包括该位置的对应子区域。电子索引也可以将每个子区域映射到与该子区域有关的数据。例如,可以请求交互式地图用户界面呈现与子区域有关的特定数据。可以将每个子区域的特定数据包括在电子索引中。
在一些实施方式中,电子索引将每个位置的x-y坐标映射到其对应子区域。在一些实施方式中,电子索引将视觉特性映射到子区域。例如,电子索引将每个子区域映射到其唯一rgb颜色。
将客户端设备的用户界面配置为呈现图像(314)。例如,可以将致使呈现图像的数据提供至客户端设备。该数据可以包括表示图像的图像文件、电子索引、和代码(例如例程或者脚本),其使得客户端设备呈现图像。该数据可以使得图像被呈现,其中,根据与不同子区域相对应的不同视觉特性来呈现不同子区域中的每一个。例如,可以将每个子区域以其rgb颜色来呈现。在一些实施方式中,可以在将表示图像的图像文件传送至客户端设备之前压缩该图像文件。在图4中图示压缩图像文件的示例过程并且在下面对其进行描述。
客户端设备可以响应于与图像的用户交互来访问电子索引。例如,如果用户将指针悬停在特定子区域的位置上,则客户端设备可以检测到图像内的悬停的位置(例如,x-y坐标)。然后,客户端设备可以访问电子索引以确定正在被悬停的子区域并且从电子索引检索子区域的数据。然后,客户端设备可以在用户界面中——例如在接收到用户交互的子区域上呈现检索到的数据。
提供至客户端设备的数据可以使得客户端设备响应于某些用户交互来执行其它操作。例如,客户端设备可以响应于对特定子区域处的图像的选择来切换特定子区域的活动的有效/无效状态。在该示例中,脚本可以使得客户端设备将指定特定子区域的有效/无效状态的切换的数据传送至内容递送系统。
在另一示例中,对特定子区域的选择可以使得客户端设备请求特定子区域的地图。在该示例中,脚本可以使得客户端设备访问其高速缓存以确定表示特定子区域的图像的图像文件是否被存储在高速缓存中。如果表示特定子区域的图像的图像文件被存储在高速缓存中,则客户端设备可以从高速缓存中获得该图像文件并且在用户界面中呈现该特定子区域的图像。如果表示特定子区域的图像的图像文件未被存储在高速缓存中,则脚本可以使得客户端设备请求该特定子区域的地图的图像。
图4是压缩图像的示例过程400的流程图。过程400的操作可以例如由诸如图1的文件压缩器129的一个或者多个数据处理装置实现。过程400也可以由存储在计算机存储介质上的指令实现,其中,数据处理装置对指令的执行使得数据处理装置执行过程400的操作。
接收图像文件(402)。图像文件可以表示特定区域的图像并且可以描绘特定区域的子区域。图像文件可以是png、gif、jpeg、或者其它适当的图像文件格式。
接收指定多个不同子区域中的每一个的图像内的位置的数据(404)。例如,数据可以为每个子区域指定在图像内的与每个子区域相对应的x-y坐标(或者x-y坐标的范围)。
为每个子区域识别不同颜色(406)。例如,可以为每个子区域指派基于rgb颜色模型的不同颜色。
压缩图像文件(408)。可以基于每个子区域的位置和指派给每个子区域的颜色来压缩图像文件。例如,图像文件可以针对每个子区域存储指派给该子区域的颜色和其对应位置。因为可以在图像文件中使用比多色子区域更少的数据来表示每个子区域,所以当图像包括单色子区域时,以这种方式压缩图像可以导致每像素低得多的成本(例如,根据每显示像素图像的数据大小)。
通过以这种方式压缩图像,可以通过网络并且通过使用比非压缩图像文件少的带宽来更加快速地传送图像文件。另外,客户端设备的gpu可以比其可以呈现包括图像内的每个位置的详细数据的非压缩图像文件更快速地呈现压缩图像文件。
在一般地参照内容递送管理系统的地图界面描述实施例的同时,要了解,本主题可应用于替选系统,其中,数据被提供至用户并且不限于内容递送管理。
在本说明书中描述的主题和操作的实施例可以以数字电子电路系统,或者以计算机软件、固件、或者硬件,包括在本说明书中公开的结构以及其结构等同物,或者在它们中的一个或者多个的组合来实现。在本说明书中描述的主题的实施例可以实现为一个或者多个计算机程序,即,编码在计算机存储介质上以用于由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或者多个模块。替选地或者另外,程序指令可以编码在人工生成的传播信号上,例如,机器生成的电、光或者电磁信号,其被生成以编码用于传输到合适的接收器装置的信息以供数据处理装置执行。计算机存储介质可以是或者被包括在计算机可读存储设备、计算机可读存储基底、随机或者串行存取存储器阵列或者设备、或者它们中的一个或者多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或者目的地。计算机存储介质也可以是或者被包括在一个或者多个单独物理组件或者介质(例如,多个cd、磁盘、或者其它存储设备)中。
在本说明书中描述的操作可以实现为由数据处理装置对存储在一个或者多个计算机可读存储设备上或者从其它源接收到的数据执行的操作。
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备、和机器,包括:例如,可编程处理器、计算机、片上系统、或者上述中的多种、或者上述的组合。装置可以包括专用逻辑电路系统,例如,fpga(现场可编程门阵列)或者asic(专用集成电路)。除了硬件之外,装置也可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或者它们中的一个或者多个的组合的代码。设备和执行环境可以实现各种不同的计算模型基础架构,诸如web服务、分布式计算和网格计算基础架构。
计算机程序(也称为程序、软件、软件应用、脚本或者代码)可以以任何形式的编码语言编写,包括编译或者解释语言、声明式或者过程式语言,并且其可以以任何形式部署,包括作为独立程序或者作为适合在计算环境中使用的模块、组件、子例程、对象或者其它单元。计算机程序可以但并非必须与文件系统中的文件相对应。程序可以存储在保持其它程序或者数据(例如,存储在标记语言文档中的一个或者多个脚本)的文件的一部分中,或者在专用于所讨论的程序的单个文件中,或者在多个协同文件(例如,存储一个或者多个模块、子程序、或者代码的部分的文件)中。计算机程序可以部署成在一个计算机上或者在位于一个站点或者跨多个站点分布并且通过通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流可以由执行一个或者多个计算机程序的一个或者多个可编程处理器执行以通过操作输入数据并且生成输出来执行动作。过程和逻辑流还可以由专用逻辑电路系统执行,例如,fpga(现场可编程门阵列)或者asic(专用集成电路),并且设备还可以实现为专用逻辑电路系统。
适合执行计算机程序的处理器包括:例如,通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是用于根据指令来执行动作的处理器和用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机还包括用于存储数据的一个或者多个大容量存储设备——例如磁盘、磁光盘、或者光盘,或者可以操作地耦合至其以接收来自其的数据或者将数据传输至其,或者进行这两者。然而,计算机无需具有这样的设备。此外,计算机可以嵌入另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或者视频播放器、游戏控制台、全球定位系统(gps)接收器、或者便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括:例如半导体存储器设备——例如eprom、eeprom和闪速存储器设备);磁盘——例如内部硬盘或者可移动盘;磁光盘;cd-rom盘和dvd-rom盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。
为了提供与用户的交互,在本说明书中描述的主题的实施例可以实现在具有以下的计算机上:用于向用户显示信息的显示设备,例如,crt(阴极射线管)或者lcd(液晶显示器)监视器;以及键盘和指示设备,例如,鼠标或者轨迹球,通过该键盘和该指示设备用户可以向计算机提供输入。也可以使用其它种类的设备来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈、或者触觉反馈;并且可以以任何形式接收来自用户的输入,该形式包括声音、语音、或者触觉输入。另外,计算机可以响应于从web浏览器接收到的请求,通过将文档发送至用户所使用的设备并且从该设备接收文档——例如通过将网页发送至用户的客户端设备上的web浏览器来与用户交互。
在本说明书中描述的主题的实施例可以实现在计算系统中,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有用户通过其可以与在本说明书中描述的主题的实施方式交互的图形用户界面或者web浏览器的客户端计算机、或者一个或者多个这样的后端、中间件、或者前端组件的任何组合。系统的组件可以通过例如通信网络的任何形式或者介质的数字数据通信互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互连网络(例如,互联网)、和点对点网络(例如,adhoc点对点网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过通信网络交互。客户端和服务器的关系依靠在每个计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。在一些实施例中,服务器将数据(例如,html页面)传送至客户端设备(例如,为了向与客户端设备交互的用户显示数据并且从该用户接收用户输入)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体的实施方式细节,但是这些细节不应当被解释为对可以要求保护的权利要求的范围的限制,而是应当被解释为对特定实施例特有的特征的描述。本说明书在单独实施例的场境(context)下所描述的某些特征也可以在单个实施例中以组合的方式实现。相反,在单个实施例的场境下描述的各种特征也可以单独地在多个实施例中或者以任何合适的子组合实现。此外,虽然特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合中的一个或者多个特征在一些情况下可以从组合删去,以及所要求保护的组合可以涉及子组合或者子组合的变体。
类似地,虽然操作在附图中以特定的顺序描述,但是这不应当被理解为要求以示出的特定顺序或者以相继顺序来执行这样的操作,或者需要所有图示的操作被执行来获得期望结果。在某些情况下,多任务处理和并行处理可能是有益的。此外,在上面所描述的实施例中的各个系统组件的分离不应当被理解为在所有的实施例中都要求这样的分离,并且应当理解所描述的程序组件和系统通常可以被一起整合在单个软件产品中或者封装到多个软件产品中。
因此,已经描述了主题的特定实施例。其它实施例在所附权利要求书的范围内。在某些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然获得期望的结果。另外,在附图中描绘的过程不必要求所示的特定顺序或者相继顺序来获得期望的结果。在某些实施方式中,多任务处理和并行处理可能是有益的。