2010-01-10 36 views
4

我是新來的移動應用程序。基本上我想讓用戶的GPS座標在室內。 我在室外檢測移動設備時沒有問題,只有在室內給我帶來問題時纔有問題。 我曾嘗試設置準確性,但無濟於事。如何在移動設備上在室內使用GPS?

有沒有解決方法?

這裏是我的代碼:

new Thread() 
{ 

    public void run() 
    { 
     try 
     { 
      Criteria cr= new Criteria(); 
      cr.setHorizontalAccuracy(1000); 
      LocationProvider lp= LocationProvider.getInstance(cr); 

      Location l = lp.getLocation(60); 
      Coordinates c = l.getQualifiedCoordinates(); 

      if(c != null) 
      { 
       lat = c.getLatitude(); 
       lon = c.getLongitude(); 
      } 
     } 
     catch(Exception e) 
     { 
      System.out.println("Error"); 
     } 
    } 
}.start(); 
+4

嗯,全球定位系統不能在室內工作...你幾乎需要視線到衛星它的工作。 –

+0

看看這個:http://www.walletpop.com/blog/2010/02/01/gps-inside-the-mall-location-based-services-will-guide-you-to-d/ –

回答

20

GPS基於從發射衛星到接收機的距離估計。您的GPS接收器需要(一般來說)來自至少4顆衛星的信號才能夠計算其位置。開闊天空條件下L1頻段的信號電平大約達到-130dBm。商用接收機,如集成在移動電話中的接收機,能夠跟蹤低至-160dBm的衛星。在此閾值下,接收器無法使用該信號。這30dB的餘量允許從樹葉,玻璃窗,甚至是輕質牆壁等障礙物中衰減一些信號,但幾個建築物樓層完全遮蔽幾乎所有方向的信號,導致GPS完全無法使用。即使衰減允許接收器使用信號來計算其位置,所達到的精度可能不足以滿足您的目標應用(精度因信號衰減而降低)。

在另一方面,Wi-Fi位置系統,如Skyhook的(在許多移動平臺上實現)往往能夠計算建築物內的位置,但這種方法面臨着兩個主要缺點:

  • 的數據庫覆蓋範圍不包括 包括室內網站(AFAIK),所以 返回的位置非常接近 ,並且不適用於任何應用程序。
  • Wi-Fi定位算法基於使用信號電平的熱點距離估計,受室內障礙物(人員,傢俱等)的影響非常大。這降低了定位精度。

還有第三種選擇:從最後已知的GPS位置整合手機中MEMS chpset的加速度。這可能在一定條件下工作...

總之,對於手機的室內位置沒有現成的,現成的解決方案,但也有一些關於這個問題的工作(如http://www.polestar.eu/en/node/111/y

編輯:忘記提及基於蜂窩塔的定位,只要手機對蜂窩網絡進行了主動數據糾正,就可以使用該定位。這種方法僅僅足夠精確到移動電話所在的城市。

+0

+1好摘要 –

7

不幸的是GPS從來沒有打算在室內工作。事實上,大多數消費者GPS傳感器不能獲得有效的GPS定位,除非他們有清晰的天空視野。即使是高層建築和茂密的樹木也可能造成嚴重問題。

+0

嗨, 感謝您的快速回復。但例如,移動設備中的內置應用程序(如E71地圖或谷歌地圖移動設備)。這些應用程序即使在室內時也能檢測到您的位置? – Nivek

+0

大多數移動設備無法獲得有效的GPS修正時將執行以下操作:1.使用手機三角網http://en.wikipedia.org/wiki/Mobile_phone_tracking#Network_Based; 2.使用上次獲取的GPS位置。 –

2

我認爲JSR 179支持的基於網絡的定位開箱即用,因爲Google地圖是具有此功能的Java應用程序。但根據the Sony Ericsson developer forum和諾基亞開發人員論壇上的一些帖子,看起來最好的辦法是look up the cell id yourself via system properties,並使用opencellid.org之類的查找服務。

在Nokias上,似乎有可能通過JSR 179直接進行基於網絡的定位工作,儘管它涉及改變手機設置。

菜單 - >設置 - >手機設置。 - >常規 - >定位 - >定位服務器

to supl.nokia.com(從nokia dev forums粘貼)。這將啓用基於網絡的定位。有關可用的位置方法,請參閱Location Methods in S60

相關問題