成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

別再聽中介忽悠了,用Python租到最合適的房子!

開發 前端
高德API還有很多其他的功能,比如POI周邊搜索可以查詢小區周邊指定范圍內(比如方圓1公里)是否有便利店,健身房等設施,結合前端組件還可以在地圖中顯示出指定的位置,合理運用這些功能,能夠實現更多的個性化需求,文中只用了很小一部分,大伙可以參照API文檔自行嘗試。

為了確保換房后我和女友前往各自上班地點的通勤時間都在可接受范圍內,我需要知道從各處房源位置前往兩家公司所需的時間。為了獲取這些信息,我們需要借助高德地圖api這個工具。

圖片

使用高德api,我們能夠輕松地根據地址或名稱獲取到地址對應的坐標位置,進而獲取到對應地點的通勤和周邊信息,十分的方便。

在使用api之前,我們首先需要獲取到自己的Key值。進入高德開放平臺網站,完成個人開發者注冊和zfb實名認證后,點擊控制臺→應用管理→我的應用→創建新應用,來完成應用的創建。

之后點擊右上角的添加?,來為自己創建一個Key,注意這里服務平臺要選擇Web服務,不同選項對應的服務范圍是不同的。

圖片

創建key值之后,就可以開始使用api獲取數據了。

首先我們要根據地點名稱得到對應的坐標值,然后用出發地和目的地的坐標調用接口,得到兩個位置之間的通勤時間。

思路理清之后,就到了操作時間了。

獲取房源坐標

因為總的房源數量太大,所以我們可以用小區的坐標位置代替房源的具體位置進行調用,這樣需要進行的處理量就大大減小了,可以節省一些不必要的成本。

因此首先我們對上篇文章中獲取到的數據做一個簡單的處理,利用set對小區名做一個去重。

csv_read=pd.read_csv('../document/sh.csv',header=None)
village_set = set(csv_read[2])
village_list = list(village_set)

獲取到小區列表后,我們嘗試調用一下獲取坐標的API。

# 高德API的URL
geourl = 'https://restapi.amap.com/v3/geocode/geo'

# 地址前要加地區名,否則可能定位到其他城市
params = {'key':'在這里填入個人的Key值',
'address': '上海市國金中心'}
# 發送請求
res = requests.get(geourl, params)
jd = json.loads(res.text)
# 返回值的具體格式可以在API文檔中查看
geopoint_1 = jd['geocodes'][0]['location']

print(geopoint_1)
# 121.502021,31.236814

調用成功之后,我們就可以用相同的方法,獲取到列表中所有小區的坐標。

獲取路程時間

在得到各個小區的坐標位置之后,我們就可以調用api獲取兩個坐標之間的路程時間了。

舉個例子,如果我需要獲取兩個坐標之間的公交地鐵通勤時間,可以用如下的方法:

# 高德API的URL
puburl = 'https://restapi.amap.com/v3/direction/transit/integrated?origin={}&destination={}&key={}&time=9:00&city=上海'

# 發送請求
r=requests.get(puburl.format(geopoint_1, geopoint_vill, '在這里填入個人的Key值'))
r=r.text
jsonData=json.loads(r)
# 獲取步行距離
publength = round(int(jsonData['route']['transits'][0]['walking_distance'])/1000, 2)
# 獲取總時間
pubtime = round(int(jsonData['route']['transits'][0]['duration'])/60)

這里一般會獲取到多條路線,不過因為第一條路線通常是用時最短的,所以這里就以第一條路線的數據為代表。

用類似的方法,通過使用不同的url,就能獲取到駕車、步行等方式的路程時間。不過要注意不同的這些api的輸入和輸出參數是有一定區別的,具體的要參照文檔。

完整代碼

import pandas as pd
import requests
import json
import csv
import codecs

# 創建導出文件
with open(r'..\document\village.csv', 'wb+')as fp:
fp.write(codecs.BOM_UTF8)
f = open(r'..\document\village.csv','w+',newline='', encoding='utf-8')
writer = csv.writer(f)
writer.writerow(("小區名", "坐標", "步行距離-地點1","通勤時間-地點1", "步行距離-地點2","通勤時間-地點2"))

geourl = 'https://restapi.amap.com/v3/geocode/geo'
puburl = 'https://restapi.amap.com/v3/direction/transit/integrated?origin={}&destination={}&key={}&time=9:00&city=上海'

# 讀取文件
csv_read=pd.read_csv('../document/sh.csv',header=None)
village_set = set(csv_read[2])
village_list = list(village_set)

# 獲取第一個坐標
geourl = 'https://restapi.amap.com/v3/geocode/geo'
# 地址前要加地區名,否則可能定位到其他城市
params = {'key':'在這里填入個人的Key值',
'address': '上海市國金中心'}
# 發送請求
res = requests.get(geourl, params)
jd = json.loads(res.text)
# 返回值的具體格式可以在API文檔中查看
geopoint_1 = jd['geocodes'][0]['location']

