視頻來源:EyeOpener
文章整理:程序員極客實(shí)驗(yàn)室

這是一張發(fā)表在國(guó)外論壇上的旅行照片,發(fā)出照片的博主還附了三條簡(jiǎn)短的信息。
天空中的那道白線是一架波音747-8F,此時(shí),它正從倫敦飛往香港。
照片的拍攝時(shí)間是2019年10月30日。
拍攝者此時(shí)站在旅館里。
注:下面是這個(gè)視頻,不方便看視頻的朋友,請(qǐng)往下看文字版。如果覺得這個(gè)問題解答很有意思,不妨推薦給你的朋友。
也許你會(huì)對(duì)這個(gè)莫名其妙的問題感到一臉茫然。這其實(shí)是網(wǎng)友發(fā)起了一項(xiàng)偵探挑戰(zhàn)賽。相信我既然能夠通過網(wǎng)絡(luò)看到這段視頻,那你也擁有解答這個(gè)問題的能力。不過問題在于你該如何去使用它?最通用的思路是用圖片搜索,但是目前的搜索引擎只會(huì)給出一堆無關(guān)信息。也許在看到視頻的當(dāng)天,你已經(jīng)可以通過這種方式找到類似的分享攻略,進(jìn)而找到答案。但是請(qǐng)相信我接著看下去,你會(huì)對(duì)自己擁有的能力有更深入的理解。這照片發(fā)布的當(dāng)天圖片搜索是無效的,因?yàn)槠渲姓也坏饺魏斡嘘P(guān)城市的地標(biāo)建筑照片中的那棟大樓也沒有什么鮮明的設(shè)計(jì)風(fēng)格。所以我們需要回過頭來想一想,我們到底知道哪些信息?照片的拍攝時(shí)間是2019年10月30日,天氣很晴朗,拍攝者背對(duì)著太陽(yáng),天空中飛過一架從倫敦飛往香港的波音747。前三個(gè)條件在地球上任何地點(diǎn)都可以實(shí)現(xiàn)。所以解密的關(guān)鍵在于那架從倫敦飛往香港的飛機(jī),要知道商業(yè)飛機(jī)的航線基本是固定的。既然航線是固定的,從倫敦到香港,而我們又知道照片拍攝的日期。所以只要在相關(guān)的航空咨詢網(wǎng)站(www.flightradar24.com)查找一下在2019年10月30日這一天從倫敦飛往香港的飛機(jī),再結(jié)合他的型號(hào)波音747-8F我們就可以得知照片中這架飛機(jī)航班號(hào)是N617UP找到這次航班之后,我們就可以在對(duì)所有人公開的網(wǎng)站上得到航班對(duì)應(yīng)的KML文件。KML是一種特殊的文件格式,它可以在地圖軟件中顯示特定的地理數(shù)據(jù)。比如一家飛機(jī)從起飛到降落所經(jīng)過的所有的經(jīng)緯度位置,還有他在每個(gè)具體點(diǎn)的飛行高度。將這架飛機(jī)的KML文件上傳到谷歌地球之后,我們就可以準(zhǔn)確的再現(xiàn)它在2019年10月30日的活動(dòng)軌跡。比如他是如何從倫敦起飛,又是如何從香港降落而照片的拍攝者就在這條狹長(zhǎng)的飛行軌跡附近。現(xiàn)在我們的搜索范圍從整個(gè)地球一下子縮到了這條狹長(zhǎng)的軌跡上。所以接下來的問題就變成了在他按下快門的那一瞬間,這架飛機(jī)的這條線的哪個(gè)點(diǎn)?要知道KML文件不僅僅記錄了飛機(jī)的軌跡,他同時(shí)還對(duì)應(yīng)著飛機(jī)在每個(gè)點(diǎn)的時(shí)間信息,比如根據(jù)左上角解析出來的信息,我們可以知道這架飛機(jī)是在當(dāng)天上午6點(diǎn)多出發(fā)的。不過需要注意的是,這是UTC時(shí)間,也叫協(xié)調(diào)時(shí)間時(shí),它基本和格林威治標(biāo)準(zhǔn)時(shí)間相當(dāng)。我國(guó)采用東八區(qū)時(shí)間,所以我們經(jīng)常看到我們的時(shí)間是UTC+8。通過使用UTC時(shí)間,跨國(guó)飛機(jī)可以避免,因?yàn)槎虝r(shí)間穿過多個(gè)時(shí)區(qū)而讓自己產(chǎn)生混亂。因此,我們明確了飛機(jī)位置和時(shí)間的對(duì)應(yīng)關(guān)系。實(shí)際上通過具體的位置和時(shí)間,我們就可以得知飛機(jī)在航線不同位置時(shí)的天氣情況。具體操作方式我們一會(huì)兒再講。而照片中飛機(jī)所在的天空晴空萬里,所以我們首先可以排除那些在航線上處于黑夜的地段。這里我們用到的是一家名叫SunCalc(http://www.suncalc.org/)的天文觀測(cè)網(wǎng)站,將坐標(biāo)定位到倫敦。然后在左側(cè)將時(shí)間撥回到2019年10月30日,UTC時(shí)間6點(diǎn)12分,此時(shí)的倫敦很明顯還是在黎明到來之前的黑夜當(dāng)中,因此倫敦可以直接排除??紤]到飛機(jī)抵達(dá)目的地的時(shí)間是UTC?17點(diǎn)30分,此時(shí)的香港是凌晨一點(diǎn)半。根據(jù)這個(gè)信息再結(jié)合原始照片和飛機(jī)航線圖,照片里的飛機(jī)不可能在已經(jīng)入夜的中國(guó),所以大概可以先排除航線的后半程。
而當(dāng)我們的目光聚焦到飛機(jī)的前半程后,會(huì)發(fā)現(xiàn)此時(shí)的飛機(jī)航線大體朝向正東。所以原先這張幾乎一清二白的照片里面又多了一個(gè)重要的信息,飛機(jī)指向正東,拍攝者面朝西側(cè),看著這條航線你會(huì)不會(huì)感到奇怪?印象中的飛機(jī)都是平著飛,為什么這里的航線似乎要一飛沖天離開地球呢?這其實(shí)屬于一種視錯(cuò)覺。在地圖軟件上模擬一下就可以明白。航線之所以這么陡,是因?yàn)榕臄z者離他太近。既然飛機(jī)向東前進(jìn),那拍攝者應(yīng)該在航線的北側(cè)。否則的話,這條線看起來會(huì)和原圖完全相反。不過光知道這一點(diǎn)還是不足以讓我們推測(cè)出問題的答案。好在這張照片里還隱藏著一個(gè)不起眼,但是同樣關(guān)鍵的信息。拍攝者面前的這棟建筑至少也有五六層高,而照在這棟樓上的影子幾乎快要沒過它本身。考慮到歐洲地廣人稀的局面,這應(yīng)該是一座比較繁華的大城市。
一、航線的前半部分,也就是歐洲。
二、距離航線非常近的城市。
三、拍攝是在航線以北,所以這座城市也靠北。
至少它不可能完全位于航線的南側(cè),讓我們從西向東開始尋找。阿姆斯特丹是一個(gè)很有誘惑力的選項(xiàng),但是飛機(jī)經(jīng)過這里的時(shí)間是UTC上午6點(diǎn)半左右。此時(shí)的阿姆斯特丹天也還沒有亮。經(jīng)過反復(fù)的對(duì)比和篩查,我們排除了沿途的大部分城市。
隨著航線的東移,一座條件幾乎完美的城市來到了我們的眼前——柏林。航線穿城而過,而且柏林的大部分城區(qū)都在它的北部。此時(shí)的時(shí)間是UTC上午7點(diǎn)14分左右,柏林陽(yáng)光正好。接下來我們需要借助3D視角的幫助,才能夠確定旅館最終的位置。不過直到近距離觀察我才發(fā)現(xiàn),想在柏林這么一座大城市里面,找到這么一棟毫無特色的建筑,簡(jiǎn)直是天方夜譚。
即便把范圍劃定在了城市的北半?yún)^(qū)也還是無濟(jì)于事,借助從網(wǎng)絡(luò)上搜集到的資料,我只能夠走到這里,最終還是網(wǎng)絡(luò)大神的耐心讓我嘆服。
他們把從不同地點(diǎn)看到的航線的角度和原圖做對(duì)比,劃定了一個(gè)和原圖視角大致一致的區(qū)域。然后開始了摸網(wǎng)式的排查,最終經(jīng)過大量的對(duì)比,那座熟悉的大樓終于出現(xiàn)在了我們的眼前。
順著大神的指引,我在軟件里還原了照片,而這家旅館的名字是:Hotel H+ Mitte Berlin。他們甚至還根據(jù)照片中的位置關(guān)系,推測(cè)出了拍攝者當(dāng)時(shí)所在的房間。還根據(jù)此處的KML數(shù)據(jù)推測(cè)照片拍攝于柏林當(dāng)?shù)貢r(shí)間8點(diǎn)13到14分之間。從一條淺淺的痕跡推測(cè)出拍攝者具體的酒店房間,這本是007電影才會(huì)出現(xiàn)的劇情,卻可以通過對(duì)網(wǎng)絡(luò)工具的合理使用成為真切的現(xiàn)實(shí)。
UTC時(shí)間
KML文件
飛行航程查詢網(wǎng)站(Flightradar24)
免費(fèi)的谷歌地球(Google Earth Pro)
天空觀測(cè)網(wǎng)站(Suncalc)
實(shí)際上大神們推導(dǎo)出這個(gè)結(jié)果,花費(fèi)了長(zhǎng)達(dá)幾周的時(shí)間,我們?cè)谶@里不過是簡(jiǎn)單的按圖索驥。也許我們無法真的借此擁有和他們一樣的超能力,但我想你肯定已經(jīng)明白邏輯的力量能夠有多強(qiáng)大。