python实现基于百度路径规划接口的坐标对获取两点驾车距离的计算

今天为大家介绍一种通过python实现坐标对间距离数据的获取方法。接口采用百度开发的路径规划接口。

  1.调用接口:

接口:(传入起点坐标串,结束坐标串;ak值需要注册百度开发者) 接口详细说明

http://api.map.baidu.com/direction/v2/driving?origin=40.01116,116.339303&destination=39.936404,116.452562&ak=您的AK  //GET请求

  2.AK值获取:

 注册成为开发者后需要添加应用,添加服务端应用勾选路径规划选项,其ak值才能调取该接口,不然将出现‘204,app拒绝服务’。

  

  3.实现思路

  1. 坐标对数据集(Y.txt)中获取坐标对;----->(x1,y1/x2,y2) ----->

    30.552413,114.267227/30.564768,114.235462/4758
  2. 日志记录(logo.txt)记录抓取过的记录序号(开始默认为-1,其后不再更改记录),用于断点续爬;----->(-1、0、1.....)
  3. 结果集(save.txt)用于记录数据;----->(x1,y1/x2,y2/s)----->
    30.552413,114.267227/30.564768,114.235462/4758
  4. 文件目录结构如下图:

  4.源代码

 1 # coding=utf-8
 2 import requests
 3 import re
 4 import os
 5 from time import sleep
 6 #访问url,返回数据JSON
 7 def get_JSON(startStr,endStr,key):
 8     sleep(0.5)
 9     url=‘http://api.map.baidu.com/direction/v2/driving?origin=‘+startStr+‘&destination=‘+endStr+‘&ak=‘+key
10     # print (url)
11     headers = {
12         ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36‘,
13         ‘referer‘:"http://www.baidu.com",#伪造一个访问来源
14     }
15     poi_JSON = requests.get(url, headers=headers).json()
16     return poi_JSON
17
18
19 #发送请求获取json数据
20 def jiexi_Json(resJSON):
21     status=resJSON[‘status‘]
22     if status==0:# 请求到数据
23         # print(‘数据请求成功‘)
24         distance=resJSON[‘result‘][‘routes‘][0][‘distance‘]
25         print(‘路径计算完成‘,distance)
26         return distance
27     else:
28         if  status==1:
29             print(‘服务内部错误‘)
30         elif status==2:
31             print(‘参数无效‘)
32         elif status==2001:
33             print(‘无骑行路线‘)
34         elif status==240:
35             print(‘ak值注册不正确,未包含路径规划服务‘)
36         else:# 额度没有了
37             print(‘额度不够了!‘)
38
39 # 读取坐标对
40 def read_File(filePath):
41     file = open(filePath)
42     logoFilePath=‘logo.txt‘
43     logoFile=open(logoFilePath)
44     for oldIndex in logoFile:# 读取日志
45         for index, coorItemStr in enumerate(file): # 读取坐标对
46             if index>int(oldIndex):
47                 print(‘正在请求第‘,str(index+1),‘条数据‘)
48                 coorArr=coorItemStr.rstrip("\n").split(‘/‘)
49                 startStr=coorArr[0].split(‘,‘)[1]+‘,‘+coorArr[0].split(‘,‘)[0]
50                 endStr=coorArr[1].split(‘,‘)[1]+‘,‘+coorArr[1].split(‘,‘)[0]
51                 key=‘你自己的百度密钥‘ # 百度密钥
52                 #发送距离量算请求
53                 poi_JSON = get_JSON(startStr,endStr,key)
54                 distance=jiexi_Json(poi_JSON)
55                 saveStr=startStr+‘/‘+endStr+‘/‘+str(distance)
56                 saveText(‘saveY.txt‘,saveStr,‘a+‘)# 记录结果
57                 saveText(logoFilePath,str(index),‘w‘)# 记录数据请求日志
58             else:
59                 print(‘第‘,str(index+1),‘条数据已经请求完成‘)
60         print(‘数据转换已完成!‘)
61
62
63 # 以txt文件格式存储
64 def saveText(filePath,str,type):
65     type=(type if type else "a+")
66     # 打开一个文件
67     fo = open(filePath,type)
68     fo.write(str); #内容写入
69     fo.write(‘\n‘)
70     fo.close()# 关闭打开的文件
71
72 if __name__ == "__main__":
73     read_File(‘Y.txt‘)

py代码

  

原文地址:https://www.cnblogs.com/giserjobs/p/12354932.html

时间: 2024-11-08 17:38:04

python实现基于百度路径规划接口的坐标对获取两点驾车距离的计算的相关文章

