漁村蘇維埃政府舊址-數(shù)字博物館

紅色科技小分隊(duì) 雅堂村扶貧項(xiàng)目

(成果展示: 漁村蘇維埃政府舊址-數(shù)字博物館

前言

??前幾天(7月16號(hào)-18號(hào))止邮,我去到了清遠(yuǎn)雅堂村開(kāi)啟我們團(tuán)隊(duì)的扶貧項(xiàng)目,我們的任務(wù)是為當(dāng)?shù)夭┪镳^掃描制作三維的數(shù)字博物館革为,這個(gè)項(xiàng)目隸屬于物聯(lián)網(wǎng)+比賽中,由各個(gè)高校自行主持舉辦舵鳞。清遠(yuǎn)雅堂村是廣東工業(yè)大學(xué)指定的扶貧村震檩,學(xué)校希望我們學(xué)生能夠發(fā)揮特長(zhǎng),在雅堂村中制作一些別具特色的東西蜓堕。

??這次活動(dòng)每支團(tuán)隊(duì)都有1000元的經(jīng)費(fèi)抛虏,墻繪團(tuán)隊(duì)因?yàn)橛衅渌蝿?wù),所以他們有6000元的經(jīng)費(fèi)(當(dāng)然顏料就是一筆不少的開(kāi)銷(xiāo))

??雅堂村并沒(méi)有博物館套才,所以我們分配去了魚(yú)灣的蘇維埃政府舊址博物館迂猴,距離雅堂村大概半小時(shí)的車(chē)程,我們?nèi)斓某宰【驮隰~(yú)灣村的好世界賓館中背伴。(每天每間房90元错忱,我們開(kāi)了兩間房,經(jīng)費(fèi)在燃燒挂据,加上飯錢(qián)各個(gè)開(kāi)銷(xiāo)以清,最后我們只能盡快回來(lái),否則本來(lái)要住一個(gè)星期的)


坑爹狀況

??在之前我們并沒(méi)有來(lái)過(guò)這個(gè)博物館崎逃,也不清楚會(huì)遇到什么樣的情況掷倔,所以我們?yōu)槿S掃描做了全方位的探索,探索的成果可以關(guān)注我Photogrammetry-學(xué)習(xí)之路系列个绍。

??去到當(dāng)?shù)夭虐l(fā)現(xiàn)勒葱,完完全全坑爹了浪汪。

  • 博物館很破舊(這個(gè)其實(shí)是意料之中的)
  • 展覽時(shí)間很短(早上9點(diǎn)半到下午4點(diǎn)半)
  • 文物全部在玻璃里面不能拿出來(lái)(最坑爹的)

??這些突如其來(lái)的狀況,真的讓我們亂了手腳凛虽,不過(guò)當(dāng)即想到了全景博物館的方案死遭,畢竟之前也看到過(guò)類(lèi)似的效果,再加上之前張家榮制作的threejs全景絲綢之路給了我啟發(fā)凯旋。

??我覺(jué)得全景博物館未必不能做呀潭,只是還需要攻克兩個(gè)難點(diǎn)。

  • 如何實(shí)現(xiàn)全景圖的坐標(biāo)定位至非,點(diǎn)擊事件
  • 如何完成全景圖的制作

??猛然回頭钠署,我發(fā)現(xiàn)自己都掌握了解決方法的鑰匙

??張家榮的大作業(yè)是解決第一個(gè)問(wèn)題的鑰匙。

??而第二個(gè)難點(diǎn)的鑰匙真的是多虧了以前看高中電腦書(shū)的記憶象荒椭,我記得有軟件可以將攝像機(jī)的照片拼接起來(lái)谐鼎,制作出全景圖。


死馬當(dāng)活馬醫(yī)

??我確定了方案之后趣惠,就立馬開(kāi)始研究了狸棍。

??聰哥還提出全三維的方案,真是想讓我們累到半死不活呀味悄,之前搭建南沙政務(wù)大廳還嫌不夠累嗎草戈?

??首先要解決的是全景照片的問(wèn)題,因?yàn)榍罢邌?wèn)題即使沒(méi)有解決方案也沒(méi)關(guān)系傍菇,至少我可以用最原始的three.js來(lái)完成全景圖觀察,完整度至少還可以接受界赔。

??所以第一步想到的當(dāng)然還是百度一下丢习,畢竟不知道什么軟件比較適合。

??后面再百度的推薦下找到了ptgui軟件

