위도 및 경도 값으로 Android에서 Location 객체 만들기


138

위치의 위도 및 경도 값이 데이터베이스에 저장되어 다운로드되는 프로그램이 있습니다.

이 좌표와 현재 위치 사이의 거리를 얻고 싶습니다.

Location 클래스에는 두 개의 Location 객체 사이의 거리를 찾는 간단한 메소드가 있으므로 좌표를 사용하여 Location 객체를 만든 다음 메소드를 호출하는 것으로 나타났습니다.

이 작업을 수행하는 쉬운 방법이 있습니까? 또한 일을 너무 복잡하게 만들지 않는 신뢰할 수 있고 상당히 간단한 또 ​​다른 방정식이 있으면 작동합니다. 감사.

(android.location.Location)


자세한 내용은 stackoverflow.com/questions/8049612/… 를 보십시오
Paul Thompson

답변:


309

현재 위치와 함께 위치 객체가 있다고 가정합니다.

Location targetLocation = new Location("");//provider name is unnecessary
targetLocation.setLatitude(0.0d);//your coords of course
targetLocation.setLongitude(0.0d);

float distanceInMeters =  targetLocation.distanceTo(myLocation);

1
이 답변의 의견은 간결하고 간단하지만 실제로 +1이 도움이 되었기 때문에 +1입니다. 감사합니다 @Exception Al
Subby

2
안드로이드 문서의 정말 나쁜 예는 이것에 꽤 많은 시간을 낭비했습니다. 내 다른 질문은 gps와 같은 유효한 공급자를 제공한다고 가정하면 현재 위치를 알려줍니까? 다시 말해 공급자의 중요성은 무엇입니까
Utsav Gupta

Location 객체의 기본값이 필요하고 위도 / 경도로 초기화 할 수 없기 때문에 정적 초기화 프로그램에서 설정하는 것이 좋습니다. 예 :static { location.setLatitude(0.0d); location.setLongitude(0.0d); }
Jason Hartley

나중에 'd'를 작성하지 않았고 위치 객체를 만들 수 없었습니다. 바보 같은 작은 실수
zulkarnain shah

1
왜 단위 테스트에서 Location 객체에 Lat 및 Lon을 설정할 때 아무런 영향을 미치지 않습니다. 위치 객체가 어떻게 든 null!?!?
Ewoks

30

constructor을 사용하여 위치를 만든 다음, 위도 및 경도 값을 설정할 수 있습니다.

final Location location = new Location("yourprovidername");
location.setLatitude(1.2345d);
location.setLongitude(1.2345d);

1
@dst 무엇입니까 "yourprovidername"?
금지 지오 엔지니어링

@ ban-geoengineering은 비워두고 ""는 필요하지 않습니다.
Alp Altunel

13

나와 같은 많은 사람들이 "providername"실제로 무엇인지 알지 못하기 때문에 나는 이것에 다시 대답하고 있습니다. 아래 코드는 질문에 대한 답변입니다.

Location location = new Location(LocationManager.GPS_PROVIDER);
location.setLatitude(23.5678);
location.setLongitude(34.456);

여기서는 LocationManager.GPS_PROVIDER제공자 이름으로 사용 하고 있습니다.


LocationManager.GPS_PROVIDER고려할 대안이있는 이유 는 무엇 입니까?
ban-geoengineering

1
PASSIVE와 NETWORK_PROVIDER 인 2 개가 더 있습니다. 왜 그리고 무엇을 사용해야하는지에 대한 좋은 설명이 있습니다. stackoverflow.com/questions/6775257/…
Vijay E

1
경우 location개체를 수동으로 생성되고,하지만,보다는 빈 문자열을 사용하는 것이 더 적절하지 않을 것이다 LocationManager.GPS_PROVIDER, LocationManager.PASSIVE또는 LocationManager.NETWORK_PROVIDER?
금지
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.