目录:

  • 申请ak
  • 批量获取地理位置
  • 优缺点对比

目的:通过给定的地理位置名称(如:北京市海淀区上地十街十号),获取经纬度信息。

1、申请ak

以百度Geocoding API为例:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

  • 提交之后就会有访问应用的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批量获取地理位置坐标信息及其优缺点的更多相关文章

  1. android菜鸟学习笔记31----Android使用百度地图API(二)获取地理位置及地图控制器的简单使用

    1.获取当前地理位置: Android中提供了一个LocationManager的类,用于管理地理位置.不能通过构造函数获取该类的实例,而是通过Context的getSystemService(): ...

  2. Python利用百度地图api批量获取地址经纬度

    1.pip安装xlrd,xlwt,requests模块. 2.在工程目录处放置地点Excel文件. python2.7.13代码: #coding:utf-8 import xlrd import x ...

  3. 利用百度翻译API,获取翻译结果

    利用百度翻译API,获取翻译结果 translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys reload(sys) sys.set ...

  4. 百度地图API 批量添加 带检索功能的信息窗口

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 利用百度地图API,获取经纬度坐标

    利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代 ...

  6. Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API

    原文 Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 在Win8 Store 项目中可以使用的地图主要有微软的Bing Map,目前高德地图sdk也支持Wi ...

  7. 用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)

    <?php   //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function getip(){     if(!empty($_SERVE ...

  8. 使用百度地图API自动获取地址和经纬度

    先上效果图,这是直接点击获取经纬度和地址的.没有做搜索的功能. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...

  9. 使用百度地图api接口获取公交地图路线和车站

    需要在页面文件中引用百度的js @*<script type="text/javascript" src="http://api.map.baidu.com/api ...

随机推荐

  1. VxWorks中的中断应用设计要点

    硬件中断处理是实时系统设计中的关键性问题,设计人员有必要对其作深入研究,以更好地满足开发工作需要.文中以VxWorks操作系统为软件平台,讨论了在实时系统中进行中断应用设计时要注意的一些问题.由于软硬 ...

  2. C# GUID介绍和的使用

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...

  3. java实现多线程三种方法

    1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法 3.实现callable接口,重写call方法

  4. 异常-----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 ...

  5. 【BZOJ3262】陌上花开(CDQ分治)

    [BZOJ3262]陌上花开(CDQ分治) 题解 原来放过这道题目,题面在这里 树套树的做法也请点上面 这回用CDQ分治做的 其实也很简单, 对于第一维排序之后 显然只有前面的对后面的才会产生贡献 那 ...

  6. Bzoj3160:万径人踪灭

    题面 Bzoj Sol 求不连续回文子序列的个数 \(ans=\)回文子序列个数-连续回文子序列个数 即回文子序列个数-回文子串个数 后面直接\(Manacher\)就好了 考虑前面的 枚举对称轴,设 ...

  7. [BZOJ1030] [JSOI2007] 文本生成器 (AC自动机 & dp)

    Description JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版.该软件可以随机生成一些文章―――总是 ...

  8. [BZOJ1005] [HNOI2008] 明明的烦恼 (prufer编码)

    Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N ...

  9. css - 移动端reset汇总与注释

    1.解决移动端触摸a元素,会有蓝色阴影 正常状态: 点击时状态: a{ outline:none; -webkit-tap-highlight-color: rgba(,,,); } -webkit- ...

  10. 【Spring源码分析】Bean加载流程概览

    代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...