라벨이 지하철역인 게시물 표시

아이폰 위치정보와 지하철 역과 거리 구하기

서울시에서 제공하는 지하철역과의 거리 구하는 URL 은 좌표가 WTM 방식이다. 하지만 대부분의 스마트폰의 좌표는 WGS84 방식이다. 이를 변환하는 다음 개발자 URL 도 있기는 있지만 이러한 방식으로 구현해서 확인했더니 속도가 나오지 않아서 인터넷에 돌아다니는 소스를 참고 삼아 메소드를 만들었다. // wgs84 좌표 사이의 거리 측정 후 정렬하여 가까운 역 표시 func distanceBetweenCoordinate(lat1: Double, lon1: Double) -> [String] { var distanceStaion:[String:Double] = Dictionary()//[:] // 현재 위치와 subways 좌표와 계산하여 distance.append(code, distance) 넣으면 된다. for subway in subways { let lat2 = subway.latitude let lon2 = subway.longitude let theta = lon1 - lon2 var dist = sin(deg2rad(deg: lat1)) * sin(deg2rad(deg: lat2)) + cos(deg2rad(deg: lat1)) * cos(deg2rad(deg: lat2)) * cos(deg2rad(deg: theta)) dist = acos(dist) dist = rad2deg(rad: dist) dist = dist * 60 * 1.1515 // Kilo Meter dist = dist * 1.609344 distanceStaion[subway.name] = dist } // 계산 끝났으므로 다시 하지 않도록 설정 _isDistance