使用纬度和经度值显示我在谷歌地图中的当前位置

时间:2014-06-13 07:39:15

标签: android google-maps

我想在当前位置和所选目的地之间绘制路径。但是在使用GPS_PROVIDER访问我当前位置时,会显示我的上一个已知位置而不是我当前位置。这是获取当前位置的代码:

private LatLng getCurrentLatLng() {

        LatLng cloc = new LatLng(0, 0);
        LocationManager locman = (LocationManager) getActivity()
                .getSystemService(Context.LOCATION_SERVICE);
        String provider = LocationManager.GPS_PROVIDER;
        Location location = locman.getLastKnownLocation(provider);
        if (location == null) {
            Toast.makeText(getActivity().getApplicationContext(),
                    "Location Service Not Provided",Toast.LENGTH_LONG).show();
        } else {
            double latitude = location.getLatitude();
            double longitude = location.getLongitude();
            cloc = new LatLng(latitude, longitude);
            LatLng newp=onLocationChanged(location);
        }
        locman.requestLocationUpdates(provider, 2000, 0, this);
        return cloc;
    }

    @Override
    public void onLocationChanged(Location location) {

        double latitude = location.getLatitude();
        double longitude = location.getLongitude();
        LatLng latlng = new LatLng(latitude, longitude);
        CameraUpdate update = CameraUpdateFactory.newLatLngZoom(latlng, 15);
        map.animateCamera(update);
        putOriginMarker(latlng);
    }

我的mainfest.xml文件包含Google文档建议的以下权限:

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

因为我使用谷歌地图v2。 有人有想法吗?出了什么问题? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

请勿致电Location location = locman.getLastKnownLocation(provider);locman.requestLocationUpdates(provider, 2000, 0, this);足以获取您当前的位置。

答案 1 :(得分:0)

 Location mCurrentLocation;
 LocationClient mLocationClient;
 mLocationClient = new LocationClient(this,new myConnectionCallback(),new myConnectionListener());
 mLocationClient.connect();
 mCurrentLocation = mLocationClient.getLastLocation();
 double longitudeC=mCurrentLocation.getLongitude();
 double latitudeC=mCurrentLocation.getLatitude();