打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Google Map Web服务API(转)

 

Google Places API 是一项使用 HTTP 请求返回“地方”(在此 API中定义为场所、地理位置或著名兴趣点)的相关信息的服务。“地方”请求将位置指定为纬度/经度坐标。

 

四个基本的“地方”请求:

1)  PlaceSearch 会根据用户的位置返回附近的“地方”列表。

2)  地方详情请求会返回关于某个特定“地方”的更加具体的详情。

3)  地方所在位置可让您报告某位用户已到达某个“地方”。“所在位置”用于衡量某个“地方”的热门程度;频繁的报告位置可以提高该“地方”在您应用程序的Place Search 结果中的排名。

4)  地方报告可让您向“地方”服务添加新的“地方”,还可删除您的应用程序已添加的“地方”。

  注意:其中请求URL中的types有如下类型:

// 定义GPS查询中type类型为,以下数字逐个加1,上面为英文,下面为中文描述;

accounting      会计事务所         

airport                      机场         

amusementpark          游乐园       

aquarium                   水族馆       

artgallery                艺术画廊     

atm                        自动取款机   

bakery                     面包店       

bank                       银行         

bar                        酒吧         

beautysalon               美容沙龙     

bicyclestore              自行车店     

bookstore                 书店         

bowlingalley              保龄球馆     

busstation                汽车站       

cafe                       咖啡馆       

campground                 营地         

cardealer                 汽车经销商   

carrental                 汽车出租     

carrepair                 汽车维修     

carwash                   洗车         

casino                     赌场         

cemetery                   墓地         

church                     教堂         

cityhall                  市政厅       

clothingstore             服装店       

conveniencestore          便利店       

courthouse                 法院         

dentist                    牙科医生     

departmentstore           百货商店     

doctor                     医生         

electrician                电工         

electronicsstore          电子商店     

embassy                    使馆         

establishment              编制         

finance                    金融         

firestation               消防局       

florist                    花商         

food                       食物         

funerahome                funera家     

furniturestore            家具店       

gasstation                加油站       

generalcontractor         总承包商     

grocery orsupermarket     杂货店或超市 

gym                        健身房       

haircare                  护发          

hardwarestore             五金商店     

health                     健康         

hindutemple               印度教寺庙   

home goodsstore           家居用品店   

hospital                   医院         

insuranceagency           保险代理     

jewelrystore              首饰商店     

laundry                    洗衣店       

lawyer                     律师         

library                    文库         

liquorstore               酒品店       

local governmentoffice    当地政府办公室

locksmith                  锁匠         

lodging                    住宿         

mealdelivery              送饭         

mealtakeaway              餐外卖       

mosque                     清真寺       

movierental               电影租赁     

movietheater              电影院       

movingcompany             搬家公司     

museum                     博物馆       

nightclub                 夜总会       

painter                    画家         

park                       公园         

parking                    停车         

petstore                  宠物商店     

pharmacy                   药房         

physiotherapist            物理治疗师   

place ofworship           礼拜场所     

plumber                    水管工人     

police                     警方         

postoffice                邮局         

real estateagency         地产代理     

restaurant                 餐厅         

roofingcontractor         屋面承包商   

rvpark                    RV公园       

school                     学校         

shoestore                 鞋店         

shoppingmall              商场         

spa                        温泉         

stadium                    体育场       

storage                    存储         

store                      存储         

subwaystation             地铁站       

synagogue                  犹太教堂     

taxistand                 的士站       

trainstation              火车站       

travelagency              旅行社       

university                 大学         

veterinarycare            兽医护理     

zoo                        动物园       

 

 

administrative area level1       行政区域级1  

administrative area level2       2级行政区域  

administrative area level3       行政区域3级  

colloquialarea                   口语化的区域 

country                           国家         

floor                             地板         

geocode                           地理编码     

intersection                      路口         

locality                          地方         

naturalfeature                   自然特征     

neighborhood                      附近         

political                         政治         

point ofinterest                 兴趣点       

postbox                          邮政信箱     

postalcode                       邮政编码     

postal codeprefix                邮递区号前缀 

postaltown                       邮政镇       

premise                           前提         

room                              房间         

route                             路线         

street_address                    街道地址     

streetnumber                     门牌号码     

sublocality                       sublocality  

sublocality level4               sublocality4级

sublocality level5               sublocality5级

sublocality level3               sublocality3级

sublocality level2               sublocality2级

sublocality level1               sublocality1级

subpremise                        subpremise   

transitstation                   中转站        

 

