吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8254|回复: 13
上一主题 下一主题
收起左侧

[Python 原创] [python]百度地图API,正/逆地理编码,路线规划接口的调用,实现输出出行的距离和...

[复制链接]
跳转到指定楼层
楼主
Dmail 发表于 2019-1-11 15:38 回帖奖励
本帖最后由 wushaominkk 于 2019-1-11 16:37 编辑

说一些无关的:年前被裁,准备找一份离家近的工作,想偷懒在采集一些招聘信息,把招聘公司的地址给拔下来,然后计算出最近地铁站到公司的地址,离得比较近的就去看下公司里面有没有适合我的工作。(估计也就只有销售、客服之类的工作才有人要啊,难受!还是先回家过年,上一份工作也是客服...)最后给各位看官比个心,祝新年快乐!

网页查询图:

python运行结果图

下面贴出代码:
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
'''
文件名:L17.py
作者:小饭团
创建时间:2019年1月11日15:17:03
文件描述:调用Web服务API接口,百度地图路线规划 正/逆地理编码
'''
#-*- coding:utf-8 -*-
 
import urllib.parse
import urllib.request
import json
 
key='62PM27fx1Fbhq1pOWdpRlWt2o9B8tL9O'
#自定义类型
'''
属性名1:x 用于存储经度 类型 float
属性名2:y 用于存储纬度 类型 float
'''
class locationXY:
        def __init__(self,x,y):
                self.x=x
                self.y=y
#正/逆地理编码
'''
函数名:getLocation
参数一:address 地名 类型 str 内部字符串类型
返回自定义类型数据 locationXY
'''
def getLocation(address):
        data = urllib.parse.urlencode({'address': address, 'output': 'json','ak':key})
        response = urllib.request.urlopen('http://api.map.baidu.com/geocoder/v2/?%s' % data)
 
        html = response.read()
        data = html.decode('utf-8')
        result=json.loads(data)
        lng=(result['result']['location']['lng'])
        lat=(result['result']['location']['lat'])       
        l=locationXY(lng,lat)
        return l
 
#百度地图路线规划服务
'''
函数名:计算所有路线
参数一:origin 起点位置 自定义类型locationXY
参数二:destionation 终点位置 自定义类型locationXY
无返回值
'''
def 计算所有路线(origin,destionation):
        '''
        tactics_incity 市内公交换乘策略       
                可选,默认为0
                可选值:
                0 推荐
                1 少换乘
                2 少步行
                3 不坐地铁
                4 时间短
                5 地铁优先
        '''
        tactics_incity=0       
        data = urllib.parse.urlencode({'origin':'%s,%s'%(origin.y,origin.x),'destination':'%s,%s'%(destionation.y,destionation.x),'tactics_incity':tactics_incity,'ak':key})
        response = urllib.request.urlopen('http://api.map.baidu.com/direction/v2/transit?%s' % data)
        html = response.read()
        data = html.decode('utf-8')
        result = json.loads(data)
        #print(data)
        路线总数 = result['result']['total']
        if (result['status']==0):
                for x in range(路线总数):
                                if (result['status']==0):
                                        distance=result['result']['routes'][x]['distance']
                                        duration=result['result']['routes'][x]['duration']
                                        print('路线:%s,距离%s米,花费%s分钟'%(x,distance,duration/60))
        else:
                print('error : %d'%result['status'])
                '''
                status 备注
                        0:成功
                        1:服务器内部错误
                        2:参数无效
                        1001:没有公交方案
                        1002:没有匹配的POI
                '''
 
 
 
def main():
        l1 = locationXY(113.464838,23.111949)#大沙东地铁站的坐标
        l2 = getLocation('御富科贸园b2座205-20')
        #print("%s\n%s"%(l1.x,l1.y))
        计算所有路线(l1,l2)
        #l2 =
if __name__ == '__main__':
        main()

PS:代码里面的key,要换成自己的key。创建的应用类型为服务端,然后将自己电脑的ip加进去就可以了。

免费评分

参与人数 3吾爱币 +7 热心值 +3 收起 理由
funnyblue + 1 + 1 谢谢@Thanks!
99910369 + 1 + 1 用心讨论,共获提升!
wushaominkk + 5 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| Dmail 发表于 2019-1-11 15:53 |楼主
给自己加个油,努力写代码,记录当前代码量。
检查当前运行目录下的所有.py文件:
E:\pythonworkspace
共25个文件,1019行代码

检查当前运行目录下的所有.html文件:
G:\html5 code
共64个文件,1800行代码

检查当前运行目录下的所有.js文件:
G:\html5 code
共0个文件,0行代码

检查当前运行目录下的所有.css文件:
G:\html5 code
共19个文件,435行代码

检查当前运行目录下的所有.java文件:
E:\java code
共1个文件,17行代码

总计109个文件,3271行代码
[Finished in 0.2s]

推荐
 楼主| Dmail 发表于 2019-1-11 16:33 |楼主
mengsiyiren 发表于 2019-1-11 16:21
大佬,还是有些看不懂,代码是复制到哪里?Python?

嗯  需要搭建python环境,然后代码复制到ide里面执行一下就好了。
ide推荐notepad++ 或者 sublime text3。
python环境搭建教程,可以在站内搜索以下,有人发过相关教程的。
python比较好的地方,语法简洁,第三方库比较多,而且使用pip很方便安装
3#
高苗苗 发表于 2019-1-11 16:12
祝你早日找到合适的工作

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Dmail + 1 + 1 谢谢@Thanks!

查看全部评分

头像被屏蔽
4#
Wise_58 发表于 2019-1-11 16:14
提示: 作者被禁止或删除 内容自动屏蔽
5#
mengsiyiren 发表于 2019-1-11 16:21
大佬,还是有些看不懂,代码是复制到哪里?Python?
6#
YuLoo 发表于 2019-1-11 16:29
大佬,膜拜,默默的收藏
8#
Hwk123 发表于 2019-1-11 17:00
真巧 我也在大沙··· 支持一下 说不定不久就用得上
9#
superlaomao 发表于 2019-1-11 17:51
楼主是计算机毕业吗??
10#
 楼主| Dmail 发表于 2019-1-11 18:04 |楼主
superlaomao 发表于 2019-1-11 17:51
楼主是计算机毕业吗??

是的..上学的时候学的东西都丢给老师了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-6-6 05:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表