Java移动应用程序的地理位置?

时间:2008-10-23 11:43:43

标签: java java-me mobile gis mobile-phones

有没有一种方法可以使用J2ME应用程序以编程方式确定移动电话的粗略地理位置,例如确定当前的小区?此问题尤其适用于非GPS设备。

我不是在寻找一组地理坐标,而是一种用户定义特定位置软件行为的能力。

任何硬件的解决方案都将受到高度赞赏;然而,解决方案越通用 - 越好。非常感谢!

5 个答案:

答案 0 :(得分:7)

如果设备支持JSR 179位置API,则可以使用此功能。上次我调查这几乎没有任何设备支持它,但那是几年前。

答案 1 :(得分:6)

这是我的第一篇文章stackoverflow。

您可以通过 System.getProperty(String arg) 在很多手机上获取cellID(移动设备所连接的电话杆的ID) 这里我有一个例子,尝试几个键,看看是否可以找到一个cellID。我已经在很多索尼爱立信手机上测试了它,它运行正常,只要它不是像P1这样的Symbian手机等等。如果您搜索网络,您可能会找到更多关键来找到cellID:s用于motorola,samsung等。

try{
  String[] cellIDTags = {"com.sonyericsson.net.cellid", "phone.cid", "Siemens.CID", "CellID"};
  for(int i = 0; i < cellIDTags.length; i++){
    cellID = System.getProperty(cellIDTags[i]);
    if(cellID != null && cellID != ""){
      location.setCellId(cellID);
      break;
    }
  }
}catch(Exception e){
  cellID = "";
}

答案 2 :(得分:0)

我认为没有用于确定位置的通用J2ME API。

我知道BlackBerry有一个特定的API,不仅可以检索粗略的“小区”位置,还可以检索GPS API。

我担心目前GPS解决方案是制造商专有的。

答案 3 :(得分:0)

IMO,没有应用程序可以自己做到这一点。它将需要卫星或移动电话(蜂窝塔)的帮助来操纵手机当前所处的位置,其再次精确到大约30-50米。 Locate phone

此处的计算将由Cell Tower中的软件或卫星中的软件完成。您的应用程序将仅发出请求,然后接收作为响应发送的数据。

同样,您将使用的apis将是由手机公司或sattellite服务提供的api。这几乎从来都不是免费的。我不确定他们也把它卖给了oridinary用户。只有黑莓等大公司才能使用。

答案 4 :(得分:0)

我浏览了很多应用程序下载网站,但没有找到任何:: 但我相信对此的一些研究可以帮助您使用J2ME API构建自己的应用程序。      由DAN给出的代码给出基站号。您可以识别单元格能够对应的最近的站点。实际上,一个单元格能够同时捕获至少6个站点,因此deamonkid解释说,如果您拥有区域或城市的地理参考地图,则可以使用多点定位来近似位置。应用程序将计算距离最近的塔的距离和方向,并且地图已经具有该基站的坐标。所以你可以计算空间坐标(估计)suresh。 你可以通过这个获得100米的精度。     这可能需要您可能下载的信号强度测量应用程序。      现在如果您可以基于此生成代码请分享。我也对此进行了广泛的研究。祝你好运suresh和所有