??后面還是多虧了ghostxx.com淮悼,我在上面發(fā)現(xiàn)了更多的全景圖制作軟件咐低,我一個(gè)一個(gè)下載下來(lái)測(cè)試(當(dāng)然我測(cè)試的標(biāo)準(zhǔn)是最新更新版本為主)

??最后我覺(jué)得Kolor Autopano Giga 4.4 這款軟件是最好用的全景圖軟件。

??那個(gè)時(shí)候剛好研究到了接近晚上袜腥,基本把最大的難關(guān)解決了见擦,我讓建模團(tuán)隊(duì)幫忙拍一圈試試全景圖的制作。

??后面在回去賓館之后羹令,成功的制作出完美的全景圖(除了地面和天花板)

??第一個(gè)難點(diǎn)就順利被解決了鲤屡。

??回去賓館只有,下一個(gè)難點(diǎn)接踵而至福侈,我把張家榮的github文件下載下來(lái)酒来,進(jìn)行研究。

??原來(lái)是基于three.js實(shí)現(xiàn)的photo sphere viewer 插件肪凛,因崔思婷堰汉。

??后面去找photo sphere viewer(后面簡(jiǎn)稱(chēng)為PSV)的具體使用方法也別坑了辽社,想不到原制作者的github倉(cāng)庫(kù)已經(jīng)丟棄了,我拿了個(gè)很久很久的版本翘鸭,死活不知道同學(xué)怎么額外加入那么多其他腳本的滴铅。

??后面才發(fā)現(xiàn),原來(lái)插件是有官網(wǎng)的就乓,而且官網(wǎng)上有API文檔汉匙,真實(shí)新大陸。

??有了方向之后档址,后面的工作就好辦了盹兢,主要就是在家榮的大作業(yè)上面進(jìn)行魔改測(cè)試PSV的用法。


PSV難點(diǎn)

??其實(shí)PSV的難點(diǎn)也還好啦守伸,基于three.js的針對(duì)全景圖的插件绎秒,學(xué)過(guò)three.js的我來(lái)說(shuō)難度不大。

??官方API文檔地址

??主要是摸清楚以下幾點(diǎn)

  • PSV參數(shù)設(shè)置
  • 實(shí)現(xiàn)窗口大小的實(shí)時(shí)更新
  • 如何添加自定義標(biāo)記
  • 如何實(shí)現(xiàn)全景圖跳轉(zhuǎn)
  • 全局地圖顯示
  • 如何實(shí)現(xiàn)標(biāo)記點(diǎn)擊出現(xiàn)嵌套html

PSV參數(shù)設(shè)置

操作截圖
  • panorama - 全景圖路徑
  • container - 嵌套的html標(biāo)簽
  • (無(wú)視后兩個(gè)參數(shù))
  • navbar - 下面導(dǎo)航欄的參數(shù)設(shè)置
  • size - 設(shè)置大小為瀏覽器窗口大心崮 (three.js偷學(xué)過(guò)來(lái)的)
  • transition - 全景圖過(guò)渡用的參數(shù)
  • latitude_range - 限制鏡頭移動(dòng)范圍
  • lang - 按鈕提示

??很多參數(shù)官方都有給了见芹,API文檔里面也有詳細(xì)的參數(shù)設(shè)置。

??再初始化的階段涉及導(dǎo)航欄的參數(shù)蠢涝,通過(guò)導(dǎo)航欄可以制作出自定義的按鈕玄呛,從而實(shí)現(xiàn)全局地圖的顯示。這個(gè)后面涉及再詳細(xì)講解

實(shí)現(xiàn)窗口大小的實(shí)時(shí)更新

操作截圖

??這里最大的難點(diǎn)是理解resize傳入的參數(shù)CSSsize和二,這個(gè)不是單純傳數(shù)字而是傳入字符串徘铝,對(duì)于動(dòng)態(tài)窗口的字符串設(shè)置也是搞了好久才終于搞懂原理。

??不過(guò)弄好了之后其實(shí)也是令人意外的簡(jiǎn)單惯吕。

如何添加自定義標(biāo)記

??自定義標(biāo)記看了官方文檔之后就知道是addMarker函數(shù)惕它,鑒于每一個(gè)全景圖都需要制作多個(gè)標(biāo)記,我想到了用for循環(huán)遍歷數(shù)組的方式來(lái)生成對(duì)應(yīng)全景圖的標(biāo)記废登。

操作截圖

??這樣我就可以將參數(shù)存儲(chǔ)到對(duì)應(yīng)數(shù)組元素當(dāng)中淹魄。

