Google静态地图API详解

来源:互联网 发布:淘宝宝贝详情宽度 编辑:程序博客网 时间:2024/06/06 23:45

2012-07-17 14:08:44|  分类: 科技之光|字号 订阅

限制 每位查看者每天的唯一(不同)图片请求次数不超过1000次。静态地图网址的长度不超过2048个字符,如果生成大量标记和路径的复杂地图,可能超过限制(浏览器/服务器可能对某些字符进行网址编码,导致字符量增加)。

示例

Google Static Maps test

<img src="http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=14&size=512x512&maptype=roadmap&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318&markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false">

这个URL有几个参数:

请求地址:http://maps.google.com/maps/api/

执行staticmap查询:staticmap?

查询参数。center指定了地图中心,示例中为纽约,zoom表示缩放级别,为14,size指定生成地图的大小,maptype指定地图类型,markers设置地图标记,可以有多个,示例中有3个标记,分别是S, G, C,标记的文字用label设置,颜色用color设置,另外还有经纬度的设置,sensor设置是否使用传感器(如GPS)。

参数详解

参数分为几类:

  • 位置参数,如center, zoom,没有标记(markers)时为必填。
  • 地图参数:如size(必填), format, maptype, language。
  • 特征参数:如markers, path, visible, style。
  • 报告参数:如seneor(是否使用传感器定位用户)。

center

定义地图中心,到地图各边缘的距离等。格式可以是{纬度,经度}或字符串地址,可以唯一标识地球表面的具体位置。

纬度和精度可以精确到6位小数,纬度的范围是[-90, 90],经度的范围是[-180, 180]。经度值基于到英国格林威治(本初子午线所在地)的位置。

字符串地址的格式如 City Hall,New York,NY 的形式。发送请求前需使用字符串转义,使之编码为如 City+Hall,New+York,NY 的形式。

例如显示以北京为中心的一个静态地图:

Beijing

代码:

<img src="http://maps.google.com/maps/api/staticmap?center=Beijing&zoom=9&size=256x256&maptype=roadmap&language=zh-CN&sensor=false">

zoom

定义地图缩放级别,指定当前试图的分辨率,取值范围是[0,21+],0表示最低缩放,在地图上可见整个世界,21+可以看到建筑物个体。

size

指定地图图片矩形尺寸,使用 widthxheight 的形式。大小限制为 640x640。

format

指定图片格式,默认用PNG图像,可选格式包括:png8/png(默认)、png32, gif, jpg, jpg-baseline(非渐进式JPEG压缩格式)。

png/gif是无损压缩,jpg/jpg-baseline是有损压缩。大多数JPEG图像采用渐进式载入,即先载入较为粗糙的图像,再随着更多数据的传入而提高图像分辨率,这样可以快速加载网页。但JPEG的某些应用,例如打印要求非渐进式(基线)图片,此时需要选择jpg-baseline格式。

maptype

定义地图类型,其值可以是:

  • roadmap(默认)指定标准路线图,如Google Maps网站的默认显示。
  • satellite 指定卫星图片。
  • terrain 指定自然地形地图,显示地形和植被。
  • hybrid 指定卫星和路线图的混合图片,在卫星图片上显示主要街道和地址名称的透明层。

BeijingBeijing SateliiteBeijing TerrainBeijing hybrid

language

指定地图上标记的显示语言。

markers

在指定位置添加标记。可以有多个markers。一个markers中的多个参数用|(%7C)分隔。多个标记只要样式相同,就可以放置在同一个markers参数中。如果指定了markers,则可以无需指定center/zoom参数。

例如以故宫的经纬度获取地图:

故宫故宫

代码:

http://maps.google.com/maps/api/staticmap?zoom=13&size=256x256&markers=39.917110,116.396971&maptype=roadmap&language=zh-CN&sensor=false
 
http://maps.google.com/maps/api/staticmap?zoom=13&size=256x256&markers=color:blue%7Clabel:G%7C39.917110,116.396971&maptype=roadmap&language=zh-CN&sensor=false

