谷歌、腾讯、百度相应API批量获取地理位置坐标信息及其优缺点
目录:
- 申请ak
- 批量获取地理位置
- 优缺点对比
目的:通过给定的地理位置名称(如:北京市海淀区上地十街十号),获取经纬度信息。
1、申请ak
以百度Geocoding API为例:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
- 申请ak: http://lbsyun.baidu.com/apiconsole/key/create,选择所需要的API应用,

- 提交之后就会有访问应用的AK,这就是你访问的ak:

2、批量获取地理坐标
对于以下文本文件里的城市:

这里是对以上文本文件里的城市进行查询地理位置的代码:
# coding : utf-8 """
This program use api to get lon/lat data.
""" import sys
import requests def get_degree(): local_path = 'D:/home/research/lung_cancer/data/pm25/process/' # 把文本文件里的城市全部放入list里面
csv_path = local_path + 'city_2014.csv'
loc_list= []
line_list = []
with open(csv_path, 'r') as handle:
for line in handle.readlines()[1:]:
loc = line.split(',')[1]
loc_list.append(loc)
line_list.append(line.strip()) num = 0 # 将坐标信息写入的新文本文件
new_path = local_path + 'city_2014_google.csv'
f_handle = open(new_path, 'w') for i in range(len(loc_list)):
loc = loc_list[i]
try:
# Three type apis:baidu,qq,google.
# 百度API
# request = ('http://api.map.baidu.com/geocoder/v2/?address=' + loc
# + '&output=json&ak=你的ak')
# 腾讯API
# request = ('http://apis.map.qq.com/ws/geocoder/v1/?address=' + loc
# + '&key=你的key')
# 谷歌API
request = ('https://maps.googleapis.com/maps/api/geocode/json?address='
+ loc + '&key=你的key')
response = requests.get(request)
response.raise_for_status()
num += 1
print('HTTP request successed!--{}'.format(num))
except Exception as e:
print('HTTP request failed!-{}'.format(str(e))) print(response.text) # eval将json字符串转变为字典
lat = eval(response.text)['results'][0]['geometry']['location']['lat']
lng = eval(response.text)['results'][0]['geometry']['location']['lng']
# 将坐标信息写入硬盘
f_handle.write(line_list[i] + ',' + str(round(lat,2)) + ','
+ str(round(lng,2)) + '\n')
查询时会返回这样的信息,可以是json或者xml,这里我选择的是json:

这里是结果,第3、4个分别是纬度和经度:

3、优缺点对比
限制指的是限速和限量。
百度api:限制小,但是不准确; http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
腾讯api:虽准确,但限制太大;
谷歌api:限制中等,且准确;(最终用) https://developers.google.com/maps/documentation/javascript/geocoding
谷歌、腾讯、百度相应API批量获取地理位置坐标信息及其优缺点的更多相关文章
- android菜鸟学习笔记31----Android使用百度地图API(二)获取地理位置及地图控制器的简单使用
1.获取当前地理位置: Android中提供了一个LocationManager的类,用于管理地理位置.不能通过构造函数获取该类的实例,而是通过Context的getSystemService(): ...
- Python利用百度地图api批量获取地址经纬度
1.pip安装xlrd,xlwt,requests模块. 2.在工程目录处放置地点Excel文件. python2.7.13代码: #coding:utf-8 import xlrd import x ...
- 利用百度翻译API,获取翻译结果
利用百度翻译API,获取翻译结果 translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys reload(sys) sys.set ...
- 百度地图API 批量添加 带检索功能的信息窗口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 利用百度地图API,获取经纬度坐标
利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代 ...
- Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API
原文 Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 在Win8 Store 项目中可以使用的地图主要有微软的Bing Map,目前高德地图sdk也支持Wi ...
- 用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)
<?php //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function getip(){ if(!empty($_SERVE ...
- 使用百度地图API自动获取地址和经纬度
先上效果图,这是直接点击获取经纬度和地址的.没有做搜索的功能. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- 使用百度地图api接口获取公交地图路线和车站
需要在页面文件中引用百度的js @*<script type="text/javascript" src="http://api.map.baidu.com/api ...
随机推荐
- VxWorks中的中断应用设计要点
硬件中断处理是实时系统设计中的关键性问题,设计人员有必要对其作深入研究,以更好地满足开发工作需要.文中以VxWorks操作系统为软件平台,讨论了在实时系统中进行中断应用设计时要注意的一些问题.由于软硬 ...
- C# GUID介绍和的使用
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...
- java实现多线程三种方法
1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法 3.实现callable接口,重写call方法
- 异常-----web.xml文件报错 Multiple annotations found at this line: - cvc-complex-type.2.4.b: The content of element 'welcome-file-list' is not complete. One of '{"http://java.sun.c
1,检查抬头是不是有问题. <?xml version="1.0" encoding="UTF-8"?><web-app version=&q ...
- 【BZOJ3262】陌上花开(CDQ分治)
[BZOJ3262]陌上花开(CDQ分治) 题解 原来放过这道题目,题面在这里 树套树的做法也请点上面 这回用CDQ分治做的 其实也很简单, 对于第一维排序之后 显然只有前面的对后面的才会产生贡献 那 ...
- Bzoj3160:万径人踪灭
题面 Bzoj Sol 求不连续回文子序列的个数 \(ans=\)回文子序列个数-连续回文子序列个数 即回文子序列个数-回文子串个数 后面直接\(Manacher\)就好了 考虑前面的 枚举对称轴,设 ...
- [BZOJ1030] [JSOI2007] 文本生成器 (AC自动机 & dp)
Description JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版.该软件可以随机生成一些文章―――总是 ...
- [BZOJ1005] [HNOI2008] 明明的烦恼 (prufer编码)
Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N ...
- css - 移动端reset汇总与注释
1.解决移动端触摸a元素,会有蓝色阴影 正常状态: 点击时状态: a{ outline:none; -webkit-tap-highlight-color: rgba(,,,); } -webkit- ...
- 【Spring源码分析】Bean加载流程概览
代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...