操作截圖

??傳入的參數(shù)大概是這樣子的,所以數(shù)組中的每一個(gè)對(duì)象也是一個(gè)類(lèi)堡距。

操作截圖

??因?yàn)闃?biāo)記也分為兩種甲锡,一種是跳轉(zhuǎn)全景圖的,另一種是用于點(diǎn)擊顯示嵌套html的

操作截圖

??通過(guò) new 來(lái)聲明對(duì)象的各種相關(guān)的參數(shù)羽戒。

操作截圖

??然后將所有的元素統(tǒng)一放進(jìn)一個(gè)數(shù)組里面缤沦。

??這就是我對(duì)自定義標(biāo)記的數(shù)據(jù)管理。

??在實(shí)現(xiàn)這個(gè)結(jié)構(gòu)的過(guò)程中除了輸入數(shù)據(jù)很繁瑣之外易稠,最痛苦的莫過(guò)與坐標(biāo)的輸入疚俱,一開(kāi)始沒(méi)有弄清楚的坐標(biāo)返回函數(shù),導(dǎo)致所有的坐標(biāo)都錯(cuò)誤地在控制臺(tái)輸入缩多,弄了一輪才發(fā)現(xiàn)問(wèn)題呆奕。

??后面為了方便輸入养晋,我專(zhuān)門(mén)將這種格式封裝成一個(gè)js字符串輸出到控制臺(tái),然后復(fù)制粘貼批量制作出我想要的變量字符串梁钾。

如何實(shí)現(xiàn)全景圖跳轉(zhuǎn)

操作截圖
操作截圖

??全景圖跳轉(zhuǎn)官方也有一套模板的绳泉,我本來(lái)沒(méi)有封裝的,但是后面因?yàn)樘D(zhuǎn)的標(biāo)記太多了姆泻,我將它封裝一個(gè)函數(shù)了零酪。

??跳轉(zhuǎn)標(biāo)記最多的區(qū)域有兩個(gè),所以針對(duì)這兩個(gè)庭院內(nèi)側(cè)和外側(cè)的區(qū)域都針對(duì)做了函數(shù)封裝拇勃。同時(shí)也有往庭院跳(第一張圖)和庭院往外跳(第二張圖)區(qū)別

??主要的核心代碼就是PSV.setPanoram(url,true)

??這里的運(yùn)行邏輯:

  • 跳轉(zhuǎn)全景圖
  • 清理當(dāng)前的標(biāo)記
  • 然后設(shè)置當(dāng)前的全景圖狀態(tài)為False
  • 將跳轉(zhuǎn)的全景圖設(shè)置為T(mén)rue
  • 添加跳轉(zhuǎn)全景圖的標(biāo)記
  • 隨機(jī)將鏡頭移動(dòng)到標(biāo)記中

??這里的去全景圖狀態(tài)是用來(lái)判斷當(dāng)前是哪一個(gè)全景圖在觀察四苇,在后面的地圖制作非常有用。

操作截圖

全局地圖顯示

??全局地圖就是導(dǎo)航欄下面的地圖按鈕

操作截圖

??實(shí)現(xiàn)點(diǎn)擊地圖對(duì)應(yīng)按鈕進(jìn)行跳轉(zhuǎn)

操作截圖

??這里的操作涉及到導(dǎo)航欄的自定義按鈕制作方咆,上面的參數(shù)是官方提供用來(lái)設(shè)置按鈕的基本屬性月腋。

操作截圖

??clickEvent是封裝好的按鈕跳轉(zhuǎn)函數(shù),跳轉(zhuǎn)邏輯和標(biāo)記的跳轉(zhuǎn)基本一致瓣赂。

??最后一行加多了按鈕圖標(biāo)刷新的函數(shù)榆骚。

操作截圖
操作截圖

??通過(guò)這些方法實(shí)現(xiàn)全局地圖跳轉(zhuǎn)的功能。

??在制作的過(guò)程中我還加入了html5tooltip插件煌集,實(shí)現(xiàn)圖標(biāo)上方的提示標(biāo)簽妓肢,我以前些three.js有封裝過(guò)相應(yīng)的函數(shù),直接拿來(lái)用了苫纤。

標(biāo)記點(diǎn)擊出現(xiàn)嵌套html

??普通標(biāo)記的嵌套Html我也封裝了函數(shù)

操作截圖
操作截圖

??通過(guò)markerInfo函數(shù)將按鈕的所有信息整合到一起碉钠,其中倒數(shù)第二個(gè)參數(shù)content是實(shí)現(xiàn)嵌套html的關(guān)鍵

