获取clientheight为0_用10行python代码获取全国城市交通生活圈
今天在網上沖浪看到一個很花哨的數據,全國各城市主要商圈從早上6點到晚上10點的20min,30min,45min,60min,90min生活圈輪廓。
1 獲取思路
按下F12按下F12,點擊淮海路可以看到出現一個網站,他就是我們要找的接口
接口內容是通過get請求直接獲取的,接口是
https://trp.autonavi.com/ajax/life/circle.do?districtId=B00156EVQJ&dir=0&timeIndex=8- 點擊網頁上的目的地,發現接口里dir變成了1
- 點擊下方的時間軸的10:00,發現接口里timeindex變成了10
- 說明dir代表是出發地還是目的地,timeindex代表著時間點
可以看到返回結果很規整,是列表的列表
所以我們可以直接get獲取,然后利用geopandas將坐標連成一個個面即可。
2 獲取實現
get獲取
response=requests.get('https://trp.autonavi.com/ajax/life/circle.do?districtId=B00156EVQJ&dir=0&timeIndex=6') data=response.json() data大概長這個樣子data是列表組成的列表,列表里有5個列表,分別對應著20min,30min,45min,60min,90min生活圈輪廓
構造成面
#20min為例 a=data[0] print(a[0]) print(a[-1])[121.541855, 31.149355] [121.54641, 31.151604]
可以看到同一個面里的數據點的首尾不一致,所以需要我們在末尾加上第一個點坐標,這樣才能構成一個封閉的面。
#20min為例 a=data[0] b=data[0][0] #構成封閉面 a.append(b)接著就可以利用geopandas做成面,并導出shape文件了
m1=gpd.GeoSeries([geometry.Polygon(a)],index=['20min']) m1.crs = pyproj.CRS.from_user_input('EPSG:4326') 20min生活圈這樣就獲取了淮海路在早上8點(作為出發地)的20min生活圈范圍了,通過改變接口里的districtId,dir,timeindex就可以獲取各商圈各個時間點的20min,30min,45min,60min,90min生活圈范圍了。districtId打開F12選擇各個商圈查看接口可以獲得。
3 成果展示
獲取的以淮海路為中心的交通生活圈可以看到跟高德上的一樣,雖然配色是丑了億點點。
上海各個商圈的數據已經下載完畢,若對此文件和完整代碼感興趣,請幫忙轉發下面微信推文到朋友圈集贊5個,截圖到公眾號后臺即可獲取
用10行python代碼獲取全國城市交通生活圈?mp.weixin.qq.com小貓咪在線求轉發總結
以上是生活随笔為你收集整理的获取clientheight为0_用10行python代码获取全国城市交通生活圈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轮毂翻新多少钱啊?
- 下一篇: ubuntu更新python的指令_ub