2010-05-02 5 views
1

Blackberry 및 J2ME 전화의 셀 삼각 측량을 수행하는 방법에 대한 아이디어가 있으십니까? 나는 세포 ID를 얻는 방법을 알고 있지만 삼각 측량을 할 수는 없습니다.BlackBerry의 셀 삼각 측량

답변

2

중재 웹 사이트에 대한 HTTP Post를 할 수 있다면 Google의 geolocation api을 사용할 수 있습니다.

다음 JSON 형식의 데이터를 https://www.google.com/loc/json으로 간단히 POST하십시오.

wifi 등에서 json에 정보를 추가하여 결과의 ​​정확성을 크게 높이는 방법에 대한 위 링크를 참조하십시오. 모바일 국가 코드에 특히주의를 기울이면 not obvious이됩니다.

{ 
    "version": "1.1.0", 
    "cell_towers": [ 
    { 
     "cell_id": "42", 
     "location_area_code": 415, 
     "mobile_country_code": 310, 
     "mobile_network_code.": 410, 
     "age": 0, 
     "signal_strength": -60, 
     "timing_advance": 5555 
    }, 
    { 
     "cell_id": "88", 
     "location_area_code": 415, 
     "mobile_country_code": 310, 
     "mobile_network_code": 580, 
     "age": 0, 
     "signal_strength": -70, 
     "timing_advance": 7777 
    } 
    ] 
} 

정확성과 선택적으로 지오 코딩 된 주소와 함께 사용자의 위치에 당신에게 위도/경도의 구글의 추정을 반환합니다. 예를 들어 신속하게 테스트 할 수 있습니다. REST Console이라는 Chrome 확장 프로그램으로

그러나 표시된 것은 있지만 등록되지 않은 다른 셀이 아니라 현재 연결된 셀에 대한 정보 만 제공하는 것으로 보입니다. 이 상황에서는 삼각형 분할을 할 수 없습니다. 삼각형을 그리려면 3 점이 필요합니다. 그러나 위치의 덜 정확한 반경 추정은 여전히 ​​가능합니다.

하나의 타워 만 제공하여 Google API를 계속 사용할 수도 있고, 원하는 경우 Ericsson API을 사용할 수도 있습니다. 두 가지 방법으로 테스트하고 정확도를 비교할 수 있습니다. Ericcson API는 Google과 비슷한 JSON API이지만 단일 셀만 입력으로 간주합니다. tutorial is available하지만이 같은 JSON 요청에 종기 :

StringBuffer url = new StringBuffer(); 
url.append("http://cellid.labs.ericsson.net/json/lookup"); 
url.append("?cellid=").append(cell.getCellId()); 
url.append("&mnc=").append(cell.getMnc()); 
url.append("&mcc=").append(cell.getMcc()); 
url.append("&lac=").append(cell.getLac()); 
url.append("&key=").append(API_KEY); 
try { 
    byte[] data = getHttp(url.toString()); 
    if(data!=null) { 
    JSONObject o = new JSONObject(new String(data)); 
    JSONObject pos = o.getJSONObject("position"); 
    this.longitude = pos.getDouble("longitude"); 
    this.latitude = pos.getDouble("latitude"); 
    this.accuracy = pos.getDouble("accuracy"); 
    this.cellName = pos.optString("name"); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

안녕! 분이란 무엇입니까? 이 기능을위한 셀 수? –

+0

하나의 셀 타워 만 필요합니다. 그러나 더 많은 셀 타워가 추가 될수록 정확도는 높아질 것입니다. JSON 결과에는 정확도 추정이 포함되어야합니다. – fmark

+0

정보를 주셔서 감사합니다,하지만 블랙 베리에서 3 세포의 데이터를 얻는 방법을 모르겠다, 나는 단지 하나의 셀 데이터를 사용할 수 있습니다 : Integer.toString (GPRSInfo.getCellInfo(). getCellId()); // 현재 셀 ID를 가져옵니다. Integer.toString (GPRSInfo.getCellInfo(). getLAC()); // 위치 영역 코드를 가져옵니다. Integer.toString (GPRSInfo.getCellInfo(). getBSIC()); // 기지국 신원 코드. –

관련 문제