# 獲取第二個坐標
params = {'key':'在這里填入個人的Key值',
'address': '上海市國正中心'}
res = requests.get(geourl, params)
jd = json.loads(res.text)
geopoint_2 = jd['geocodes'][0]['location']

for adr in village_list:
# 獲取小區坐標
params = {'key':'在這里填入個人的Key值',
'address': '上海市'+adr}
res = requests.get(geourl, params)
jd = json.loads(res.text)
geopoint = jd['geocodes'][0]['location']

# 獲取第一個位置的信息
r=requests.get(puburl.format(geopoint_1, geopoint, '在這里填入個人的Key值'))
r=r.text
jsonData=json.loads(r)
publength_1 = round(int(jsonData['route']['transits'][0]['walking_distance'])/1000, 2)
pubtime_1 = round(int(jsonData['route']['transits'][0]['duration'])/60)

# 獲取第二個位置的信息
r=requests.get(puburl.format(geopoint_2, geopoint, '在這里填入個人的Key值'))
r=r.text
jsonData=json.loads(r)
publength_2 = round(int(jsonData['route']['transits'][0]['walking_distance'])/1000, 2)
pubtime_2 = round(int(jsonData['route']['transits'][0]['duration'])/60)

writer.writerow((adr, geopoint, publength_1, pubtime_1, publength_2, pubtime_2))

f.close()

將腳本執行后,就能獲得各個小區距離目標地點的路程時間。后面再經過一些簡單的篩選,就能大大縮小找房的選擇范圍了。

圖片

高德API還有很多其他的功能,比如POI周邊搜索可以查詢小區周邊指定范圍內(比如方圓1公里)是否有便利店,健身房等設施,結合前端組件還可以在地圖中顯示出指定的位置,合理運用這些功能,能夠實現更多的個性化需求,文中只用了很小一部分,大伙可以參照API文檔自行嘗試。

不過也要注意一點,對于個人開發者而言,高德API每日的調用次數是有限制的,為了避免超額,大家在爬取數據的時候可以根據實際情況適度縮小范圍,減少處理的數據量。

圖片

以上就是這次找房故事的全部內容了,希望能對大家有所幫助,也祝愿每個打工人都能住的舒心,早日有房。?

責任編輯:武曉燕 來源: Python技術
相關推薦

2015-08-27 13:24:59

招聘

2021-01-19 06:05:28

Python數據分析編程語言

2009-01-12 17:28:10

服務器虛擬化VMware

2017-10-17 12:49:18

無線AP無線AP

2009-03-17 09:49:00

有線寬帶接入方案ADSL

2013-12-16 13:55:42

ESXi存儲

2018-06-19 10:38:42

數據中心遷移時機

2020-12-31 09:39:39

應用圖像格式SVGOMG

2011-10-18 17:00:02

2018-02-25 10:37:26

語言數據分析工具

2009-09-22 10:20:00

專線接入

2016-02-29 10:15:16

公有云私有云云平臺

2022-05-26 15:51:47

AMD

2019-09-25 20:32:26

Python前程無憂職位

2018-07-25 15:43:27

機器學習框架開發

2017-03-20 16:00:20

深度學習GPU

2011-04-22 11:03:39

Ubuntufirefox

2015-02-13 10:42:31

前端工具Dreamweaver

2013-10-22 10:38:43

C++編程語言

2011-05-07 14:59:18

投影幕投影機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合色丁香婷婷六月图片 | 亚洲一区电影 | 精品国产乱码久久久久久闺蜜 | 一区二区三区视频在线观看 | 99精品国自产在线观看 | 在线观看特色大片免费网站 | 欧美激情国产精品 | 欧美一区二区在线 | 精品国产一区二区在线 | 在线观看精品 | 伊人伊成久久人综合网站 | gav成人免费播放视频 | 国产在线一区二区三区 | 国产一区二区三区在线视频 | 亚洲精品久久久久avwww潮水 | 狠狠干五月天 | 亚洲国产精品久久久 | 国产乱码精品一区二区三区中文 | 99色视频| 久久久久av| 超碰日本 | 久久久久黄色 | 午夜久久久 | 在线a视频网站 | 日韩久久精品 | 亚洲激情视频在线 | 亚洲成人精品视频 | 成人免费一区二区三区视频网站 | 久草色视频 | 奇米超碰在线 | 亚洲欧洲精品在线 | 视频在线一区二区 | 国内精品视频在线 | 久久精品免费一区二区三 | 亚洲免费精品一区 | 精品国产乱码久久久久久88av | 嫩草视频在线免费观看 | 国产精品久久久久久一区二区三区 | 日韩一区二区精品 | 精品一区二区免费视频 | 国产成人在线一区二区 |