- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我相信这个问题是众所周知的。
那么我的问题是什么?
我正在编写一个应用程序,该应用程序使用 GPS 提供程序来查找用户的位置并计算从用户到终点的距离。这工作正常。但是出现了一个问题:
问题详情:
如果您使用我的应用程序在城市中四处走动,它会为您提供一些距离数字,但是……距离在不断变化。无论我是否朝目的地移动,距离都会变高或变低(计算的距离值是从高到低“跳跃”,反之亦然)之前的距离数,但逻辑上它应该越来越低.我认为这是因为 GPS 信号有时会丢失或微弱,无法正确计算距离。
我需要什么帮助?
我想知道有没有一种方法可以过滤从 GPS 接收到的坐标,这样我可以获得更准确的距离数字,这样当我向终点移动时,距离就会被正确计算(尽可能不必是 100%正确)并且不要疯狂地上下变化。
如何获取坐标并计算距离:
public void onLocationChanged(Location location)
{
txtLat = (TextView) findViewById(R.id.currentCoordinatesView);
clat = location.getLatitude();
clong = location.getLongitude();
Location location1 = new Location("Start");
location1.setLatitude(clat);
location1.setLongitude(clong);
Location locationB = new Location("Finish");
locationB.setLatitude(endLatitude); //endpoint coordinates
locationB.setLongitude(endLongitude);
distance = location1.distanceTo(locationB); //calculate the distance
TextView TextDistance = (TextView)findViewById(R.id.TextDistance);
TextDistance.setText(new DecimalFormat("##,###,###.##").format(distance)+" m");
CurLat = location.getLatitude();
CurLong = location.getLongitude();
最佳答案
可以通过保存最后的(比如 10 个)位置对象并根据这些对象进行计算来进一步改进以下答案。例如,如果最后 10 个位置表明用户正以 1m/s 的速度向目标移动,那么表明跳跃 5 米的新位置很可能不准确,应该忽略。
要过滤一些偏离的 GPS 更新,你可以简单地做这样的事情(3 代表位置相对于你的实际位置应该有多准确,并且可以调整):
public void onLocationChanged(Location location)
{
if (location.hasAccuracy() && location.getAccuracy() < 3) {
txtLat = (TextView) findViewById(R.id.currentCoordinatesView);
clat = location.getLatitude();
clong = location.getLongitude();
Location location1 = new Location("Start");
location1.setLatitude(clat);
location1.setLongitude(clong);
Location locationB = new Location("Finish");
locationB.setLatitude(endLatitude); //endpoint coordinates
locationB.setLongitude(endLongitude);
distance = location1.distanceTo(locationB); //calculate the distance
TextView TextDistance = (TextView)findViewById(R.id.TextDistance);
TextDistance.setText(new DecimalFormat("##,###,###.##").format(distance)+" m");
CurLat = location.getLatitude();
CurLong = location.getLongitude();
}
}
以下是精度度量的定义:Location getAccuracy()
Get the estimated accuracy of this location, in meters. We define accuracy as the radius of 68% confidence. In other words, if you draw a circle centered at this location's latitude and longitude, and with a radius equal to the accuracy, then there is a 68% probability that the true location is inside the circle.
In statistical terms, it is assumed that location errors are random with a normal distribution, so the 68% confidence circle represents one standard deviation. Note that in practice, location errors do not always follow such a simple distribution.
This accuracy estimation is only concerned with horizontal accuracy, and does not indicate the accuracy of bearing, velocity or altitude if those are included in this Location.
If this location does not have an accuracy, then 0.0 is returned. All locations generated by the LocationManager include an accuracy.
关于Android GPS在计算距离的精度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22010189/
我有一个 GSM/GPS 单元连接到一个微 Controller ,它们之间的通信工作正常。我能够获取 GPS 并将其发送到微 Controller ,但有时设备在建筑物内,所以我无法真正获取当前的
它显示,错误指出“没有符合条件的应用安装设备” 设备规范如下, 型号:联想A369i Android 操作系统版本:4.2.2 我在 android mainfest 文件中执行以下权限
我有一个 Adafruit FONA 3G/GPS 模块 ( American Version )。我已经可以使用蜂窝功能,但 GPS 功能却遇到了困难。我尝试过无源和有源天线。 这是 SIM5320
今天在将我的应用程序上传到市场时,我发现它仅适用于具有 GPS 的设备,因此不包括某些平板电脑。 我的应用程序中的 GPS 是可选的。是否可以为有和没有 GPS 的设备发布一个应用程序,或者我需要制作
在 Monodroid 中,我正在尝试访问 GPS 服务。我只需要一个位置对象。 这一行报错: _locationManager.RequestLocationUpdates(LocationMana
我是 GPS 世界的新手。我需要知道如何使用 DGPS 进行后处理。我在网上找到了关于 DGPS、后处理等的定义,但是,找不到关于如何实际进行 DGPS 后处理的明确步骤。在搜索提供商时,我发现 CO
我有一系列 gps 值,每个值包含:timestamp, latitude, longitude, n_sats, gps_speed, gps_direction, ... ( NMEA data
抱歉,如果这是错误的“堆栈”。我找不到更合适的。 我为我的狗买了一个 GPS 追踪器,它附带订阅、一张 SIM 卡和一个开发不佳的应用程序。 我已取消订阅并想使用该设备将位置信息发送到我自己的服务器。
有没有一种在线方法可以用来获取 Google map 上两点之间路线上的所有 gps 点?即,如果我给出起点和终点,我需要获取该特定路线上的所有 GPS 点。 最佳答案 除了数据的所有者之外,每个人都
我正在尝试从 GPS 跟踪设备转换 GPS 数据。该公司提供了协议(protocol)手册,但不清楚。我能够从我从设备收到的数据包中解码的大部分数据。通信是通过 TCP/IP 进行的。我在解码经度和纬
我想从 GPS 坐标中获取城市名称。我可以使用 Google API 获取 GPS 点的详细信息 http://maps.googleapis.com/maps/api/geocode/output?
我做了一个 .gpx 文件来模拟 IOS 模拟器上的路线,现在我想模拟水平精度我该怎么做? 以下是我的 .gpx 文件的摘录: //how add horizontal accuracy
我有两个 GPS 坐标 例如(Lat1, Long1) 和 (Lat2,Long2) 谁能帮我找到这两点之间的角度。 值应为 0-360 度。 最佳答案 取自 this以前的SO帖子: float d
我正在为一个小类项目寻找 GPS。我们想要尽可能小的 GPS,我们真正需要它做的就是在我们轮询时为我们提供经度和纬度值。 我尝试查看 sparkfun,但由于我们之前没有真正使用过这种类型的硬件,因此
我正在处理 GPS 数据,每秒获取值并在 map 上显示当前位置。问题在于,有时(特别是当精度较低时)这些值变化很大,使得当前位置在 map 中的远距离点之间“跳跃”。 我想知道一些足够简单的方法来避
我正在创建一个请求用户位置的 BREW 应用程序。 如果手机无法获取位置,我想显示错误。 在确定手机不太可能获得 GPS 定位之前,我应该等待回调多久? 最佳答案 当需要冷启动时,接收器必须下载全套星
我有一辆安装了跟踪器的车辆。该设备具有 GPS 系统、3 轴加速度计、3 轴磁力计和陀螺仪。是否可以通过车辆在斜坡或山坡上向后滚动的程度来确定。使用 gps 角度不是一种选择,因为为短距离向后移动提供
我们计划编写一个软件,每 5 秒左右跟踪一次汽车的 GPS 位置、GPS 信号强度、加速度计(X、Y、Z)和陀螺仪(X、Y、Z)。并将数据发送到服务器进行后期处理。服务器将确定哪些道路上有汽车。所以这
这是我的问题:智能手机会向我的服务器发送一些 gps 坐标(纬度、经度、高度),我必须将这些坐标与存储在数据库中的地址进行比较,以查看智能手机和服务器之间的距离地址。为了进行实际比较,我还需要获取此地
HTML5 浏览器可以检索计算机的 gps 位置。 http://diveintohtml5.ep.io/geolocation.html 我想创建一个伪造 GPS 设备的应用程序,但我无法在任何地方
我是一名优秀的程序员,十分优秀!