2016-12-10 11 views
0

수신 신호 세기와 인접 셀 타워를 찾는 응용 프로그램을 만들고 싶습니다. 셀 이드, mnc, mcc, lac 및 인접 셀 타워의 신호 강도를 성공적으로 얻었습니다. 그러나 각 셀 타워의 거리를 계산하고 싶습니다. 현재 모바일에서 cellid, lac, mnc, mcc를 사용하여 방향을 지정합니다. 그렇게하기 위해 인터넷 연결을 사용하고 싶지 않습니다. 계산이 가능합니까 ?? 가능하면 제안하십시오.cellId, LAC, MCC 및 MNC Android로 현재 이동국에서 이웃 셀 타워 거리 및 방향을 가져올 수 있습니까?

답변

0

인터넷 연결이 없으면 이것은 어렵습니다 (불가능합니까?). 그러나 인터넷 연결을 사용할 수 있다면 Mozilla Location Service을 사용하여 이웃 셀 ID (이미 얻은 위치)를 찾아 위도/경도를 얻을 수 있습니다.

모바일의 현재 위치를 얻는 것과 관련하여 많은 답변이 있습니다.

d = acos(sin φ1 ⋅ sin φ2 + cos φ1 ⋅ cos φ2 ⋅ cos Δλ) ⋅ R 

: 당신이 모바일 위도/경도 및 이웃 세포 위도/경도, 이웃 셀과 모바일 사이의 거리를 찾기 위해 코사인의 법칙을 사용을 일단 지금 Get current latitude and longitude android

: 여기에 좋은 예입니다 예를 들어, 다음과 같이 구현 될 수있다 :

θ = atan2(sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ) 
where φ1,λ1 is the start point, φ2,λ2 the end point (Δλ is the difference in longitude) 
,369,136 : 제목에 관해서

var φ1 = lat1.toRadians(), φ2 = lat2.toRadians(), Δλ = (lon2-lon1).toRadians(), R = 6371e3; // gives d in metres 
var d = Math.acos(Math.sin(φ1)*Math.sin(φ2) + Math.cos(φ1)*Math.cos(φ2) * Math.cos(Δλ)) * R; 

은 공식을 사용하여 예를 들어, 다음과 같이 구현 될 수있다 (3210)

: 인접 셀로부터 신호 세기를 찾기

var y = Math.sin(λ2-λ1) * Math.cos(φ2); 
var x = Math.cos(φ1)*Math.sin(φ2) - 
     Math.sin(φ1)*Math.cos(φ2)*Math.cos(λ2-λ1); 
var brng = Math.atan2(y, x).toDegrees(); 

(이 website의 거리/호 식 의례)

다른 문제이다. 기술 (LTE/WCDMA/GSM)에 따라 이것은 가능할 수도 있고 그렇지 않을 수도 있습니다. Here은이를 수행하는 방법의 한 예이지만 모든 기술 유형에 대해이 방법으로 작동하지 않을 수 있습니다.

+0

답변 해 주셔서 감사합니다. –