我的手机不动,但 GPS lat/long 值不断变化,这是为什么?
如何解决这个问题?如何获得我手机的可靠经纬度值...我正在使用以下代码获取 GPS 位置:
public Location getLocation() {
try {
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
// getting GPS status
isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
// getting network status
isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
// no network provider is enabled
} else {
this.canGetLocation = true;
if (isGPSEnabled) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
// Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
// Log.d("Network", "Network");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
// if GPS Enabled get lat/long using GPS Services
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
最佳答案
导致这种情况发生的原因有很多,而且它可能根本不是问题。
有时只是您的 GPS 更好地确定了您的位置,或者可能是位置提供商发生了变化。
附注:准确性不是很好,因此您的位置可能会不时发生变化。正如您在 this link 上看到的那样.您可以从 6 个不同的来源获取您的位置,每个来源都有不同的精度。
大多数 Android 都能够存储最后知道的 GPS 位置。这通常在应用程序首次启动时使用,您可以检索时间戳、纬度、经度和精度。
示例代码:
locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
缓存网络。
Android 设备还可以存储由移动运营商的网络位置提供商确定的最后一个已知位置。提供商从蜂窝网络和 WiFi 收集信息(如果已打开),然后将其发送到远程服务器端进程,该进程处理信息并发回大致位置。这并非在所有国家/地区都可用。就像 GPS 一样,您通常会检索时间戳、纬度、经度和精度。
示例代码:
locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
这是从 GPS 流出的原始信息。当 GPS 首次打开时,它不会立即返回任何信息,它必须先进行基本预热。预热时间因设备而异,如果您在建筑物内,通常需要一分钟或更长时间。稍后会详细介绍。根据您的提供商允许的内容,您可以获得时间戳、纬度、经度、高度、方位、速度、准确性和行驶距离。
示例代码:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,time,distance,listener);
这是蜂窝运营商返回的原始网络位置提供商信息,例如美国的 AT&T。不同的运营商使用不同的信息来确定位置,例如 WiFi 数据、GPS 信息、附近的手机信号塔等。取决于在您的运营商允许的范围内,您可以获得时间戳、纬度、经度、高度、精度和行驶距离。
示例代码:
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,time,distance,listener);
此选项仅意味着您的应用程序可以在处于最小化状态时监听位置更新。这个想法是为了节省电池电量,这样您的应用程序提供商就不会在应用程序最小化时全速运行。那将是巨大的电池消耗。被动位置可以监听另一个应用程序请求位置更新。您可以访问时间戳、纬度、经度、高度和精度。据我所知,您无法确定此信息来自哪个提供商。
示例代码:
<receiver android:name=".PassiveLocationChangedReceiver" android:enabled="true"/>
虽然它不是人类可读的,但您可以访问原始 NMEA 字符串。通常,这些字符串用于编程访问,并且只对开发人员或工程师有意义。此数据通常用于海事应用程序。数据仅在 GPS 预热后可用。
来源: 此信息取自 here .
此外,获取位置时还有一些非常常见的错误来源,正如您从 android 文档中看到的那样:
Obtaining user location from a mobile device can be complicated. There are several reasons why a location reading (regardless of the source) can contain errors and be inaccurate. Some sources of error in the user location include:
- Multitude of location sources
GPS, Cell-ID, and Wi-Fi can each provide a clue to users location. Determining which to use and trust is a matter of trade-offs in accuracy, speed, and battery-efficiency.
- User movement
Because the user location changes, you must account for movement by re-estimating user location every so often.
- Varying accuracy
Location estimates coming from each location source are not consistent in their accuracy. A location obtained 10 seconds ago from one source might be more accurate than the newest location from another or same source.
请花点时间阅读 Location Strategies来自 Google 的文档。
有关 LocationManager 的更多信息 here .
关于java - 我的手机不动,但 gps lat long 值仍在变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32141787/
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
在启用Rack::Deflater来gzip我的响应主体时偶然发现了一些奇怪的东西。也许我遗漏了一些东西,但启用此功能后,响应被压缩,但是资源的ETag在每个请求上都会发生变化。这会强制应用程序每次都响应,而不是发送304。这在没有启用Rack::Deflater的情况下有效,我已经验证页面源没有改变。我正在运行一个使用thin作为Web服务器的Rails应用程序。Gemfile.lockhttps://gist.github.com/2510816有没有什么方法可以让我从Rack中间件获得更多的输出,这样我就可以看到发生了什么?提前致谢。 最佳答案
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/