Blackberry 黑莓手机上的细胞三角测量

Blackberry 黑莓手机上的细胞三角测量,blackberry,geolocation,Blackberry,Geolocation,有没有关于如何为黑莓和J2ME手机进行手机三角测量的想法?我知道如何获取手机id,但我无法进行三角测量。如果你可以在任意网站上发布HTTP帖子,你可以使用谷歌的 只需将以下JSON格式的数据发布到 请参阅上面的链接,了解如何从wifi等向json添加更多信息,以大大提高结果的准确性。并特别注意移动国家/地区代码,获取它 这将返回Google对您所在位置的纬度/经度的估计值,以及准确度和可选的地理编码地址。您可以快速测试它,例如使用名为REST控制台的Chrome扩展 但是,似乎只提供有关当前连接

有没有关于如何为黑莓和J2ME手机进行手机三角测量的想法?我知道如何获取手机id,但我无法进行三角测量。

如果你可以在任意网站上发布HTTP帖子,你可以使用谷歌的

只需将以下JSON格式的数据发布到

请参阅上面的链接,了解如何从wifi等向json添加更多信息,以大大提高结果的准确性。并特别注意移动国家/地区代码,获取它

这将返回Google对您所在位置的纬度/经度的估计值,以及准确度和可选的地理编码地址。您可以快速测试它,例如使用名为REST控制台的Chrome扩展

但是,似乎只提供有关当前连接的单元格的信息,而不提供其他可见但未注册的单元格的信息。在这种情况下,您无法进行三角测量,因为您(毫无疑问)需要三个点进行三角测量!然而,仍然可以对位置进行不太精确的径向估计

您仍然可以使用GoogleAPI,只提供一个塔,或者如果您选择,也可以使用。您可能希望使用这两种方法进行测试,并比较准确性。Ericcson API与Google的JSON API类似,但只需要一个单元格作为输入。A,但它归结为一个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();
} 

你好此功能的最小电池数量是多少?只需要一个电池塔。然而,随着更多的细胞塔的增加,精确度将提高。JSON结果应该包括一个精度估计值。感谢您提供的信息,但我不知道如何在blackberry中获取3个单元格的数据,我只能使用以下命令获取一个单元格数据:Integer.toString(GPRSInfo.getCellInfo().getCellId())//检索当前单元格ID.Integer.toString(GPRSInfo.getCellInfo().getLAC())//检索位置区号。Integer.toString(GPRSInfo.getCellInfo().getBSIC())//基站识别码。我已经更新了答案,加入了爱立信的API,它只需要一个小区id。
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();
}