Google Places API具有以下查询限制:

  • 拥有 API 密钥的用户每24小时内最多可以提出 1?000 个请求。
  • 已另外通过 API 控制台验证过身份的用户每 24 小时内最多可以提出 100?000 个请求。验证时需要您提供信用卡信息,您可以在控制台中启用结算我们不会因您使用 PlacesAPI 而从您的信用卡中扣除任何费用

虽然较低的限制对于研发和测试而言已经足够,但我们建议您在发布应用程序之前启用较高的限制。

第一步,申请API密钥,。您可以通过 Google API控制台管理 API 密钥。要激活 Places API 并创建密钥,请执行以下操作:

  1. 访问 API 控制台(网址为 https://code.google.com/apis/console)并使用您的Google 帐户登录。
  2. 您首次登录控制台时,系统会为您创建一个名为 APIProject 的默认项目。您可以使用该项目,也可以通过点击窗口顶部的 API项目 (API Project) 按钮来创建一个新项目。
  3. 在 PlacesAPI 列表中点击激活,然后点击确定,以继续操作。
  4. 如果系统弹出提示,请选择要与此产品配合使用的 Google帐户。在开发人员预览期间,您必须选择要用于接收邀请的帐户。点击允许
  5. 仔细阅读并接受服务条款。随后您会返回主控制台页面。
  6. 点击左侧导航栏中的 API访问 (API access)。您的密钥会列出在此页面上。

 

第二步,拼写发送http请求的url,注意需使用第一步申请的key;

第三步,接收http请求返回的数据(支持json和xml格式)。

1.1.5 接口示例

1)    PlaceSearch

https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=true&key=AIzaSyBMGzm-1zXeLX-QNi9N7ozRJWZlREyYEe4

 

2)   地方详情请求会返回关于某个特定“地方”的更加具体的详情。

A.       URL例子:https://maps.googleapis.com/maps/api/place/details/xml?reference=CoQBcQAAAGVqFYQYyZYbF4bShF9CQcVoDIF5_5F_uWcspB1pBquRwcYdhOElfaKgMfjCX0qUFKgEWuXPyFQmmBmukIAtXWufvXDOr6tQw42Razq18UDkUxb__cnbAFsKTDcLx0dm_WZmNG1LM1lxzpq-ssVv-5ql1laWk68Y95ANtML4N8g4EhCWwGvhtha3bZp8FL5N0vLTGhRJkto62O-z4lktML8NKfLr2i2yOA&sensor=true&language=zh-CN&key=AIzaSyBMGzm-1zXeLX-QNi9N7ozRJWZlREyYEe4

B.        样例图:

 

3)   地方所在位置可让您报告某位用户已到达某个“地方”。“所在位置”用于衡量某个“地方”的热门程度;频繁的报告位置可以提高该“地方”在您应用程序的Place Search 结果中的排名。

 

4)   地方报告可让您向“地方”服务添加新的“地方”,还可删除您的应用程序已添加的“地方”。

 

    地址解析是将地址(如“1600Amphitheatre Parkway, Mountain View,CA”)转换为地理坐标(如纬度 37.423021 和经度 -122.083739)的过程,您可以根据转换得到的坐标放置标记或定位地图。GoogleGeocodingAPI 可让您通过 HTTP 请求直接访问地址解析器。此外,该服务还可让您执行反向操作(将坐标转换为地址);此过程称为“反向地址解析”。

Google Geocoding API包括地址解析和逆地址解析功能。

 

Google Geocoding API 的使用有限制,即,每天2,500 个地理位置查询请求。(Google Maps API Premier 用户每天最多可执行 100,000个请求。)强制执行此限制是为了防止滥用和/或重复使用 Google GeocodingAPI。以后可能对此限制进行更改,而无需另行通知。此外,我们还强制设定了请求速率限制,以防滥用此服务。如果您超过了 24小时的限制或者滥用此服务,Google Geocoding API 可能会暂停为您服务。如果您继续无视这个限制,将会阻止您对Google Geocoding API 的访问。

 

请注意:Google Geocoding API 只能与 Google Maps配合使用;不能只进行地址解析而不在地图上显示结果。有关允许的用法的完整详细信息,请参见 Google MapsAPI 服务条款许可限制

 

第一步,拼写发送http请求的url,不需要注册Key/密钥

第二步,接收http请求返回的数据(支持json和xml格式)。

  • 地址解析:根据地址获取坐标  
  1. URL样例:

http://maps.googleapis.com/maps/api/geocode/json?address=china+guangdong+zhuhai+街道地址&latlng=22.26972711397229,113.57751578092575&sensor=true&language=zh-CN

  1. 样例图:

 

注意:Google DirectionsAPI 不需要 MapsAPI 密钥!

    GoogleDirections API 是一种使用 HTTP 请求计算多个位置间路线的服务。路线可以采用文本字符串伊利诺斯州芝加哥市澳大利亚新南威尔士达尔文市或纬度/经度坐标的形式指定起点、目的地和路标。GoogleDirections API 可以使用一系列路标传回多段路线.

