2010年9月13日星期一

URL size limit of Google Chart API

Google 帮助这样说
The longest URL that Google accepts in a chart GET request is 2048 characters in length, after URL-encoding (e.g., | becomes %7C). For POST, this limit is 16K.

按照帮助中的建议,将坐标数据压缩后,可以画更复杂(线条更稠密)的图了。
最简单的文本编码前缀是
chd=t:
后面接1,2,3.1415,2.17这样的字符串

压缩编码可以用下面这个函数实现单向转换:

def encoding_chart_data(l, upper_bound):#l is a list of uint
    enc_map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
    return "".join(map(lambda x:enc_map[int(round((len(enc_map)-1) * 1.0 * x / upper_bound))],l))

编码后的前缀是
chd=s:

调Google Char API的时候,很多时候感觉都像是在调一个矢量绘图的API,脑子里时刻要充满Shape/Scale的概念,而不是X,Y的欧氏坐标。很亲切。

有两种比较另类的Chart很吸引我:
http://code.google.com/apis/chart/docs/gallery/graphviz.html
可以将一个“图”可视化(GraphViz语法)
http://code.google.com/apis/chart/docs/gallery/formulas.html
渲染一个公式(TeX语法)

还提供了两个工具,相当有用:
http://code.google.com/apis/chart/docs/chart_wizard.html
向导,帮助你快速熟悉API的各项参数
http://code.google.com/apis/chart/docs/chart_playground.html
在线调试工具,帮助你缩进API URL,显示调试信息,例如告诉你为什么某一组参数无法渲染,非常好用

没有评论: