代码拉取完成,页面将自动刷新
import urllib.request #发送请求
from urllib import parse #URL编码
import json #解析json数据
import jsonpath #提取json数据
import time #导入时间包
import serial #导入串口包
def lujing_api():
#调用驾车路径规划API
url2='https://restapi.amap.com/v3/direction/driving?origin='+origin+'&destination='+destination+'&extensions=all&output=json&strategy=6&&key=8397f2ab68c154e69d75d8d93eb9fbaa'
#将一些符号进行URL编码
newUrl2 = parse.quote(url2, safe="/:=&?#+!$,;'@()*[]")
#发送请求
response2 = urllib.request.urlopen(newUrl2)
#接收数据
data2 = response2.read()
#解析json文件
jsonData2 = json.loads(data2)
#输出该json中所有road的值
road=jsonpath.jsonpath(jsonData2,'$..road')
#从json文件中提取距离
distance = jsonData2['route']['paths'][0]['distance']
#输出该json中所有instruction的值
instruction=jsonpath.jsonpath(jsonData2,'$..instruction')
print(instruction)
if __name__ == '__main__':
raw = input("请输入目的地地址:")
#调用地理编码API
url3='https://restapi.amap.com/v3/geocode/geo?address='+raw+'&output=json&key=8397f2ab68c154e69d75d8d93eb9fbaa'
#将一些符号进行URL编码
newUrl3 = parse.quote(url3, safe="/:=&?#+!$,;'@()*[]")
#发送请求
response3 = urllib.request.urlopen(newUrl3)
#读取数据
data3 = response3.read()
#解析json数据
jsonData3 = json.loads(data3)
#geocodes→0→location得到经纬度,写入字典
destination = jsonData3['geocodes'][0]['location']
data_ser = serial.Serial("COM8",115200,timeout = 5)
data_ser.flushInput()
time.sleep(1) #延时5秒
#data_ser.write('AT+CGPS=1\r\n'.encode())
time.sleep(1) #延时90秒
data_ser.write('AT+CGPSINFO\r\n'.encode())
time.sleep(0.1) #延时0.1秒等待数据传入
data_count = data_ser.inWaiting()
if data_count !=0 :
recv = data_ser.read(data_ser.in_waiting).decode("gbk")
if ',,,,,,,,' in recv:
print("GPS is not ready")
else:
#将经纬度的字符串转换为浮点型数据
a1=float(recv[25:35])
a2=float(recv[39:49])
#将经纬度数值小数点向左移动两位
c1=a1/100
c2=a2/100
#处理后的经纬度数值保留六位小数
d1=float('%.6f'%c1)
d2=float('%.6f'%c2)
#将处理好的经纬度数值转换为字符串
b1=str(d1)
b2=str(d2)
origin=b2+','+b1
lujing_api()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。