99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀只要兩步,用Python將地址標(biāo)記在地圖上
只要兩步,用Python將地址標(biāo)記在地圖上
2021-01-14
收藏

來源:早起Python

作者:劉早起

大家好,在之前的大眾點(diǎn)評(píng)一線快餐品牌分析文章中,很多讀者私信對(duì)如何將商家地址標(biāo)記到地圖上感興趣只要兩步,用Python將地址標(biāo)記在<a href='/map/ditu/' style='color:#000;font-size:inherit;'>地圖</a>上

本文就將講解,給你一個(gè)地址,如何用Python進(jìn)行可視化,只需要兩步:

將地址轉(zhuǎn)成經(jīng)緯度根據(jù)經(jīng)緯度在地圖上標(biāo)記點(diǎn)

一、將地址轉(zhuǎn)成經(jīng)緯度

首先我們需要將地理位置轉(zhuǎn)成經(jīng)緯度這種統(tǒng)一格式,方便代碼去識(shí)別。完成這一個(gè)需求可以使用爬蟲通過在線的經(jīng)緯度轉(zhuǎn)換網(wǎng)站來實(shí)現(xiàn),也可以使用一些專業(yè)的API比如百度、高德等,這里我們使用百度地圖開放平臺(tái)。

使用API并不是直接就能調(diào)用,首先需要去申請(qǐng)一個(gè)地圖可視化的AK,打開百度地圖開放平臺(tái)

http://lbsyun.baidu.com/

登陸之后依次點(diǎn)擊控制臺(tái)創(chuàng)建應(yīng)用選擇瀏覽器端,按照指示創(chuàng)建一個(gè)地圖可視化應(yīng)用,以申請(qǐng)到AK結(jié)束只要兩步,用Python將地址標(biāo)記在<a href='/map/ditu/' style='color:#000;font-size:inherit;'>地圖</a>上

之后啟動(dòng)Jupyter Notebook,只要不到十行代碼就能將地址轉(zhuǎn)成經(jīng)緯度,直接看代碼,沒有什么特別需要解釋的,利用地址和AK構(gòu)造查詢URL,之后使用requests請(qǐng)求并取出經(jīng)緯度,代碼拿走就能用

只要兩步,用Python將地址標(biāo)記在<a href='/map/ditu/' style='color:#000;font-size:inherit;'>地圖</a>上

我們來測(cè)試一下只要兩步,用Python將地址標(biāo)記在<a href='/map/ditu/' style='color:#000;font-size:inherit;'>地圖</a>上

可以看到,現(xiàn)在給它一個(gè)地址,就能返回經(jīng)緯度,再返回地圖驗(yàn)證一下經(jīng)緯度,沒有問題

只要兩步,用Python將地址標(biāo)記在<a href='/map/ditu/' style='color:#000;font-size:inherit;'>地圖</a>上

當(dāng)然如果需要一次性對(duì)多個(gè)地址處理,就可以使用pandas中的apply函數(shù)實(shí)現(xiàn),此處不在贅述,另外需要注意的是,如果有大量地址需要處理就要再次去平臺(tái)申請(qǐng)一個(gè)個(gè)人開發(fā)者,否則會(huì)有一定限制。我自己測(cè)試不難申請(qǐng),填寫基本信息并寫一段200字小作文就行。

二、根據(jù)經(jīng)緯度進(jìn)行標(biāo)記

現(xiàn)在有了經(jīng)緯度就可以在地圖上進(jìn)行標(biāo)記,工具有很多,我們選擇pyecharts,并使用Geo地理坐標(biāo)系,其實(shí)很簡(jiǎn)單就是先創(chuàng)建一個(gè)指定地圖后根據(jù)經(jīng)緯度往地圖上添加點(diǎn)即可。

我們還是以上面的Apple西湖地址為例, 先導(dǎo)入相關(guān)庫,之后使用Geo().add_schema(maptype="杭州")實(shí)例化一個(gè)杭州地圖,再將我們的經(jīng)緯度添加進(jìn)去,最后使用.render_notebook()直接在notebook中渲染

只要兩步,用Python將地址標(biāo)記在<a href='/map/ditu/' style='color:#000;font-size:inherit;'>地圖</a>上

效果如下只要兩步,用Python將地址標(biāo)記在<a href='/map/ditu/' style='color:#000;font-size:inherit;'>地圖</a>上

現(xiàn)在,我們就學(xué)會(huì)了如何利用Python對(duì)將一個(gè)地址位置信息進(jìn)行可視化,如果是一個(gè)組地理位置呢?只要寫一個(gè)循環(huán),依次將每個(gè)地址都轉(zhuǎn)成經(jīng)緯度并添加到地圖中就可以了!這里就不再過多講解,相信只要先把上面的代碼理解、執(zhí)行后,多思考一下就可以完成,拜拜~

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }