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