操作截圖

??通過(guò)addMarker函數(shù)將content嵌套進(jìn)去,PSV就會(huì)自動(dòng)完成右側(cè)的彈出菜單,簡(jiǎn)單快捷卷拘。

??嵌套的html的內(nèi)容和id需要提前定義好喊废。

操作截圖

全屏按鈕BUG

??上面是已知問(wèn)題的解決方案,然而在測(cè)試的過(guò)程中恭金,我發(fā)現(xiàn)PSV自帶的全屏效果和地圖按鈕的窗口沖突了操禀,只要全屏就看不見(jiàn)地圖褂策。

??經(jīng)過(guò)調(diào)試横腿,我也不知道是哪里的問(wèn)題,最開(kāi)始以為是z-index的問(wèn)題斤寂,但是我調(diào)試的時(shí)候吧PSV的style都設(shè)為透明了耿焊,還是看不見(jiàn)彈出窗口。

??最后我只能重做全屏窗口遍搞。

??重做其實(shí)也并沒(méi)有那么難罗侯,以前寫(xiě)three.js的時(shí)候有寫(xiě)過(guò)相關(guān)的函數(shù),這里也是直接復(fù)制套用了溪猿。效果也是立竿見(jiàn)影钩杰,很不錯(cuò)纫塌。

??同時(shí)我也想將PSV自帶的全屏圖標(biāo)轉(zhuǎn)換弄到自定義按鈕當(dāng)中,實(shí)現(xiàn)是這樣子的讲弄。

操作截圖

??PSV用的圖標(biāo)是SVG來(lái)的措左,我用Jquery把它加進(jìn)去。

手機(jī)自適應(yīng)問(wèn)題

??在手機(jī)上Chrome瀏覽器會(huì)出現(xiàn)鼠標(biāo)浮動(dòng)的問(wèn)題避除,需要在頭部加入以下代碼<meta name="viewport" content="width=device-width, initial-scale=1">


制作總結(jié)

??以上就是PSV使用過(guò)程中的全部技術(shù)難點(diǎn)怎披,也并沒(méi)有那么復(fù)雜,最難受的是數(shù)據(jù)輸入瓶摆,大量的數(shù)據(jù)等著我凉逛,這個(gè)過(guò)程非常繁瑣,所以后面經(jīng)常是生成代碼群井,復(fù)制粘貼進(jìn)去修改的状飞。

總結(jié)

??這次清遠(yuǎn)之行也還好,雖然突發(fā)狀況讓我們很慌蝌借,最后也還是有個(gè)明確方案解決問(wèn)題昔瞧。比起其他團(tuán)隊(duì),我們的待遇好很多菩佑,博物館的影音室有空調(diào)自晰,平時(shí)工作都可以嘆空調(diào),雖然拍全景的時(shí)候在房間里面拍照稍坯,很悶很熱酬荞,不過(guò)還可以回到影音室休息。

??目前所有的數(shù)據(jù)錄入已經(jīng)完成瞧哟,等建模團(tuán)隊(duì)把模型弄好基本就可以完成任務(wù)了混巧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市勤揩,隨后出現(xiàn)的幾起案子咧党,更是在濱河造成了極大的恐慌,老刑警劉巖陨亡,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件傍衡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡负蠕,警方通過(guò)查閱死者的電腦和手機(jī)蛙埂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)遮糖,“玉大人绣的,你說(shuō)我怎么就攤上這事。” “怎么了屡江?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵芭概,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我惩嘉,道長(zhǎng)谈山,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任宏怔,我火速辦了婚禮奏路,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臊诊。我一直安慰自己鸽粉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布抓艳。 她就那樣靜靜地躺著触机,像睡著了一般。 火紅的嫁衣襯著肌膚如雪玷或。 梳的紋絲不亂的頭發(fā)上儡首,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音偏友,去河邊找鬼蔬胯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛位他,可吹牛的內(nèi)容都是我干的氛濒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鹅髓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舞竿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起窿冯,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤骗奖,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后醒串,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體执桌,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年厦凤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鼻吮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片育苟。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡较鼓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情博烂,我是刑警寧澤香椎,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站禽篱,受9級(jí)特大地震影響畜伐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躺率,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一玛界、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悼吱,春花似錦慎框、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至遇西,卻和暖如春馅精,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粱檀。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工洲敢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茄蚯。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓沦疾,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親第队。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哮塞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容