python 谷歌地图api_利用google的API获取世界城市经纬度(python实现)

本文展示了如何使用Python通过Google Maps API获取世界城市的经纬度坐标。通过编码处理XML响应,从中提取出经度和纬度数据。
摘要由CSDN通过智能技术生成

google API 需要  …….

#-*- coding: utf8 -*-

from xml.dom import minidom

import urllib2, urllib

#这个KEY本来是google要求的,否则不允许用它的API,可是我没用这个KEY也可以啊…囧了

KEY = ‘ABQIAAAAm5e8FerSsVCrPjUC9W8BqBShYm95JTkTs6vbZ7nB48Si7EEJuhQJur9kGGJoqUiYond0w-7lKR6JpQ’

class GetData(object):

def __init__(self):

self.values = {‘q’: ”,

‘sensor’: ‘false’,

‘output’: ‘xml’,

‘oe’: ‘utf8’}

self.url = ‘http://maps.google.com/maps/geo’

def catchData(self, city, key=KEY):

”’

利用google map api从网上获取city的经纬度。

”’

self.values[‘q’] = city

#self.values[‘key’] = key

arguments = urllib.urlencode(self.values)

url_get = self.url + ‘?’ + arguments

handler = urllib2.urlopen(url_get)

try:

self.lon, self.lat = self.parseXML(handler)

#print ‘lon:%d\tlat:%d’ % (self.lon, self.lat)

return self.lon, self.lat

except IndexError:

print ‘城市: %s 发生异常!’ % (city,)

finally:

handler.close()

def parseXML(self, handler):

”’

解析从API上获取的XML数据。

”’

xml_data = minidom.parse(handler)

data = xml_data.getElementsByTagName(‘coordinates’)[0].firstChild.data

coordinates = data.split(‘,’)

lon = int(float(coordinates[0]) * 1000000)

lat = int(float(coordinates[1]) * 1000000)

return lon, lat

if __name__ == ‘__main__’:

getData = GetData()

cityName = raw_input(‘请输入一个城市:’)

longitude, latitude = getData.catchData(cityName)

print ‘%s \n经度:%d\n纬度:%d\n’ % (cityName, longitude, latitude)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值