作為一個比較喜歡出去見識世界、看看自然風光的人,這幾年有幸跑了一些地方,在祖國大地不同的地方見識了不同的人文風物,手機里也存了不少照片,想著如果以某種方式展現來回憶我的旅途的話,或許會給自己帶來不一樣的體驗。目標口號已經想好:去過的風景,直觀豐富地展示你的人生旅途,帶來新的回憶感受。在看到leafl ...
作為一個比較喜歡出去見識世界、看看自然風光的人,這幾年有幸跑了一些地方,在祖國大地不同的地方見識了不同的人文風物,手機里也存了不少照片,想著如果以某種方式展現來回憶我的旅途的話,或許會給自己帶來不一樣的體驗。目標口號已經想好:去過的風景,直觀豐富地展示你的人生旅途,帶來新的回憶感受。在看到leaflet開源地圖庫時,覺得可以比較簡單地初步實現我的想法。
初步效果
效果圖1 - 60多張照片的效果圖,有部分照片的信息缺失
效果圖2 - 點擊顯示當時的照片
效果圖3 - 可以進一步加入文字描述內容與動態效果
思 路
- 一般手機照片都包含豐富的信息,如拍攝時間等等,而python又有強大的PIL圖像處理庫,使得我們可以輕鬆解析照片信息。在服務端我們可以使用Django來負責產生簡單的上傳機制,將上傳的圖片放入靜態資源文件夾以提供路由,並且對照片進行解析,獲得的信息利用Django自帶的ORM編寫照片信息模型,存入預設的sqlite3資料庫,十分簡便,然後利用Django-restframework庫將照片信息生成api,方便前端非同步獲取。在前端利用leaflet地圖庫生成展示效果,為了以後的開發,採用了vuejs框架,利用vue-resource從api非同步get數據,並同步到頁面。
- 這樣我們使用時便可以方便地一步上傳照片,在地圖上再現我們去過的風景,點擊出現當時的情景。當然直接根據照片只獲得了基本的時間和經緯度信息,進一步我們可以提供提交修改功能,讓用戶自己較為精細地修正地理位置(某些地理位置並不十分準確),並對照片做註解,提交回憶文本,然後一併展示。更進一步是利用時間數據,動態地顯示我們的旅途軌跡,以及自動生成整個人生旅途的動態展示效果。
- leaflet文檔很詳細豐富,api文檔也很美觀,插件也不少。使用leaflet使用兩三句js語句就可以輕鬆地產生應用效果。不要對文檔望而生畏,我一開始也嫌煩,懶得看,後來靜下心一看發現很容易上手。在github上還有中文地圖圖層提供商的列表(不需要api key),我使用了高德地圖,個人比較喜歡。可用插件有Leaflet.EasyButton、Leaflet.markercluster。
進群:125240963 即可獲取數十套PDF