Google DirectionsAPI 是一种使用 HTTP 请求计算多个位置间路线的服务。

Google Directions API的使用受每个IP每天2,500 路线请求的查询限制。单个路线请求可以包含多达8个中间路标。 GoogleMaps Premier 客户每天最多可以查询100,000个路线请求,且在每个请求中最多可以使用 23个路标

 

此外,在进行网址编码之前,请注意Directions API 网址长度不得超过 2048个字符。由于某些 Directions服务网址可能在一条路径中包含多个位置,因此在构建您的网址时请注意此限制。

 

注意:Google Directions API 只能与 Google Maps上的显示结果配合使用;下面这种情况是不允许的:使用路线数据而不显示为其请求路线数据的地图。另外,计算路线将会生成必须以某种方式向用户显示的版权和警告。有关允许的用法的完整详细信息,请参见 Google MapsAPI 服务条款许可限制

 

第一步,拼写发送http请求的url,不需要注册Key/密钥;

第二步,接收http请求返回的数据(支持json和xml格式)。

  • 地址解析:根据地址获取坐标  
  1. URL样例:

http://maps.google.com/maps/api/directions/xml?origin=22.388412465842766,113.50859642028809&destination=22.372856833227992,113.57305526733398&waypoints=optimize:true&sensor=true&alternatives=true&language=zh-CN&units=metric&region=cn

  1. 样例图:

 

 

 

Google Distance Matrix API是一项服务,用于为起点和终点的矩阵提供行程距离和时间。系统会根据起点和终点之间的推荐路线(由 Google Maps API计算)返回信息,并且返回的信息由多行配对的 duration 和 distance 值组成。

 

该服务并不会返回详细的路线信息。您可以将所需的一对起点和终点传递至 DirectionsAPI,以获取路线信息。

 

Google Distance Matrix API是一项服务,用于为起点和终点的矩阵提供行程距离和时间,该服务并不会返回详细的路线信息。您可以将所需的一对起点和终点传递至 DirectionsAPI/详情见1.3 Google Directions API,以获取路线信息。

1.4.3 使用限制

每条发送至 Distance Matrix API的查询可使用的元素数量是有限的,其数量由起点数乘以终点数来定义。

Distance Matrix API目前具有如下限制:

  • 每条查询可使用的元素数量为:100。
  • 每 10 秒可使用的元素配额为:100。
  • 每 24 小时周期内可使用的元素配额为:2?500。

针对 Google Maps API专业版客户的限制较为宽松:

  • 每条查询可使用的元素数量为:625。
  • 每 10 秒可使用的元素配额为:1?000。
  • 每 24 小时周期内可使用的元素配额为:100?000。

 

Maps API 专业版客户可以与自己的 GoogleEnterprise 销售客户经理联系,以购买更多配额。

在进行网址编码前,Distance Matrix API网址长度的上限为2048个字符。某些 Distance Matrix API服务网址可能会涉及多个位置,因此您在构建网址时请注意此限制。

注意:使用 Distance Matrix API 的情况必须与Google Map上的信息显示有关;例如,在地图上请求并显示某些终点之前,应先确定起点-终点对彼此间的行程时间是否在特定值的范围内。在不显示Google Map 的应用程序中,您无法使用该服务。

1.4.4 如何使用

第一步,拼写发送http请求的url,不需要申请key/密钥;

第二步,接收http请求返回的数据(支持json和xml格式)。

1.1.5 接口示例

http://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver+BC|Seattle&destinations=San+Francisco|Vancouver+BC&mode=bicycling&language=zh-CN&sensor=false

实例讲解:

http://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver+BC|Seattle&destinations=San+Francisco|Victoria+BC&mode=bicycling&language=fr-FR&sensor=false

该请求会返回四个元素 - 两个起点乘以两个终点:

 

温哥华到旧金山

温哥华到维多利亚

西雅图到旧金山

西雅图到维多利亚

 

 

结果会以行的形式返回,每行包含一个起点搭配一个对应的终点。

     收费标准

2.1:使用各 Maps API的网站和应用程序如果符合以下条件则无需付费:

  1. 每个API每天的地图加载次数不超过 25,000 
  2. 每天使用样式化地图功能修改的地图加载次数不超过2,500次

如果您的应用程序超出了这些使用限制,那么您必须通过以下某种方法做出回应才能继续在应用程序中使用Maps API:

  • 修改 MapsAPI 应用程序,以便让每天产生的地图加载次数低于应用程序使用的各 API 的使用限制;
  • 启用超限地图加载次数的自动结算功能;或
  • 购买 Maps APIPremier 许可

