我是移动应用程序的新手.基本上我想在室内获取用户的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();
Run Code Online (Sandbox Code Playgroud)
Sté*_*ane 21
GPS基于从发射卫星到接收器的距离估计.您的GPS接收器(通常)需要来自至少4颗卫星的信号才能计算其位置.在开阔天空条件下L1频带的信号电平大约达到-130dBm.商用接收机,例如集成在移动电话中的接收机,能够跟踪低至-160dBm的卫星.在此阈值下,接收器无法使用该信号.这30dB的余量允许从诸如树叶,玻璃窗,甚至光墙等障碍物中进行一些衰减,但是几个建筑物楼层几乎可以完全屏蔽来自几乎所有方向的信号,从而使GPS完全无法使用.即使衰减允许接收器使用信号来计算其位置,所达到的准确度可能会赢得'
另一方面,诸如Skyhook之类的Wi-Fi定位系统(在许多移动平台上实现)通常能够计算建筑物内部的位置,但是这种方法面临两个主要缺点:
还有第三种选择:将来自MEMS chpset的加速度与最后已知的GPS位置进行整合.这可能在某些条件下有效......
总之,移动电话中没有现成的室内定位解决方案,但有些正在研究这个主题(例如http://www.polestar.eu/en/node/111/y)
编辑:我忘了提到基于蜂窝塔的定位,只要手机对蜂窝网络进行了有效的数据校正,就可以使用.这种方法仅足以准确地给出移动电话所在的城市.
归档时间: |
|
查看次数: |
13280 次 |
最近记录: |