JSON in google Maps

本文介绍了一个使用Python调用Google Maps地理编码API的示例程序,该程序能够将地址字符串转换为经纬度坐标,并获取地点ID。通过输入地址,程序会返回详细的地理位置信息。
import urllib
import json

serviceurl='http://maps.googleapis.com/maps/api/geocode/json?'

while True:
    address = raw_input('Enter location: ')
    if len(address) < 1 : break

    url = serviceurl + urllib.urlencode({'sensor':'false', 'address': address})
    print 'Retrieving', url
    uh = urllib.urlopen(url)
    data = uh.read()
    print 'Retrieved',len(data),'characters'

    try: js = json.loads(str(data))
    except: js = None
    if 'status' not in js or js['status'] != 'OK':
        print '==== Failure To Retrieve ===='
        print data
        continue

    print json.dumps(js, indent=4)

    lat = js["results"][0]["geometry"]["location"]["lat"]
    lng = js["results"][0]["geometry"]["location"]["lng"]
    placeid=js["results"][0]["place_id"]
    print 'lat',lat,'lng',lng,'place_id',placeid
    location = js['results'][0]['formatted_address']
    print location
<think>好的,我现在需要解决用户关于获取Google Maps Directions API的JSON响应示例和使用方法的问题。首先,我得回想一下Google Maps Directions API的基本用法,以及常见的请求参数和响应结构。 用户可能想知道如何构造API请求,特别是通过HTTP GET或POST请求,以及所需的参数,比如起点(origin)、终点(destination)、API密钥(key)。此外,可能还需要说明如何指定交通方式(mode),比如驾车、步行、骑行等。 接下来,我需要提供一个JSON响应示例。通常,Directions API的响应包括路线(routes)、路段(legs)、步骤(steps)、距离和持续时间等信息。需要确保示例中的结构清晰,比如routes数组下的legs和steps,以及每个步骤的详细说明。 另外,用户可能想知道如何处理响应,例如解析JSON数据来获取导航步骤。可能需要提到使用编程语言(如Python)中的requests库发送请求,并用json模块解析响应。还要注意安全性和错误处理,比如检查HTTP状态码,处理API返回的错误信息。 还需要考虑用户可能遇到的常见问题,例如API密钥的获取、启用API服务、配额限制等。可能需要提醒用户替换示例中的API密钥,并参考官方文档获取最新信息。 最后,根据用户的要求,生成相关问题,比如如何获取API密钥、处理多段路线、解析JSON响应、错误处理以及与其他地图API的比较。这些问题可以帮助用户进一步了解和使用Directions API。</think>以下是Google Maps Directions API的JSON响应示例及基本使用方法说明: ### 基本请求示例 使用HTTP GET请求格式: ```http https://maps.googleapis.com/maps/api/directions/json? origin=Disneyland& destination=Universal+Studios+Hollywood& key=YOUR_API_KEY ``` ### 典型JSON响应结构 ```json { "routes": [ { "legs": [ { "distance": { "text": "35.6 km", "value": 35561 }, "duration": { "text": "40 mins", "value": 2421 }, "steps": [ { "travel_mode": "DRIVING", "start_location": { "lat": 33.8141, "lng": -117.9195 }, "end_location": { "lat": 34.1381, "lng": -118.3533 }, "html_instructions": "Head <b>north</b> on Disneyland Dr", "distance": { "text": "0.3 km", "value": 263 } }, // 更多导航步骤... ] } ], "overview_polyline": { "points": "a~l~Fjk~uOwHJy@P..." // 路线坐标编码字符串 } } ], "status": "OK" } ``` ### 关键参数说明 1. **必需参数**: - `origin`: 起点地址/坐标 - `destination`: 终点地址/坐标 - `key`: API密钥 2. **常用可选参数**: - `mode`: 交通方式(driving/walking/bicycling/transit) - `waypoints`: 途径点(最多23个) - `alternatives`: 是否返回备选路线 - `departure_time`: 出发时间(用于实时路况) ### Python调用示例 ```python import requests API_KEY = "your_api_key_here" url = f"https://maps.googleapis.com/maps/api/directions/json?origin=Tokyo+Station&destination=Shibuya&key={API_KEY}" response = requests.get(url) data = response.json() if data["status"] == "OK": first_route = data["routes"][0] for step in first_route["legs"][0]["steps"]: print(step["html_instructions"], "-", step["distance"]["text"]) else: print("Error:", data.get("error_message", "Unknown error")) ``` ### 注意事项 1. 需要先[创建Google Cloud项目并启用Directions API](https://console.cloud.google.com/) 2. 免费套餐每日有200美元等效配额(约40,000次基础请求) 3. 坐标参数需使用`lat,lng`格式,如`origin=34.052235,-118.243683` 4. 实时路况数据需要启用高级API服务[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值