我正在尝试从location.getAltitude()方法获取当前海拔高度。但它始终返回零。我应该怎么做才能获得当前的海拔高度值。但正确获取经度和纬度。请给我建议。我已经在google中搜索并得出了一些示例,但所有示例仅返回零。
我使用的代码:
在创建时我调用了= getMyCurrentLocation(); 这种方法。
void getMyCurrentLocation() {
LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locListener = new MyLocationListener();
try{gps_enabled=locManager.isProviderEnabled(LocationManager.GPS_PROVIDER);}catch(Exception ex){}
try{network_enabled=locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);}catch(Exception ex){}
if(gps_enabled){
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
}
if(network_enabled){
locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
}
if(gps_enabled){
location=locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
if(network_enabled && location==null) {
location=locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
if (location != null) {
MyLat = location.getLatitude();
MyLong = location.getLongitude();
Toast.makeText(this,"My Lat : " + MyLat + "\n" + "My Long : " + MyLong, Toast.LENGTH_SHORT).show();
} else {
}
System.out.println(" LATTITUDE " + MyLat);
System.out.println("Longitude …Run Code Online (Sandbox Code Playgroud) 我试图在我的应用程序中获取我所在位置的海拔高度。但是每次我尝试对象的altitude属性时,CLLocation我都会得到0.00结果。
我用谷歌搜索我的查询,我在这里和这里得到了一个类似的问题。此链接表示,如果我使用 wifi 或蜂窝塔访问 CLLocation,它将为空。即使我尝试设置desireAccuracy为最佳,也不能确保该应用程序将使用 GPS。它还说如果我在室内,我将无法访问 GPS。
在很多情况下,它不确定该应用程序将仅使用 GPS。我也想要一些从 wifi 或手机信号塔获取 Altitude 的方法。为此,我搜索了更多,并获得了Google Earth API,但我认为这仅适用于 Microsoft .net 技术。
现在根据这种情况,我认为对于一个解决方案,我可以在 Microsoft Technology 中创建一个 Web 服务并在那里传递我的位置,我可以获得高度作为响应,但我不想这样做。
谁能建议我如何从ios获取我的位置高度。有没有什么方法可用或不可用?如果是,请导航我正确的方向。
提前致谢。
编辑1
我用于CLLocationManager更新位置,当我得到我的位置时,我需要高度。
编辑2
根据@fishinear 的回答,我尝试了以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
manager = [[CLLocationManager alloc] init];
[manager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
[manager setDistanceFilter:kCLDistanceFilterNone];
[manager setDelegate:self];
[manager startUpdatingLocation];
// Do any additional setup after loading the view, typically from a nib.
}
- …Run Code Online (Sandbox Code Playgroud) 我正在测试一个记录位置的Android应用程序(lat/long/alt).我在运行Android 2.2.1的三星GTS5830手机上运行该应用程序
我在这里和那里读到GPS高度通常不正确,因为地球不是完美的球形.例如,在我的位置,大地水准面的高度是52米.
我的理解是这个高度将从"纯"GPS高度中减去.这对我的位置有意义:
- altitude from GPS phone: 535 m
- geoid altitude: 52 m
- altitude from phone's GPS minus geoid height: 482m
- correct atlitude: 478 m
Run Code Online (Sandbox Code Playgroud)
482足够接近真实的东西,让我在徒步旅行时跟踪海拔
这是我用来获取GPS坐标的代码:
public class HelloAndroid extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("main", "onCreate");
setupGps();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
LocationListener locationListener;
LocationManager lm;
void setupGps() {
Log.d("gps", "Setting up GPS...");
locationListener = new MyLocationListener();
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 20000, 5,
locationListener);
Log.d("gps",
"GPS …Run Code Online (Sandbox Code Playgroud) G'day所有人,
我试图得到一些高程数据,我有700点.我想我可能会使用提供给同一个问题的代码(转换为纬度/经度到R的高度),不幸的是我在使用geonames包时遇到错误,并且最佳答案提供的网站没有澳大利亚海拔数据(错误)在FYI下面提供).
我发现另一个网站为澳大利亚提供了非常准确的高程数据,但我不知道如何从网页中提取信息.我认为它正在使用谷歌提升API,但我再次不知道如何访问它.
当我将'lat,lon'坐标放入'搜索位置'框时,它会在地图下方提供高程数据.但是,我似乎无法在源页面中找到它.该网站是http://www.daftlogic.com/sandbox-google-maps-find-altitude.htm.
一些示例lon lat值有效:
-36.0736,146.9442
-36.0491,146.4622
我想知道是否有人可以帮我从R查询这个网站,并提取高程数据?或者看起来好像很麻烦?我意识到网站上有一个批处理功能(最多100个位置),但是能够从R执行此操作会很酷.
谢谢大家,对不起,如果这是非常明显的.
干杯,亚当
错误
使用地理名称时:
elevation <- GNgtopo30(adult$lat, adult$lon)
Error in getJson("gtopo30JSON", list(lat = lat, lng = lng)) :
error code 10 from server: Please add a username to each call in order for geonames to be able to identify the calling application and count the credits usage.
In addition: Warning message:
In readLines(u) :
incomplete final line found on 'http://ws.geonames.org/gtopo30JSON? lat=-36.0736&lng=146.9442'
Run Code Online (Sandbox Code Playgroud)
使用查询代码时:
library(RCurl)
library(XML)
url <- paste("http://earthtools.org/height", …Run Code Online (Sandbox Code Playgroud) 我一直在努力实现一项功能,以便根据Android Galaxy S5手机的气压计传感器获得正确的海拔高度.唯一的问题是,我不认为这是准确的.根据http://www.whatismyelevation.com在我的特定位置,它显示我的海拔高度约为114米.但是,在我的手机上,根据气压计传感器显示它是210米.然而,我在一座高楼里,但我认为它不是100米高.
这是我的简单代码:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.configure_settings);
context = getApplicationContext();
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensors = mSensorManager.getSensorList(Sensor.TYPE_PRESSURE);
if (sensors.size() > 0)
{
sensor = sensors.get(0);
mSensorManager.registerListener(this, sensor,
SensorManager.SENSOR_DELAY_NORMAL);
}
}
@Override
public void onSensorChanged(SensorEvent event)
{
float pressure = event.values[0];
altitude = String.valueOf(SensorManager.getAltitude(
SensorManager.PRESSURE_STANDARD_ATMOSPHERE, pressure));
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我找到了另一种使用SensorManager获取高度的方法,但它需要两个参数.
public static float getAltitude (float p0, float p)
Computes the Altitude in meters from the atmospheric pressure and the pressure at sea level.
p0 pressure at sea level
p atmospheric pressure
Run Code Online (Sandbox Code Playgroud)
您是否可以通过实际示例/代码片段告诉我们如何使用它.
UPDATES1
我找到了Web服务提供商(WSP)网址来获取p0 pressure at sea level.我已成功获取值但不理解返回的值.
WSP网址:http://avdata.geekpilot.net/
这是东京国际机场的样本输出(http://avdata.geekpilot.net/weather/HND)
<weather>
<ident>RJTT</ident>
<error/>
<metar>
2011/09/22 08:00
RJTT 220800Z 04019KT 9999 -SHRA FEW012 BKN025 BKN040 21/18 Q1000 NOSIG
</metar>
<taf>
2011/09/22 04:12
TAF
AMD TAF
AMD RJTT 220409Z 2204/2306 08016KT 9999 FEW030 …Run Code Online (Sandbox Code Playgroud) 我的高度始终为0.我想在Android中使用GPS获取海拔高度.
我的代码是:
public void onLocationChanged(Location location) {
double lat = (double) (location.getLatitude());
double lng = (double) (location.getLongitude());
double alt = (double) (location.getAltitude());
latitudine = (int) (lat * 1e6);
longitudine = (int) (lng * 1e6);
altitudine = (int) (alt * 1e6);
}
Run Code Online (Sandbox Code Playgroud) 计算气压高度需要哪些数据?我如何获得它们然后计算高度?
气压测量与GPS高度相比有多准确?我尝试过GPS,但在网上搜索了几个小时后,我找不到合适的大地水准面库.
如果我有任何概念,请纠正我.
我有纬度、经度和高度数据,并想使用 Python 绘制如下图所示的图。地图可以省略,没有必要。

我曾尝试使用mplot3d 多边形图教程,但无法弄清楚如何改变 x 和 y 值,使其不是一条直线。有任何想法吗?
我正在寻找使用 Redis 的GEORADIUS命令。
但是,该命令仅在给定经度和纬度周围的二维圆范围内搜索。我还需要搜索高度,从而在三维球体范围内找到结果。
我如何在 Redis 中实现这一目标?