2017-10-29 9 views
0

사용자 좌표를 얻는 가장 간단한 방법은 무엇입니까? 나는 그들에게 내가 원하는 좌표와 일치하고 그들이 0.3 마일 이내에있을 수있는 완벽하게 일치해야하는지 알기 만하면된다.사용자가 원하는 위치로부터의 거리를 좌표하고 비교하는 가장 간단한 방법

나는 google maps v1과 v2를 사용하려했지만 그것보다 더 복잡해야합니다 내가 몇 세트 좌표와 비교할 필요가 있기 때문에

그래서 내가 도움이 필요한 것은 사용자의 좌표 (위치)를 얻은 다음 (-80.000000) 원하는 위치에서 거리를 가져 오는 것입니다. , 40.000000) 반경 내에 있는지 확인하십시오 (480 ~ 0.3 마일)

이 작업을 수행하기 위해 필요한 단계를 청취 할 수 있습니까?

+0

고정 된 위치 (또는 고정 된 위치의 작은 세트)가 지오 펜스를 사용하는 경우. –

답변

1

사용자 좌표를 얻으려면 LocationManager을 사용해야합니다.이 answer을 살펴보면 좌표 획득 방법에 대해 자세히 알 수 있습니다. 그 답변에 따라, 당신은 위치 관리자 생성 :

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
longitude = location.getLongitude(); 
latitude = location.getLatitude(); 

다음 생성 및 위치 관리자에 locationListener 객체를 첨부 : 당신은 좌표가 있으면

lm.requestLocationUpdates(lm.getBestProvider(fine, true), minTime, 0, listenerFine); 

, 당신은 할 수 Geofencing을 사용하십시오. 여기에 지오 펜스 생성 및 모니터링에 대한 설명서의 간략한 내용이 있습니다.

mGeofenceList.add(new Geofence.Builder() 
    .setRequestId("geofenceRequestID") 
    .setCircularRegion(latitude, longitude, 480f) 
    .setExpirationDuration("300000") // duration is in millis (5mins) 
    .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT) 
    .build()); 

Geofence.Builder 사용에 대한 자세한 내용은 details입니다.

+0

단계를 보내 주셔서 감사합니다. 그러나 나는 이미 코드의 첫 번째 줄에서 오류가 발생하고 있으며 "inconvertible types : android.location.LocationManager에 java.lang.String을 캐스트 할 수 없다"라고 말합니다. –

+1

첫 번째 줄에는'getSystemService (Context.LOCATION_SERVICE)'를 사용해야합니다 . – damian

+0

@ damian 감사합니다. 변경 사항을 반영하도록 코드를 업데이트했습니다. – chornge