현재 gps로 사용자위치를 받아오고 sharedpreferences 에 저장된 좌표값이랑 비교를 해서 전방 10m ~ 15m 앞에 있으면 브로드캐스트메시지를 보낼려고 하는데요.
Location mLocation = new Location("mLocation");
mLocation.setLatitude(lat);
mLocation.setLongitude(lng);
Location sLocation = new Location("sLocation");
sLocation.setLatitude(saveLat);
sLocation.setLongitude(saveLng);
distance = mLocation.distanceTo(sLocation);
int meter = (int)distance;
Log.d(TAG,"distance : " + (int)distance + " " + distance);
if(meter >= 10 || meter <= 15){
isEnabled = true;
if(isEnabled) {
String id = messageInfo.getId();
Intent intent = new Intent(LocationService2.this, LocationReceiver.class);
intent.setAction("org.jsb.busgod.busgod");
intent.putExtra("id", id);
sendBroadcast(intent);
}
isEnabled = false;
}
이런식으로 거리값을 구해서 if문에 조건을 걸었는데요. 실외로나가서 단말기로 시험해본결과 브로드캐스트메시지가 계속 날라옵니다.
distancebetween을 이용해야 되나요? 정확한 미터값을 얻기위해서는 어떻게 해야 하는건가요? 답변 부탁드리겠습니다 ㅠㅠ