效果展現javascript
今天換換腦子,來一些可視化的小技巧。
php
百度地圖很強大,也爲開發者提供很好的開發接口。今天教你們一個3D地圖上路線軌跡可視化
的小功能。css
第一步
:申請 ak, 很簡單,10秒搞定。html
ak 申請連接,根據提示3步搞定。java
http://lbsyun.baidu.com/index.php?title=jspopularGL/guide/getkeyweb
第二步
:有了 ak 後,複製下面的 hellomap.html
文件到 templates 文件夾裏算法
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微軟雅黑";}
</style>
<script type="text/javascript" src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=你的ak"></script>
<script type="text/javascript" src="//api.map.baidu.com/library/TrackAnimation/src/TrackAnimation_min.js"></script>
<title>繪製軌跡</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
// GL版命名空間爲BMapGL
// 按住鼠標右鍵,修改傾斜角和角度
var bmap = new BMapGL.Map("allmap"); // 建立Map實例
bmap.centerAndZoom(new BMapGL.Point(116.297611, 40.047363), 17); // 初始化地圖,設置中心點座標和地圖級別
bmap.enableScrollWheelZoom(true); // 開啓鼠標滾輪縮放
bmap.setTilt(50); // 設置地圖初始傾斜角
var path = [{
'lng': 116.297611,
'lat': 40.047363
}, {
'lng': 116.302839,
'lat': 40.048219
}, {
'lng': 116.308301,
'lat': 40.050566
}, {
'lng': 116.305732,
'lat': 40.054957
}, {
'lng': 116.304754,
'lat': 40.057953
}, {
'lng': 116.306487,
'lat': 40.058312
}, {
'lng': 116.307223,
'lat': 40.056379
}];
var point = [];
for (var i = 0; i < path.length; i++) {
var poi = new BMapGL.Point(path[i].lng, path[i].lat);
point.push(poi);
var marker = new BMapGL.Marker(poi); //建立標註
bmap.addOverlay(marker); //將標註添加到地圖中
}
var pl = new BMapGL.Polyline(point,{strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
var trackAni = new BMapGLLib.TrackAnimation(bmap, pl, {
overallView: true, // 動畫完成後自動調整視野到總覽
tilt: 30, // 軌跡播放的角度,默認爲55
duration: 20000, // 動畫持續時長,默認爲10000,單位ms
delay: 3000 // 動畫開始的延遲,默認0,單位ms
});
trackAni.start();
</script>
第三步
:使用 Flask 部署,幾行代碼:flask
from flask import Flask
from flask import render_template
App = Flask(__name__)
@App.route('/')
def index():
return render_template('hellomap.html')
if __name__ == "__main__":
App.run(debug=True)
All done 啓動吧~api
效果展現:微信
閱讀更多:
以爲有用,點個在看
本文分享自微信公衆號 - Python與算法社區(alg-channel)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。