吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7647|回复: 13
收起左侧

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

[复制链接]
Dmail 发表于 2019-1-11 15:38
本帖最后由 wushaominkk 于 2019-1-11 16:37 编辑

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

网页查询图:
大沙东到xx.png
python运行结果图
调试输出.png
下面贴出代码:
[Python] 纯文本查看 复制代码
'''
文件名: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很方便安装
高苗苗 发表于 2019-1-11 16:12
祝你早日找到合适的工作

免费评分

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

查看全部评分

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

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

本版积分规则

返回列表

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

GMT+8, 2024-11-16 08:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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