import
urllib.parse
import
urllib.request
import
json
key
=
'62PM27fx1Fbhq1pOWdpRlWt2o9B8tL9O'
class
locationXY:
def
__init__(
self
,x,y):
self
.x
=
x
self
.y
=
y
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
def
计算所有路线(origin,destionation):
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)
路线总数
=
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'
])
def
main():
l1
=
locationXY(
113.464838
,
23.111949
)
l2
=
getLocation(
'御富科贸园b2座205-20'
)
计算所有路线(l1,l2)
if
__name__
=
=
'__main__'
:
main()