标签: android-location

如何在Android中获得经度和纬度

我想找到我当前位置的经度和纬度,但我一直得到NULL.

double lat = loc.getLatitude(); //Cause the result is null, so can't know longitude and latitude
double lng = loc.getLongitude();


 LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);  
    String provider = LocationManager.GPS_PROVIDER;  
    Location location = locationManager.getLastKnownLocation(provider); //result is null!
Run Code Online (Sandbox Code Playgroud)

这是获取GPS状态的代码.它工作正常:

public void onGpsStatusChanged(int event) { // get the GPS statue  
                LocationManager locationManager = (LocationManager) GpsActivity.this.getSystemService(Context.LOCATION_SERVICE);  
                GpsStatus status = locationManager.getGpsStatus(null);  
                String satelliteInfo = updateGpsStatus(event, status);
                myTextView.setText(satelliteInfo);//work fine ,searched satellite:16
    }
    };
        private String updateGpsStatus(int event, GpsStatus status) {  
            StringBuilder sb2 = new …
Run Code Online (Sandbox Code Playgroud)

android android-location

3
推荐指数
1
解决办法
5316
查看次数

如何使用GPS和位置管理器获取当前位置的完整详细信息

我使用GPS来获取位置的经度和纬度,但现在我想得到位置的每个细节,如:国家,城市,州,邮政编码,街道号码等.当前位置的最大细节.

码:

  public class GPSTracker extends Service implements LocationListener {

private final Context mContext;

// flag for GPS status
boolean isGPSEnabled = false;

// flag for network status
boolean isNetworkEnabled = false;

// flag for GPS status
boolean canGetLocation = false;

Location location; // location
double latitude; // latitude
double longitude; // longitude
String country;

// The minimum distance to change Updates in meters
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters

// The minimum time between updates …
Run Code Online (Sandbox Code Playgroud)

android android-emulator android-location

3
推荐指数
2
解决办法
3万
查看次数

onGpsStatusChanged不为GpsStatus.Listener触发

想听gps的可用性.跟着这个.但是,onGpsStatusChanged即使我禁用/启用了gps ,也没有被解雇.试过多部手机.另外,查看相关的stackoverflow Qns,例如this,thisthis.但是没有成功.任何帮助表示赞赏.谢谢!

代码片段:

倾听者

Listener mGPSListener = new GpsStatus.Listener() {

    @Override
    public void onGpsStatusChanged(final int event) {
        Log.d(TAG, "---onGpsStatusChanged---");
        switch (event) {
            case GpsStatus.GPS_EVENT_STARTED:
                Log.d(TAG, "GPS_EVENT_STARTED");
                break;
            case GpsStatus.GPS_EVENT_FIRST_FIX:
                Log.d(TAG, "GPS_EVENT_FIRST_FIX");
                break;
            case GpsStatus.GPS_EVENT_STOPPED:
                Log.d(TAG, "GPS_EVENT_STOPPED");
                break;
            case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
                Log.d(TAG, "GPS_EVENT_SATELLITE_STATUS");
                break;
            default:
                Log.d(TAG, "SOMETHING_ELSE");
                break;
        }


    }


};
Run Code Online (Sandbox Code Playgroud)

服务

.....
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStartCommand(intent, flags, startId);
        Log.d(TAG, "onStartCommand");
        Context …
Run Code Online (Sandbox Code Playgroud)

gps android android-location

3
推荐指数
1
解决办法
2861
查看次数

在android中获取最近的街道/道路坐标

在javascript中,使用Google maps apis指定选项,例如google.maps.TravelMode.DRIVING.我们TravelMode在android中有任何等价物吗?我看不到任何内容android.location.LocationManager或者android.location.Criteria 我想到了以下选项:

  1. 使用一些TravelMode替代方法,获得近似于最近的街道/道路的坐标.

  2. 或者,(不是优选的,因为它会很慢)通常获得坐标,然后可能将它发送到一些谷歌api(这将是非常慢,因为有很多点)并将坐标校正到最近的街道坐标.或者如果存在一些(谷歌地图)javascript框架,它可以用于获得相应的街道坐标.

EDIT1:

我也研究了这个.因而进入android.location.Geocoder.在getFromLocation这一类似乎做的大部分工作.但是,我担心,在获取最近的地址时会有额外的延迟.

android google-maps google-maps-api-3 android-location

3
推荐指数
1
解决办法
6057
查看次数

有没有办法在Android中获得快速(5毫秒)位置更新..?

我在android中使用Fused Location Provider库.它工作得非常好.但我有一个问题,它至少5秒内返回位置更新.

我已经尝试过所有的事情,例如将最小更新时间设置为1毫秒,距离设置为0.01米,优先级设置为 PRIORITY_HIGH_ACCURACY

我的代码:

locationrequest.setInterval(1); // 1 milliseconds locationrequest.setSmallestDisplacement(0.01f); // 0.01 meters locationrequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);

但没有用,两次连续位置更新之间的最短时间仍为5秒.

我的问题是:有没有办法将位置更新时间减少到5毫秒

- >我只需要10分钟的位置更新,所以没有高电池消耗的问题.

- >我需要任何方式(可能):是否有可用的外部硬件,通过蓝牙连接并发送位置更新达到该级别?

编辑:

让我问你一个不同的问题: 什么是最短的位置更新时间以及如何实现?

假设我要跟踪一辆以400公里/小时的速度行驶的汽车,这意味着在约50毫米的时间内行驶5米.那么你能建议更好的方法来跟踪这辆车吗?

android location android-location

3
推荐指数
1
解决办法
4141
查看次数

Android版本的Android运行时权限低于M?

运行时Android权限

最近,我的ola cabs应用程序在最新更新后,在运行时询问了位置权限.它没有打开位置设置屏幕,只是单击是,我的设备的位置(GPS)已打开,应用程序继续进行,无需进入位置设置或任何设置屏幕.这个功能即将在Android M中出现,仅在MNC预览版中可用,所以我猜它在这个时间点不能用于设备.那么这个应用程序如何实现这个功能呢?

gps android android-location android-permissions

3
推荐指数
1
解决办法
1239
查看次数

以米为单位计算两个位置之间的距离

我有两个位置,我想以米为单位计算距离.我写了一些代码,但它并不完美.

private void getDistanceBetweenTwoPoints(double lat1,double lon1,double lat2,double lon2)
{
    Location loc1 = new Location("");
    loc1.setLatitude(lat1);
    loc1.setLongitude(lon1);

    Location loc2 = new Location("");
    loc2.setLatitude(lat2);
    loc2.setLongitude(lon2);

    int R = 6371; // km

    double dLat = deg2rad(lat2-lat1);
    double dLon = deg2rad(lon2-lon1);
    double  a =
            Math.sin(dLat/2) * Math.sin(dLat/2) +
                    Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
                            Math.sin(dLon/2) * Math.sin(dLon/2)
            ;
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    double distanceInMeters = R * c;
    Log.e("distanceInMeters",distanceInMeters/10000+"mm");
}

public double  deg2rad(double deg) {
    return deg * (Math.PI/180);
}
Run Code Online (Sandbox Code Playgroud)

如何计算米的距离?我的目标是,如果米> 200做某事.我怎样才能解决我的问题?

gps android android-location android-gps

3
推荐指数
1
解决办法
6139
查看次数

当应用切换到后台时,我的Android位置服务被杀死

如果我的问题重复或简单,请向我道歉.在这个问题上苦苦挣扎了很长时间.

即使我的应用程序切换到后台,我也需要跟踪用户的位置.在冲浪时我发现位置处理器代码可以写成服务,因此服务不会被杀死,我们可以获得用户的位置(在状态 - 应用程序在前台和应用程序在后台运行时).

当我的应用程序处于前台时,我能够连续跟踪用户的位置.但是,当我将应用程序切换到后台时,我觉得我的位置服务已经死亡,而我无法跟踪用户的位置.请在下面找到我的代码:

AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.testmylocation"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name=".MyService"/>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java:

package com.example.testmylocation;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.Window;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        startService(new Intent(this, MyService.class)); …
Run Code Online (Sandbox Code Playgroud)

android android-location

2
推荐指数
1
解决办法
5322
查看次数

Android-谷歌地图V2:跟踪从当前位置到另一个目的地的路线

我从这个例子开始,在用户之间绘制2个地址之间的路由.这是工作.http://blog.rolandl.fr/1357-android-des-itineraires-dans-vos-applications-grace-a-lapi-google-direction

但是现在我想画一条从当前位置到另一个目的地的路线,由用户输入.我的问题是我不知道如何检索当前位置,在这种情况下.我试过这样做:

LocationManager locationmanager=(LocationManager)this.getSystemService(LOCATION_SERVICE);
final double longitude=locationmanager.getLongitude();
final double latitude=locationmanager.getLatitude();
Run Code Online (Sandbox Code Playgroud)

但它不起作用......我想我正在混合我发现的每一个例子,而且它根本不好.

你能帮我么 ?

这是我的MapActivity:在我的MainActivity公共类中由用户键入的接收2地址MapActivity扩展Activity实现LocationListener {private GoogleMap googlemap;

    protected void onCreate(final Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);

        // Recuperation des composants graphiques
        googlemap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

        //Recuperations des adresses depart-arrivee
        // RETRIEVE DEPARTURE AND DESTINATION ADDRESS
        /*
         * For editDepart, I would like to replace it by my Current location
         */
        final String editDepart = getIntent().getStringExtra("DEPART");
        final String editArrivee = getIntent().getStringExtra("ARRIVEE");       

        /* Appel de la méthode asynchrone // ASYNCHRONOUS METHOD …
Run Code Online (Sandbox Code Playgroud)

gps android google-maps geolocation android-location

2
推荐指数
1
解决办法
1万
查看次数

PRIORITY_BALANCED_POWER_ACCURACY是否排除GPS提供商?

PRIORITY_BALANCED_POWER_ACCURACY给出的准确度得到了多少?

HIGH_ACCURACY模式使用所有位置提供商,但是,它优先考虑位置提供商,并包括GPS和位置提供商.定位精度大约在10米范围内.

BALANCED_POWER模式将GPS排除在其位置提供商列表之外,并使用其他提供商,包括手机信号塔,wifi等.在这种情况下,位置精度约为40米.

NO_POWER不使用任何位置提供程序,而是从其他应用程序获取位置的被动模式.准确度可能是一英里或更长.它完全基于最近由其他应用程序获取的位置.

PRIORITY_BALANCED_POWER_ACCURACY是否完全排除了GPS提供商?我一直假设它仍然使用GPS提供商,但只有当网络提供商不可用时.任何澄清将不胜感激.

android android-location google-play-services

2
推荐指数
2
解决办法
4243
查看次数