从脚本中删除lat lon的Python脚本

时间:2015-03-11 03:47:58

标签: python

我有一个包含地址的数据库,我想运行一个脚本来从Google地图中删除lat lon信息并将其输入数据库。

我想通过输入这样的地址来呼叫网站: http://maps.google.com/maps?q=1600+Amphitheatre+Parkway+Mountain+View+CA+94043

其中q =之前的eveything是静态的,之后的所有内容都是由脚本生成的。

点击地址后,会返回: https://www.google.com/maps/place/1600+Amphitheatre+Pkwy,+Mountain+View,+CA+94043/@37.4224879,-122.08422,17z/data=!3m1!4b1!4m2!3m1!1s0x808fba027820e5d9:0x60a90600ff6e7e6e

我如何A)编程Python访问第一个网站,然后将返回的网站保存到变量,B)将@后面的两个数字拉成2个单独的变量?

1 个答案:

答案 0 :(得分:0)

您也可以使用Google API v3。根据答案GoogleMaps API -address to coordinates (latitude,longitude)

import urllib
import simplejson
googleGeocodeUrl = 'http://maps.googleapis.com/maps/api/geocode/json?'
def get_coordinates(query, from_sensor):
    query = query.encode('utf-8')
    params = {
        'address': query,
        'sensor': "true" if from_sensor else "false"
    }
    url = googleGeocodeUrl + urllib.urlencode(params)
    json_response = urllib.urlopen(url)
    response = simplejson.loads(json_response.read())
    if response['results']:
        location = response['results'][0]['geometry']['location']
        latitude, longitude = location['lat'], location['lng']
        print query, latitude, longitude
    else:
        latitude, longitude = None, None
        print query, "<no results>"
        print
    return latitude, longitude


u  = 'http://maps.google.com/maps?q=1601+Amphitheatre+Parkway+Mountain+View+CA+94043'
get_coordinates(u[30:],'False')

1601 + Amphitheatre + Parkway + Mountain + View + CA + 94043 37.4240679 -122.0859093