iOS百度地图路径规划和POI检索详细总结-b

路径规划.png 百度地图的使用 百度地图API的导入网上说了许多坑,不过我遇到的比较少,这里就放两个比较常见的吧.坑一: 奥联WIFI_xcodeproj.png 如上图所示,在infoplist里加入这个字段,而且这里还可以设置提示的内容.不加的话,嘿嘿嘿,期待你的尝试.坑二:如下图 Pasted_Graphic_jpg.png 导入百度地图API运行之后报上图错误大约18到20个左右,解决方法添加libstdc++.6.0.9 的库.填完坑之后看一下我们今天要演示的效果吧. 路线规划图.g

基于百度风云榜开发的API数据接口-为APP资讯资讯服务

是基于百度搜索风云榜采集的新闻信息,,该资讯会更好的体现人们关注的人多事件与热词 通过数据采集,同时发布相信的数据开放API接口 1.取得热词信息列表 如:api.yi18.net/top/list 2.取得热词信息详细 如:api.yi18.net/top/show?id=1 更多的API文档 doc.yi18.net/topwendang 数据镜像网站:  top.yi18.net API数据接口的免费开放,希望为更多的APP开发者提供更专业的数据 接口.为APP开发提供更简单的新闻热点板块

ios百度地图-路径规划

百度地图的路径规划功能, 在使用百度路径的时候,出现了一些小问题,在此,分享一下自己的最简单的一个路径小demo 当然,前面的百度配置问题,我就不和大家讲了,因为这方面的资料太多了!现在,我来介绍一下这个小demo AppDelegate.m文件如下, #import "AppDelegate.h" import "rootViewController.h" @implementation AppDelegate (BOOL)application:(UIAppli

基于百度语音识别API的Python语音识别小程序

一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统:win10 语言:Python 版本:3.6.0 Python库:AipSpeech(百度语音识别SDK客户端),wave,PyAudio,paInt16 Python库安装:除百度为:pip install baidu-aip,其他直接 pip install *(库名) 即可. 三.原理概述

基于分层路网的路径规划算法

http://www.docin.com/p-1308678703.html 路径规划一般包括如下几种情况: 最短路径规划 最短时间规划 最经济规划 通过赋予图中的边以不同的权值来满足用户不同的需求 最短路径由于普通道路限速问题,未必是最短时间到达目的地, 可能上高速更快一些 分层思想 对于一个点P,以自身为中心,不断的扩大半径进行搜索,查看当前是否包括一个升级到高层路网的节点 如果有,说明当设置P为起点,然后设置T为终点,而且当distance(pt)> R,说明应该进行路网的升层 选择一个查

基于pgrouting的路径规划之一

最近接触pgrouting.把学习的结果记录下来. 利用pgrouting进行路径规划只能导入line数据,mutiline会出错.这一点在进行数据导入的时候需要注意. 一.创建数据库 有两种方法: 1.pgadmin可视化工具创建 直接把数据道路postgis模版数据库或以postgis模版数据库为模版创建数据库,这样创建的数据库直接支持空间查询和空间分析. 2.命令行创建数据库 创建数据库 createdb -U postgres routing 让数据库支持PostGIS和pgRoutin

百度地图api的简单应用(二):轻量级路径规划

同上篇的原理,我们还是输入url,返回json文件. 而由图可见,路径规划返回的json文件内容可能会很多.杂: 因此后续的处理与上篇略有不同. import json import requests feature_data = [] url_0='http://api.map.baidu.com/directionlite/v1/driving?output=json&' ak='你的密钥' origin='31.4,121.4' destination='31.5,121.5' url=u

python中基于descriptor的一些概念(下)

@python中基于descriptor的一些概念(下) 3. Descriptor介绍 3.1 Descriptor代码示例 3.2 定义 3.3 Descriptor Protocol(协议) 3.4 Descriptor调用方法 4. 基于Descriptor实现的功能 4.1 property 4.2 函数和方法,绑定与非绑定 4.3 super 5. 结尾 3. Descriptor介绍 3.1 Descriptor代码示例 class RevealAccess(object):   

Android 高仿微信实时聊天 基于百度云推送

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38799363 ,本文出自:[张鸿洋的博客] 一直在仿微信界面,今天终于有幸利用百度云推送仿一仿微信聊天了~~~ 首先特别感谢:weidi1989分享的Android之基于百度云推送IM ,大家可以直接下载:省了很多事哈,本例中也使用了weidi的部分代码,凡是@author way的就是weidi1989的代码~~ 1.效果图 核心功能也就上面的两张图了~~~我拿着手机和模拟器