Foursquare是一家老公司了,在36氪上搜搜這個產(chǎn)品看看報道過的次數(shù)就知道了。這款產(chǎn)品在做的是基于用戶地理位置信息的手機服務,它鼓勵手機用戶和他人分享自己當前所在地理位置等信息。
利用Foursquare,當你和你的手機到了某個地點時,它會根據(jù)LBS為你推送精準的信息。
LBS無疑是Foursquare的強項。近日這家公司的工程師們在官方博客上寫了篇挺有趣的文章,描述了他們是如何讓手機“知道”自己所處的地理位置的。
當我們上街時,我們可以看到這個物理世界的樣子,知道自己所處的是哪一條大街、哪一家咖啡館,但這個信息,對于沒有感官的手機來說,其實并不是那么容易獲得的。
當然,手機能夠擁有的“感知器官”就是各種傳感器,GPS、陀螺儀、時鐘、wifi、藍牙等等。所以問題就變成了如何從這些傳感器數(shù)據(jù)里計算出手機當前所處的位置,在Foursquare的數(shù)據(jù)庫里,這樣可識別的位置在這個世界上大概有8000萬個。
大部分的公司采取的方法很簡單,他們從自己的數(shù)據(jù)庫入手,數(shù)據(jù)庫里的地點大部分長這樣:
對每個點來說,都有一個經(jīng)度和緯度的定位信息。如果你的項目是做導航或者地圖的話,其實這樣就夠了。但如果你想精確的知道手機所處的位置呢?
比較“天真”的一種做法是在這些地圖上,圍繞這些點來畫圈。這些圈表示手機目前“所處”的是一個什么地方,比如,在圓圈之內(nèi)的就屬于某一家咖啡廳,在圓圈外的就不屬于這家咖啡廳。有些實現(xiàn)方法還能根據(jù)地點調(diào)節(jié)這個圓圈的半徑大小。
這種方式對于公園或者沃爾瑪這樣的地方來說足夠了。但在城市、機場、購物中心這類比較復雜需要精準定位的地方,這個方法就失效了——圓圈會有很容易發(fā)生重合,要精細的分辨出具體的位置是很難做到的。
當這個方法失效時,你可能會耗費大量的時間和財力投入到衛(wèi)星圖像上,試圖依靠衛(wèi)星圖像畫出具體位置的輪廓。這種方法是可行的,但要求很大的時間投入。另外,很不幸的一點是,手機“看”這個世界的眼光,和衛(wèi)星圖像并不一樣。GPS會反射建筑物,然后提供很“傻”的解讀和很糟糕的位置精度。不同的手機擁有不同的操作系統(tǒng),配備不同的wifi和蜂窩網(wǎng)絡(luò),這些東西又會通過不同的方法運算出不同的經(jīng)度和緯度。最后,在多層建筑中,換算出的多邊形輪廓有時會在垂直維度上把不同的地理位置信息壓縮在一起。所以,手機眼里的世界,不可能僅僅只是某些規(guī)則的長方形的組合。
那么,F(xiàn)oursquare是怎么做的?
其實方法很簡單。用戶每天都會在手機里產(chǎn)生一堆數(shù)據(jù),換句話說,每個用戶都是一個可以獨立工作的性能優(yōu)異的爬蟲工具,他們已經(jīng)為我們扒下了這個世界需要的大部分地理位置信息。Foursquare有一個數(shù)據(jù)是,用戶已經(jīng)在同一個地點上告訴過我們70億次關(guān)于“他們站在哪里,這個地方叫什么”的問題了。每一次他們這樣做時,F(xiàn)oursquare都會從中挖掘一點信息,然后把這些數(shù)據(jù)加入已經(jīng)建好的一個模型中,這個模型正是關(guān)于“手機眼里的世界長什么樣子”的模型。所以,在手機眼里,這個世界其實長這樣:
這是擁有好幾百個維度的模型在一張平面圖形上的投影。但這張圖可以給出真實世界在我們手機眼里的樣子。Foursquare利用這一點,配合上諸如近場wifi、個性化、社交因素和實時簽到等其他信息,為正在城市里漫游的你推送合適的手機信息。
雖然這篇文章有一點Foursquare自吹自擂的感覺,但我認為文章里針對LBS提到的解決方案其實很有趣。這種解決思路也很有啟發(fā)性。當你在攻克一個技術(shù)上非常復雜的難題時,有時不妨換換思路,也許類似的動用群眾的力量進行眾包會是一種不錯的“巧勁兒”。
原創(chuàng)文章,作者:Retric