path

定义图片上叠加层的两个或多个连接点的单条路径。格式为:

path=pathStyles|pathLocation1|pathLocation2|...

其中pathStyles的参数为:

  • weight 指定路径宽度(以像素为单位),默认5个像素。
  • color 以24位或32位十六进制指定颜色,或从集合 {black, brown, green, purple, yellow, blue, gray, orange, red, white} 中指定一种颜色。使用32位十六进制,最后2个字符指定8位的Alpha透明值,范围从00(完全透明)到FF(完全不透明)。pathStyles支持透明度,但markers不支持。
  • fillcolor 闭合区域的填充色。

例如划一道从北京到成都的线:

北京到成都

代码(以经纬度和字符串形式绘制):

http://maps.google.com/maps/api/staticmap?zoom=4&size=256x256&path=39.917110,116.396971%7C30.665629,104.064978&maptype=roadmap&language=zh-CN&sensor=false
 
http://maps.google.com/maps/api/staticmap?zoom=4&size=256x256&path=Beijing%7CChengdu&maptype=roadmap&language=zh-CN&sensor=false

北京-成都-上海的连线:

北京 成都 上海北京 成都 上海

代码(分别用默认样式与自定义样式绘制):

http://maps.google.com/maps/api/staticmap?zoom=4&size=256x256&path=Beijing%7CChengdu&path=Chengdu%7CShanghai&path=Shanghai%7CBeijing&maptype=roadmap&language=zh-CN&sensor=false
 
http://maps.google.com/maps/api/staticmap?zoom=4&size=256x256&path=color:red%7CBeijing%7CChengdu&path=color:purple%7CChengdu%7CShanghai&path=Shanghai%7CBeijing&maptype=roadmap&language=zh-CN&sensor=false

使用填充色。例如绘制上海的经济辐射区域:

Google静态地图API详解 - ShaneJhu - 逆风的方向 更适合飞翔

代码:

http://maps.google.com/maps/api/staticmap?zoom=6&size=256x256&path=fillcolor:yellow%7CShanghai%7CYangzhou%7CNanjing%7CHangzhou%7CShanghai&maptype=roadmap&language=zh-CN&sensor=false

visible

指定一个位置,即使不显示标记或其他指示器也应该在地图上保持可见。用此参数确保在静态地图上显示某些特征或地图位置。

style

用于自定义样式以更改地图的特定地图项(如道路、公园等)的显示方式。可以添加多个style参数。格式:

style=feature:featureArgument|element:elementArgument|rule:ruleArgument...

style的参数:

  • feature 设置地图项
  • element 设置地图项子集
  • 规则 定义更细致的显示样式

feature的设置(完整列表见Google Maps Javascript API):

  • feature:all (默认) 所有地图项
  • feature:road 所有道路
  • feature:landscape 所有背景地貌(通常为道路间的区域)

element的设置:

  • element:all (默认)选择该地图项的所有元素
  • element:geometry 只选择地理元素
  • element:labels 只选择与该地图项关联的文本标签

样式规则设置:

  • hue(0xRRGGBB格式的RGB十六进制字符串),选择项的基本颜色。
  • lightness([-100, 100]间的浮点值),亮度变化百分比。负值增加暗度(-100为黑),正值增加亮度(+100为白)。
  • saturation([-100, 100]间的浮点值),颜色色度变化百分比。
  • gamma([0.01, 10.0]间的浮点值,1.0表示不应用任何校正),灰度校正值。灰度系数以非线性方式修改色相亮度,而不会影响白色值或黑色值。灰度系数通常用于修改多个元素的对比度。可以通过gamma值来提高(<1.0)或降低(>1.0)元素边缘与内部间的对比度。
  • inverse_lightness:true 颠倒现有的亮度。
  • visibility(on, off, simplified)用于表示元素是否在地图上出现及其出现方式。

sensor

sensor(必填)是否使用传感器确定用户位置,可以设置为true或false。

原创粉丝点击