2013-02-22 5 views
1

JellyBean 4.2를 사용하고 기기에서 테스트 중입니다.Google지도 Android API v2 및 현재 위치

myLocationButton을 클릭하면 현재 위치를 얻는 방법.

getMYLocation은 네트워크 공급자를 사용할 때 null을 반환합니다.

현재 LocationManager를 가져오고 Google 문서 https://developers.google.com/maps/documentation/android/start을 참조하기 위해 LocationManager를 사용하고 있습니다. MyLocatiionButton에이 버튼을 클릭 한 후

+0

은 (는) 기기 또는 에뮬레이터에서 사용하고 있습니까? – Jitendra

+0

Nexus 4를 사용하고 있습니다. –

답변

1

기본적으로 Google Directions API에 전화를 걸어 도로 방향 좌표 (많은 Latlng 포인트)를 수신 한 다음 각 방향 사이에 폴리 라인을 그립니다.

사용자는 overview_polyline 또는 다리와 계단 중 하나를 사용할 수 있습니다.

1

당신은 모든 권한을 매니페스트에서 설정 한 마십시오 어떤 변화를 가져되지 않는 이유는 무엇입니까? 또한 위치 서비스를 사용 설정해야합니다 (상태 표시 줄에 GPS 아이콘이 표시되어 있습니까?). 장치가 위치를 얻는 데 시간이 좀 걸릴 것이므로 onLocationChanged가 호출되는지 확인하십시오.

+0

설명서에 지정된대로 모든 권한을 설정했으며 상태 표시 줄에 GPS 아이콘이 나타납니다. –

1

작동이 코드 ID를 사용하십시오.

private LocationManager locationManager; 
private Location location; 
private boolean hasGpsProvider, hasNetwrokProvider; 

    public Location getLocation(Context mContext) { 

     if (locationManager == null) { 
      locationManager = (LocationManager) mContext 
        .getSystemService(Context.LOCATION_SERVICE); 
     } 

     hasGpsProvider = locationManager 
       .isProviderEnabled(LocationManager.GPS_PROVIDER); 
     hasNetwrokProvider = locationManager 
       .isProviderEnabled(LocationManager.NETWORK_PROVIDER); 
     if (hasGpsProvider) { 
      locationManager.requestLocationUpdates(
        LocationManager.GPS_PROVIDER, 0, 100, locationListenerGps); 
      location = locationManager 
        .getLastKnownLocation(LocationManager.GPS_PROVIDER); 
      return location; 
     } 

     if (hasNetwrokProvider) { 
      locationManager.requestLocationUpdates(
        LocationManager.NETWORK_PROVIDER, 0, 100, 
        locationListenerNetwork); 
      location = locationManager 
        .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
      return location; 
     } 

     return location; 
    } 

그리고 당신은 당신의지도 조각에 LocationSource를 추가 할 필요가

if (location != null) { 
    lat = location.getLatitude(); 
    lng = location.getLongitude(); 
} 
+0

문제가 해결 되었습니까? – Jitendra

+0

나중에 변경하고 알려드립니다 –

2

호출합니다. 이산적인 예는 this answer을 참조하십시오.

+0

감사합니다 spotdog13 그것이 효과가있다 –