致力于公益事业的非盈利性网站和应用程序(其范围由 Google自行决定)没有这些使用限制。例如,即使某个救灾地图是由商业实体开发和/或托管的,该地图也不会有使用限制。此外,我们还建议有资格的非盈利性网站和应用程序通过 GoogleEarth Outreach 计划申请 Maps API Premier许可。此许可能为您带来许多优势,包括停用广告的权利、更高的 Maps API 网络服务配额和技术支持。

我们在此处提供了要计入“地图加载次数”的情况的精确定义。您可以在此处找到有关费用的详情。

 

2.2:超限地图加载次数的在线购买费用是多少?

在符合 Google MapsAPI 服务条款相关要求的情况下,地图加载次数低于使用限制的应用程序无需付费即可使用Maps API。超出使用限制的地图加载次数按以下标准收费:

服务

使用限制
(每天)

1,000 次超限地图加载
(以美元为单位)

JS Maps API v3

25,000

$4

JS Maps APIv3 样式化地图

2,500

$4[1]/$8[2]

Static Maps API

25,000

$4

Static MapsAPI 样式化地图

2,500

$4[1]/$8[2]

Street View Image API

25,000

$4

JS Maps API v2

25,000

$10

[1] 每天的地图加载次数在 2,500 到 25,000 次之间
[2] 每天的地图加载次数超过 25,000 

我们不会在线提供针对 Maps API for Flash的超限地图加载次数。如果网站使用 Maps API for Flash 并超出了使用限制,就应该迁移至 JS Maps APIv3;此外,您也可以购买 Maps APIPremier 许可。

您可以通过 Google API控制台在线购买超限地图加载次数。使用情况每天计算一次,超限部分每月通过信用卡结算一次。请注意,如果您的网站每天产生的地图加载次数较多,那么购买 Maps APIPremier 许可可能会更划算。

另请注意,除了根据现有的服务条款继续使用 MapsAPI 的权利外,在线购买超限地图加载次数并不会获得任何额外的权利或权益。

 

2.3:详解见Google Maps API for Business- Purchase Agreement

https://www.google.com/enterprise/earthmaps/legal/us/maps_purchase_agreement.html

 

 

     破解方案(供参考)

GoogleMap Geocoding API 地址解析受限的解决办法

 

       最近在做GoogleMap地址解析的事情,就是把现有的地址匹配上经纬度,不过无奈的发现Google是有限制的:GoogleGeocodingAPI 的使用有限制,即,每天 2,500 个地理位置查询请求。(GoogleMaps API Premier 用户每天最多可执行 100,000个请求平【每年1W美金】。)强制执行此限制是为了防止滥用和/或重复使用 Google GeocodingAPI。以后可能对此限制进行更改,而无需另行通知。此外,我们还强制设定了请求速率限制,以防滥用此服务。如果您超过了 24小时的限制或者滥用此服务,Google Geocoding API 可能会暂停为您服务。如果您继续无视这个限制,将会阻止您对Google Geocoding API 的访问。

 

    所以就想一些解决办法绕过它,方法一:通过Google自己的GAE做代理,参见一个网上的帖子http://maosuhan.iteye.com/blog/724278,经过半天的尝试,主要是配置GAE的工作,参见http://blog.163.com/redsnow_cc/blog/static/17262058720111142433649/,再加上我自己写的web版的请求googlemap测试程序,发现也是有限制的,返回的结果也是Over_Query_Limit,经过分析,此种方法不行,仔细看了一下帖子是2010年的,两年前的帖子,而且无此种类似的帖子和跟帖,分析是google发现了这个漏洞,修复掉了,所以此后没有人跟进了。

 

方法二:也是通过代理的方式,但是使用多个代理,每个代理可以访问2500个,那么用100代理就可以返回250000个,用400个代理就可以解决掉100万个了,满足要求了,但是发现网上只有一个这样的帖子,经过分析,这种代理都不稳定,而且实现起来比较复杂,pass。

 

方法三:通过Windowsservices实现,每天进行2500个请求,要实现100万个地址的请求,得需要一年的时间,这种办法已经实现了,但是比较难的应用到实际应用中了,如果解析地址的数量比较少还可以,如果超过10万个了,时间久比较长了。

 

 综上所述,最好的方法还是购买,如果数量少就用windows services来实现。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Google Maps开放API了,先做了张图过过瘾
Google Map API使用详解(六)——Google Map API Key的解读和使用技巧
Google Maps Api介绍与基础操作 | 幼学笔记
Google地图API 教程(一)
Google Maps基础及实例解析
如何删除google maps api v3离线地图的"google"和"使用条款"
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服