通过Places API Web Service获取兴趣点数据
实验将爬取新加坡地区的银行POI数据
数据库采用mongodb,请自行安装,同时申请google的key
直接上代码
#coding=utf-8
import urllib
import json
import requests
# import pymongo
import pymongo
import pymongo.database class PlacesTest():
def __init__(self):
self.key = 'your_key'
# self.client = googlemaps.Client(self.key)
self.location = '48.859294,2.347589'
self.type = 'bank'
self.language = 'zh-CN'
self.radius = 1600
self.baseUrl = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json'
mongoClient = pymongo.MongoClient('192.168.0.203',27017)
db = pymongo.database.Database(mongoClient,'googlePlace')
self.googlePlace_Coll = pymongo.collection.Collection(db,'bank')
def getHtml(self,url):
page = urllib.urlopen(url)
html = page.read()
return html
def test_places_nearby_search(self):
payload = {
'key': self.key,
'location': self.location,
'type': self.type,
'radius': self.radius,
'language': self.language,
}
headers = {'User-Agent':"Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0",
"Accept": "image/png,image/*;q=0.8,*/*;q=0.5"
}
# url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json'
r = requests.get(self.baseUrl, timeout=200, headers=headers, params=payload)
data=r.json()
# html = self.getHtml()
# # print html
# data = json.loads(html)
print r.url,data['results'].__len__()
for row in data['results']:
old = self.googlePlace_Coll.find_one({'id':row['id']})
# print old
if old==None:
self.googlePlace_Coll.insert_one(row)
# print data['results'] latitude=1.2392984960090898
longitude=103.61274719238281
_latitude=1.4644553893995902
_longitude=104.00619506835939
i=0
PlacesTest=PlacesTest() while (latitude<=_latitude):
while (longitude<=_longitude):
# d=getFlatternDistance(latitude,longitude+1,latitude,longitude);
# L.circle([latitude,longitude+0.5], {radius: d/2,color: "#ff7800"}).addTo(map);
PlacesTest.location=str(latitude)+','+str(longitude)
PlacesTest.test_places_nearby_search()
i=i+1
longitude=longitude + 0.02
longitude=103.61274719238281
# console.warn(d);
latitude=latitude + 0.02
# // console.warn(latitude,longitude);
# // continue;
使用限制:
Google Places API Web Service 强制执行每 24 小时 **1,000 次免费请求的默认限制,该默认限制由计算客户端和服务器端请求数量之和得出。
如果超过初始限制,应用将会开始出现故障。 您可以在 Google API Console 上启用收费来验证自己的身份,免费将此限制增加到每 24 小时 150,000 次请求。
验证身份时要求提供信用卡。 要求信用卡纯粹是为了验证您的身份。 不会由于您使用 Google Places API Web Service 而通过您的信用卡收取费用。
免费使用的最大限制为每 24 小时 150,000 次请求。 如果您的应用超过该限值,将会再次开始出现故障。 购买 Google Maps APIs Premium Plan 许可证可获得每 24 小时超过 150,000 次请求的限值。
如果您预期请求次数会超过默认的允许请求次数,请提前采取措施增大限值。
Google Places API Web Service 也有使用率限制。 无论有多少位用户共享同一项目,均以用户会话为单位施加使用率限制。
注:文本搜索服务在计算请求次数时需要乘以 10 倍。 也就是说,您进行的每个“文本搜索”请求将按 10 次请求从配额中扣除。
如果您的 Google Maps APIs Premium Plan 购买合同中已包含 Google Places API Web Service,倍数可能不同。
通过Places API Web Service获取兴趣点数据的更多相关文章
- iOS开发网络篇之Web Service和XML数据解析
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- asp.net项目下的web service返回json数据问题
App_Code目录下放置WebService.cs文件,文件内容如: using System; using System.Collections.Generic; using System.Dat ...
- 采用web service传输超大数据
因为以前也没有做过相关的web service开发,对于Xfire也只是知道有这么一个框架.当然现在它已经变成apache基金会旗下的一个开源项目CXF.不过,现在依旧有很多公司还在用Xfire作we ...
- Fork 多进程 模拟并行访问web service获取响应时间差
#include <ros/ros.h> #include <iostream> #include <string> #include <cstring> ...
- [转]WEB页获取串口数据
本文转自:https://www.cnblogs.com/rockyhm/p/3434200.html 最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多 大 ...
- WEB页获取串口数据
最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多 大致分两种 使用ActiveX控件,JS调用MSCOMM32.dll的串口控件对串口进行控制 使用C#语言 ...
- Angular2 Service获取json数据
在Angular2框架下一般交互解析json是要用到Service的,其实除了Service还是很多的,今天先写个最简单的前后端数据交互 嗯~~ 首先我先在app包下直接创建Service 好了 这里 ...
- Exchange Web Service 获取邮件的附件并保存到本地的示例代码
private static void DownLoadMailAttachments(ExchangeService service, ItemId itemId) { EmailMessage m ...
- 翻译-使用Spring调用SOAP Web Service
原文链接: http://spring.io/guides/gs/consuming-web-service/ 调用SOAP web service 本指南将指导你使用Spring调用一个基于SOAP ...
随机推荐
- iis 如何设置http访问转向https
把网站设置成https后,发现在浏览器输入域名后,并不能所期望的看到成功访问页面,在输入如:http://www.alipay.com后浏览器自动导航到https://www.alipay.com. ...
- Spring Security构建Rest服务-0702-短信验证码登录
先来看下 Spring Security密码登录大概流程,模拟这个流程,开发短信登录流程 1,密码登录请求发送给过滤器 UsernamePasswordAuthenticationFilter 2,过 ...
- php 按照二位数组中某个指定的字段进行排序
/** * 按照二维数组中某个指定的某个字段进行排序 * @param $array 需要被排序的数组 * @param $flag 排序的标志 1,SORT_DESC 降序 2,SORT_ASC 升 ...
- linux内核学习之保护模式(一)
来源:http://blog.csdn.net/yishuige/article/details/50434746 这一章涉及intel8086系列cpu的保护模式编程,应该是学习内核编程,驱动编程及 ...
- Java多态的一些陷阱
Java多态是如何实现的? Java的多态和C++一样,是通过延时绑定(late binding)或者说运行时绑定(runtime binding)来实现的.当调用某一个对象引用的方法时,因为编译器并 ...
- UIKit 框架之UITextView
// // ViewController.m // UItextView // // Created by City--Online on 15/5/22. // Copyright (c) 2015 ...
- 不停机不停服务,MYSQL可以这样修改亿级数据表结构
摘 要:本文阐述了MySQL DDL 的问题现状.pt-online-schema-change的工作原理,并实际利用pt-online-schema-change工具在线修改生产环境下1.6亿级数 ...
- git 拉取远程分支报错(fatal: '' is not a commit and a branch '' cannot be created from it)
问题描述从远程git上拉取某一个分支,然后报错,拉取不了这个分支. 拉取分支的命令: git checkout -b xxx-static-19 origin/xxx-static-19 其中xxx- ...
- [整理]EF6.X更新了什么(版本历史中文版)
下定决心以后用EF6.x版本了.想看看有什么更新特性,结果去人家github老巢一看,EF7 for vnext,顿时蛋疼了起来.想想国内这种技术氛围,有多少还在用ASP的,有多少还在用ADO.NET ...
- java并发编程的艺术(四)---ConcurrentHashMap原理解析
本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...